Live data from Hacker News

Perl - the Detroit of scripting languages

speakerdeck.com

71–80 of 100 posts

Re: Perl - the Detroit of scripting languages

#71

Earlier quoted context omitted.

> In 2013 nearly every problem has a language more appropriate than Perl. Citation needed. Seriously, please stop making such broad statements based on your feelings and opinions and instead please make an earnest effort to separate objective facts from your subjective perception. And just to address another point: Perl has multiple real object systems that are inter-compatible (with one small exception), and are con…

I'd say the onus is on Perl to be the best language for a niche, rather than on me to provide a list of niches with languages better than Perl. Besides that, language appropriateness is necessarily subjective. I love Prolog and Haskell and use them all the time. My passion for them makes their thorns seem small and easily avoided, but the reality is that those thorns are sufficient to keep out a lot of curious people…

The onus on one making broad statements and presenting them as fact is on the one making them. Note, i'm not really asking you to prove your statement. Just that you refrain from making such statements when you don't already carry the proof and provide it along with the statement.

Also, no, i did not take it as an insult, just as a false statement from someone with little knowledge of the subject matter.

> I do think that providing multiple options where most languages have one option built-in is unnecessary cognitive load. One doesn't "choose" an "object system" for Python--what benefit would one hope to gain?

That question is actually understandable and easily answered. Two benefits:

1. More expressive power for example. Perl has Roles that function in a way unmatched by most other languages (i say most because i don't know all languages, i honestly don't know one that has roles as good as perl). They make it possible to share methods among classes without needing to resort to base classes and diamond inheritance issues, while still retaining full introspection capabilities. Another system implements most of the sugar, but leaves out some really complicated features in order to make it much faster. Yet another provides the most speed by implementing the core in C. This makes it a bit harder to debug, and less portable, but if you need massive speed, there you go.

2. The ability to try out different things and work out in real life situations which features are needed and which ones are dead ends. This ability is amplified by the ability to simply extend your object system by writing more Perl. In comparison, Ruby has an ubiquitous one, but when they desire to change it, they cannot easily test the changes large-scale in real situations, and even if a change is undoubtably positive, they still have to convince Matz first, and then implement it in C.

> indisputably more work for everyone than just having one.

Actually that is disputable. In the past it was the case, yes. But nowadays they have converged on the same syntax and present themselves identically to consumers. That means porting between different systems is trivial, and people using a class don't even notice changes. And that is not just fluff. The perl community has been doing this actively, for example here:

https://github.com/rjbs/Email-Sender/compare/52fcbbb9b6a1c4a...

I'm not going to comment on your last paragraph because you wrote it while having decided that what you wrote before is actual fact and it is thus very flawed. Please stop doing that and use more question marks.

Re: Perl - the Detroit of scripting languages

#72
post #60

Earlier quoted context omitted.

I think it's important to note that there is an implication in his question of the code of the alternative being as easy to read and write as Perl. One could of course write a much faster text processing tool in Assembler, but well ...

> easy to read as Perl. So, that rules out Brainf--k I guess

Yes that is correct. Brainfuck is not as readable as Perl. (I think you need to train more with your witty comebacks. Also drop the meme that Perl is not very readable, when it has lately improved a LOT [1] in that regard.)

[1] https://metacpan.org/module/Moo#SYNOPSIS

Re: Perl - the Detroit of scripting languages

#73
post #60

Earlier quoted context omitted.

> easy to read as Perl. So, that rules out Brainf--k I guess

Yes that is correct. Brainfuck is not as readable as Perl. (I think you need to train more with your witty comebacks. Also drop the meme that Perl is not very readable, when it has lately improved a LOT [1] in that regard.) [1] https://metacpan.org/module/Moo#SYNOPSIS

But actually look at the SOURCE of Moo instead of a toy example, and I see plenty of stuff that's exactly the kind of suboptimal readability I associate with perl....sigils all over the place, @_, the lack of proper function argument handling, etc.

Any toy example can be made to look clean.

Re: Perl - the Detroit of scripting languages

#74
post #68

Earlier quoted context omitted.

I'd say the onus is on Perl to be the best language for a niche, rather than on me to provide a list of niches with languages better than Perl. Besides that, language appropriateness is necessarily subjective. I love Prolog and Haskell and use them all the time. My passion for them makes their thorns seem small and easily avoided, but the reality is that those thorns are sufficient to keep out a lot of curious people…

>>I do think that providing multiple options where most languages have one option built-in is unnecessary cognitive load. (I'll assume you're not a troll despite acknowledging that you talk about a subject you don't know.) You are seriously arguing against flexibility and configurability of your programming environment? I guess you don't like Lisp either? To answer your specific point, re OO system: Today the de-fact…

I'm arguing that flexibility has a cost, and unless you can show me a tangible benefit, it's unnecessary cost. That you can build an OO system comparable to what other languages have built-in is a compelling demonstration of the extent of the flexibility, but it isn't a compelling demonstration of the need for the flexibility. Surely you have better examples of the extensibility of the language than stealing well-understood ideas from other languages. The best time to bring those out would be when wooing new users. In other words, your Prolog-style unification engine, your LINQ, your dependent-typing system, etc. would be better demonstrations of the vitality and power of your language's flexibility and extensibility than things I get for free by typing "python" at my shell prompt.

Re: Perl - the Detroit of scripting languages

#75
post #73

Earlier quoted context omitted.

Yes that is correct. Brainfuck is not as readable as Perl. (I think you need to train more with your witty comebacks. Also drop the meme that Perl is not very readable, when it has lately improved a LOT [1] in that regard.) [1] https://metacpan.org/module/Moo#SYNOPSIS

But actually look at the SOURCE of Moo instead of a toy example, and I see plenty of stuff that's exactly the kind of suboptimal readability I associate with perl....sigils all over the place, @_, the lack of proper function argument handling, etc. Any toy example can be made to look clean.

Yeah, sorry man, at the point where you complain about sigils you've disqualified yourself from the discussion for lack of thinking things through far enough. Thanks for playing, bub.

Re: Perl - the Detroit of scripting languages

#76
post #73

Earlier quoted context omitted.

But actually look at the SOURCE of Moo instead of a toy example, and I see plenty of stuff that's exactly the kind of suboptimal readability I associate with perl....sigils all over the place, @_, the lack of proper function argument handling, etc. Any toy example can be made to look clean.

Yeah, sorry man, at the point where you complain about sigils you've disqualified yourself from the discussion for lack of thinking things through far enough. Thanks for playing, bub.

Why, "bub", most sane languages don't have such cryptic, hard to read incantations. But you're obviously a zealot with a closed mind so I'm not sure why I'm even bothering to reply.

Re: Perl - the Detroit of scripting languages

#77
post #68

Earlier quoted context omitted.

>>I do think that providing multiple options where most languages have one option built-in is unnecessary cognitive load. (I'll assume you're not a troll despite acknowledging that you talk about a subject you don't know.) You are seriously arguing against flexibility and configurability of your programming environment? I guess you don't like Lisp either? To answer your specific point, re OO system: Today the de-fact…

I'm arguing that flexibility has a cost, and unless you can show me a tangible benefit, it's unnecessary cost. That you can build an OO system comparable to what other languages have built-in is a compelling demonstration of the extent of the flexibility, but it isn't a compelling demonstration of the need for the flexibility. Surely you have better examples of the extensibility of the language than stealing well-und…

> comparable

Not comparable. Better.

> your LINQ

DBIx::Class. I don't want to go to the effort of going into massive detail here, but in short: It allows you to write SQL access code under which you can use ANY database (SQLite, MySQL, MSSQL, Postgres, what have you), without changing a single line of your code. It will not only deploy your schema onto the database server, but also optimize your queries, so that for anything of slight complexity, it will likely be faster than your hand-written queries.

Re: Perl - the Detroit of scripting languages

#78
post #73

Earlier quoted context omitted.

But actually look at the SOURCE of Moo instead of a toy example, and I see plenty of stuff that's exactly the kind of suboptimal readability I associate with perl....sigils all over the place, @_, the lack of proper function argument handling, etc. Any toy example can be made to look clean.

Yeah, sorry man, at the point where you complain about sigils you've disqualified yourself from the discussion for lack of thinking things through far enough. Thanks for playing, bub.

[deleted]

Re: Perl - the Detroit of scripting languages

#79

Earlier quoted context omitted.

I'm arguing that flexibility has a cost, and unless you can show me a tangible benefit, it's unnecessary cost. That you can build an OO system comparable to what other languages have built-in is a compelling demonstration of the extent of the flexibility, but it isn't a compelling demonstration of the need for the flexibility. Surely you have better examples of the extensibility of the language than stealing well-und…

> comparable Not comparable. Better. > your LINQ DBIx::Class. I don't want to go to the effort of going into massive detail here, but in short: It allows you to write SQL access code under which you can use ANY database (SQLite, MySQL, MSSQL, Postgres, what have you), without changing a single line of your code. It will not only deploy your schema onto the database server, but also optimize your queries, so that for…

That's one tiny slice of what LINQ can do. It can also query native objects, XML, CSV files, and a wide variety of web APIs.

Re: Perl - the Detroit of scripting languages

#80

Earlier quoted context omitted.

I'd say the onus is on Perl to be the best language for a niche, rather than on me to provide a list of niches with languages better than Perl. Besides that, language appropriateness is necessarily subjective. I love Prolog and Haskell and use them all the time. My passion for them makes their thorns seem small and easily avoided, but the reality is that those thorns are sufficient to keep out a lot of curious people…

The onus on one making broad statements and presenting them as fact is on the one making them. Note, i'm not really asking you to prove your statement. Just that you refrain from making such statements when you don't already carry the proof and provide it along with the statement. Also, no, i did not take it as an insult, just as a false statement from someone with little knowledge of the subject matter. > I do think…

You imagine that programming is more objective than it actually is. Time will probably sort that out.

I appreciate your examples. I do think they would have been a better place to begin.

As for cognitive load, it is a thing. Converging on a single syntax will certainly reduce it, but as long as there is choice there is some. I do wonder to what extent you can have meaningful variation within the same syntax. Clearly it works for Perl and Perl users--I'm not trying to argue from first principles that it is impossible or stupid, only that it has a cost and that costs must have benefits or they are unnecessary. You apparently see some logical fallacy in that, but there isn't one. You just know the benefits and see the costs as reasonable. There's nothing wrong with your position on that, but you should have taken my words as an invitation to share what you know rather than blandly issue orders, a singularly unhelpful kind of discussion. An invitation was my intention, and I am sorry that I failed to convey it adequately.

Post reply on HN