Earlier quoted context omitted.
'subroutine signatures' is such a basic and expected feature that it isn't even named in other languages. People just assume "it has to be there"... This is what makes people run way from Perl nowadays. I recently tried to convince someone that Perl is superior to PHP. When he saw the sub and $_ and shift he was like "I'm not touching this with a ten foot pole". And there was nothing I could say. Compared to somethin…
> 'subroutine signatures' is such a basic and expected feature that it isn't even named in other languages. People just assume "it has to be there"... That is an understandable, yet still naive statement. In the implementation of signatures one has to make MANY decisions concerning the trade-offs of syntax, available features and performance impacts of signatures. The discussions about what was needed and wanted for…
Perl 5.20.0 released
51–60 of 85 posts
Re: Perl 5.20.0 released
#52Earlier quoted context omitted.
Well, it's just that perl for: sub foo($x, $y, $z) ... has up to now been written: sub foo { my ($x, $y, $z) = @_; ... which is annoying boilerplate I agree, but actually pretty regular. [You mean language xxx has two different ways to declare subroutine lexical vars?] The people who want to hate perl will continue to hate it. After the list of reasons they dislike it are resolved, they'll come up with new ones and/o…
After the list of reasons people dislike it are resolved, it won't be Perl. It's fine to start calling a modern language Perl, even though the modern language has standard syntax that no current Perl programmer would consider Perl, and standard computer science constructs like OOP and Unicode etc that require coding against a different abstraction than Perl. Nothing wrong with that. But the new Perl would have as lit…
So "people" will never like Perl? Good argument! :-)
Well, what are the reasons to dislike Perl, then?
>>OOP and Unicode etc that require coding against a different abstraction than Perl.
1. Perl, with Moose, has arguably the best OO of the common scripting languages (inspired by the Common Lisp Object System).
2. Perl has probably the best Unicode support of the common scripting languages.
Basic advice:
To be a language war troll you need to know enough so you can make people angry. If they laugh at you, it is a failure.
Re: Perl 5.20.0 released
#53Earlier quoted context omitted.
Try Scala. It's a very expressive language that does not sacrifice on power (JVM/type safety). As a long time professional Perl programmer, I've given up on it. The heartache it has caused on enterprise teams I've been on is not worth the rise in blood pressure. And I'm starting to think that it is inefficient in its yield per unit of effort ratio. Writing good, scalable, clean, modern Perl requires so much couching…
> Try Scala. Aiui folk who love Perl tend to have a natural affinity for Scala. Stevan Little (the Moose and P5 MOP guy) chose Scala for Moe and I'm pretty sure he enjoyed it. I'm in to P6. ionforce, please indulge/educate me: > {Scala|P6 is} a very expressive language that does not sacrifice on power (JVM/type safety). I hope you see where I'm coming from and are willing to play ball. :) First and foremost, P6 is in…
Re: Perl 5.20.0 released
#54Earlier quoted context omitted.
After the list of reasons people dislike it are resolved, it won't be Perl. It's fine to start calling a modern language Perl, even though the modern language has standard syntax that no current Perl programmer would consider Perl, and standard computer science constructs like OOP and Unicode etc that require coding against a different abstraction than Perl. Nothing wrong with that. But the new Perl would have as lit…
>>After the list of reasons people dislike it are resolved, it won't be Perl. So "people" will never like Perl? Good argument! :-) Well, what are the reasons to dislike Perl, then? >>OOP and Unicode etc that require coding against a different abstraction than Perl. 1. Perl, with Moose, has arguably the best OO of the common scripting languages (inspired by the Common Lisp Object System). 2. Perl has probably the best…
If you move toward a readable standard "Perl" that supports (only) modern coding styles, you will have something that old Perl users wouldn't really recognize as Perl.
Consider something as simple as: https://news.ycombinator.com/item?id=4774426
This is "Perl" and recognized as such... but my suggestion of calling some entirely different language Perl in the future would make this essentially a non-script. The same is true for most syntax, as well as a large amount of fundamental structures, regexes, etc.
I'll speak following my analogy: I'll call Perl the Apple ][ and some language that wouldn't be recognized as Perl by today's Perl users, but which should be called Perl in the future I will call the iPad.
For example, it's fairly clear that the iPad language should have every single variable be a full object. The Apple ][ does not force this. Likeweise, classes and OOP would not be optional on an iPad, but a fundamental part of writing any program. But on the Apple ][ it is optional. On the iPad it is clear that $_ would be meaningless and not used, ever. It's a syntax error.
On the iPad all source code is UTF-8 or Unicode, and all built-in standard operators including the iPad version of a regular expression (which uses almost none of the syntax of the Apple ][ language natively operate on UTF-8 or Unicode.
The iPad language is longer and has more explicit, longer keywords. The syntax itself is extremely orthogonal and you could describe the entirety of it to anyone who has programmed in any language in a relatively low number of slides, and they can just start coding. It is fully readable to someone who has never read the iPad language, i.e. if you were to read a numerical algorithm or datamining algorithm that was just talked about in a textbook, you wouldn't be distracted by the textbook having to explain what the iPad is. It speaks for itself.
This explicitness is part of the language; there is no way to write one-liners or extremely concise hacks the way the Apple ][ could.
The iPad language lives on the web. It has primitives for handling a client connection as well as a standard framework for rich client-side connections. A persistent connection over http is as everyday as standard input and standard output was on the Apple ][.
And boy can you Google this. The Apple ][ could have a syntactic structure, special variables [1] that were almost impossible to Google. All sorts of Context.
The iPad language has no such context. There is very little you can set to change the fundamental syntax, no way to change the default index on arrays and related things, or any such high-context things or syntactic context. There is just one context, and everything that is done in a program is spelled-out and eminently Google-able. You never have to ask what something actually does, on a syntactic level, or figure it out by running it. You don't have to spend even six days to get to this level at the language: an afternoon tells you all the context that you will ever need. Anything beyond that, you can Google.
Sure, you may not understand what a piece of code does on a higher level. What happens if you apply a fourier transform to _____. It may not be obvious.
But syntactically, it is extremely easy to read off what you're doing. No more difficult than reading off pseudocode in a textbook.
And the language is succinct. The basic syntax is so small, so orthogonal, that you can be handed a 20-page description, having never seen an iPad language, and be able to more or less implement a version in the language of your choice, in a few weeks, without any further information or context. There is not a lot of magic involved.
Of course, the only thing that the iPad language will have in common with the Apple ][ is just the brand (Perl)..or the fact that at some level they're both turing-complete.
The future of Perl is calling an iPad language that is unrecognizable to any current user of Perl, Perl.
Gone are the days of syntactic sugar or short little idioms.
Re: Perl 5.20.0 released
#55Earlier quoted context omitted.
>>After the list of reasons people dislike it are resolved, it won't be Perl. So "people" will never like Perl? Good argument! :-) Well, what are the reasons to dislike Perl, then? >>OOP and Unicode etc that require coding against a different abstraction than Perl. 1. Perl, with Moose, has arguably the best OO of the common scripting languages (inspired by the Common Lisp Object System). 2. Perl has probably the best…
I'm serious in the sense that some of the extreme syntax-sugar and leniency, more than one way to do it, etc, that Perl is loved for are the reasons that people dislike it in a modern context, and these are to simply be removed with no equivalent replacement. If you move toward a readable standard "Perl" that supports (only) modern coding styles, you will have something that old Perl users wouldn't really recognize a…
Perl evolved into it's "new form" some time ago. Modern Perl came out 5 years ago and was really just codifying best practice at the time.
It's still the same language if you want it to be. Backwards compatability is taken very seriously. Which - yes - does mean that you can write crappy old perl in it if you want to. (And also that all the crappy old perl you have lying around will continue to work).
But it's also a pretty vibrant, modern language. Any new project or new perl codebase can and should be written in modern perl. And - despite your assertions - it's still very much the same language.
Just now with extra, better stuff too.
Re: Perl 5.20.0 released
#56Earlier quoted context omitted.
I'm serious in the sense that some of the extreme syntax-sugar and leniency, more than one way to do it, etc, that Perl is loved for are the reasons that people dislike it in a modern context, and these are to simply be removed with no equivalent replacement. If you move toward a readable standard "Perl" that supports (only) modern coding styles, you will have something that old Perl users wouldn't really recognize a…
I think you're constructing a strawman and then having a few swipes at it. Perl evolved into it's "new form" some time ago. Modern Perl came out 5 years ago and was really just codifying best practice at the time. It's still the same language if you want it to be. Backwards compatability is taken very seriously. Which - yes - does mean that you can write crappy old perl in it if you want to. (And also that all the cr…
So I am actually making the opposite point, that it shouldn't be the same language. I don't think the new form is new enough, I wouldn't call it the iPad of my analogy. In particular, I am also saying that "the iPad shouldn't run Apple ][ code". (at all.) Nearly all Apple ][ code shoudl be a syntax failure on the iPad. Including even $_. Every syntactical element should behave differently, minimally. Much simpler syntax with very little sugar. Much more verbose.
Basically a totally different language should be whitebranded with the brand currently worn by this language. People who used that language shouldn't recognize this language. People who use this language, shouldn't be able to understand that language. They shouldn't have anything in common.
The two things should have literally as much in common as the Apple ][ does with an iPad, which is nigh-unto nothing.
You say, "it's still the same language if you want it to be", but that is a problem. It is like saying you can still pull a jumbo jet with a horse if you want to. No, you shouldn't be able to pull a jumbo jet with a horse at all, a jet just shouldn't support acting as a cab. It should fail to move forward. The horse should give up. The horse in this case is Ascii. It should never even be hitched to it.
Nothing should remain of Perl but the brand, and that they're both turing-complete, just as the intersection between an iPad and an Apple ][ is the null set (plus the fact that they're both physical objects, and a few similar superficial similarities that would apply to every computing device / programming language.)
Re: Perl 5.20.0 released
#57Earlier quoted context omitted.
I think you're constructing a strawman and then having a few swipes at it. Perl evolved into it's "new form" some time ago. Modern Perl came out 5 years ago and was really just codifying best practice at the time. It's still the same language if you want it to be. Backwards compatability is taken very seriously. Which - yes - does mean that you can write crappy old perl in it if you want to. (And also that all the cr…
(Not a straw man, I wasn't writing ironically or derisively about anything, but rather made a genuine suggestion to break "apple ][" code - referring to current Perl - with a totally modern and incompatible "iPad" language - referring to a future usage of the brandname without any common technology - that has absolutely nothing in common with the former, whatsoever. Nothing.) So I am actually making the opposite poin…
I'm also not entirely sure what you intend by "changing everything but keep the name the same". Why not use a new name?
Re: Perl 5.20.0 released
#58Earlier quoted context omitted.
(Not a straw man, I wasn't writing ironically or derisively about anything, but rather made a genuine suggestion to break "apple ][" code - referring to current Perl - with a totally modern and incompatible "iPad" language - referring to a future usage of the brandname without any common technology - that has absolutely nothing in common with the former, whatsoever. Nothing.) So I am actually making the opposite poin…
A new language with the same brand has been tried. It's called perl6. I'm also not entirely sure what you intend by "changing everything but keep the name the same". Why not use a new name?
The only thing the latter have in common is the name Apple.
The reason you wouldn't use a new name is to show the community of people that you are the same group of people. No other reason.
Re: Perl 5.20.0 released
#59Earlier quoted context omitted.
> 'subroutine signatures' is such a basic and expected feature that it isn't even named in other languages. People just assume "it has to be there"... That is an understandable, yet still naive statement. In the implementation of signatures one has to make MANY decisions concerning the trade-offs of syntax, available features and performance impacts of signatures. The discussions about what was needed and wanted for…
Wow, what happened between paragraphs 1 and 2? You went from making a good point to insulting a whole class of people. I’m no fan of PHP, but I could hardly bring myself to insult everyone who uses it...
I was not aiming to insult, though some might certainly feel offended, but explain why the poster above failed to make a useful point.
Re: Perl 5.20.0 released
#60Earlier quoted context omitted.
Then they probably shouldn't have copied the crazy obscure variable stuff ;-) (I say that as a Perl and Ruby fan)
Matz admits that he might have stolen too much from Perl and got some "whale guts" over his shoes - but only a little. From the obligatory Yegge rant: https://sites.google.com/site/steveyegge2/tour-de-babel