4 ms·
The article still makes an excellent point, which is that the difference between most of the 'newer technologies' and Perl is basically marketing, not any actua
by DrSprout 16y ago
The article still makes an excellent point, which is that the difference between most of the 'newer technologies' and Perl is basically marketing, not any actual superiority of language design. You can write line noise in Perl, but you can also write Python in Perl. It may not be quite as pretty as Python, but as far as use in a production environment it will be equally useful.
- jergosh 16y agoWhy not just write Python in Python instead ;)?
- gamache 16y agoOr write Perl in Perl. Some languages allow code not only "as pretty as Python", but even prettier.
- jergosh 16y agoSome do ;)
- DrSprout 16y agoI like my braces ;}. Also, Perl 5 is feature-stable, and probably always will be. Python is in this 2.x-3.x limbo right now where it's difficult to find libraries that are going to work as-is for much longer. If you write a Perl application well, maintenance will as easy as reasonably possible, which I think is the only real measure of a good language. Most of the 'ease of use' problems disappear once you know what you're doing, and the language learning curve is a relatively small part of a programmer's life-cycle.
- jergosh 16y agoThat's a rather twisted reasoning, with Perl 6 on the doorstep ;)
- gamache 16y agoPerl 6 is not meant to interoperate directly with Perl 5. It's not an incremental update in any way. IMO, it would be a lot clearer if Perl 6 weren't called Perl.
- sigzero 16y agoI agree totally. Perl6 is to Perl5 what VB.NET was to VB6. They aren't the same.
- nailer 16y agoSo all the Perl programmers are going to find other jobs like the VB guys did?
- chromatic 16y agoPerl 6 is not meant to interoperate directly with Perl 5. Indeed it is.
- gamache 16y agoThat's fair; I should have phrased that better. Here's your chance. :)
- MWinther 16y agoSince 2.x is just as feature stable and was just released in the last incarnation (2.7) before an "extended maintenance period", I do believe the limbo you speak of isn't an issue for anyone actually using Python. I can imagine it looking worrisome from the outside, though.
- docgnome 16y agoCPAN. CPAN is fricking awesome.
- ianb 16y agoI consider Perl's data structures to be genuinely inferior. Lists that cannot contain other lists are not reasonable in a high level language. Pointers are not reasonable in a high level language. Explicit function signatures are a superior language design.
- chromatic 16y agoLists that cannot contain other lists are not reasonable in a high level language. Perl has supported arrays of arrays since 1994. Pointers are not reasonable in a high level language. Perl has never supported pointers. Explicit function signatures are a superior language design. I agree with this. Perl 5 should have had them years ago.
- ianb 16y agoIf you put a list in a list in Perl, don't you have to specifically dereference the sublist when accessing it? Otherwise you get what looks to my eye like a pointer (a weird random number). The first google result I get is this: http://www.webreference.com/programming/perl/nested/ http://www.webreference.com/programming/perl/nested/ -- and to me "reference" == "pointer". And the fact that it is all weakly typed (that is, pointers are not a distinct type) makes it that much worse.
- chromatic 16y agoIf you put a list in a list in Perl, don't you have to specifically dereference the sublist when accessing it? You mean "array" instead of "list", but yes. Are there languages which don't require some special syntax for accessing nested data structures? Otherwise you get what looks to my eye like a pointer (a weird random number). When you stringify a reference, you get either the default stringification or an overloaded stringification, if you've overloaded stringification for a particular class. When you numify a reference, you get a unique number. Think of it as a cheap object identifier, because that's effectively what it is. It's not a great interface to expose to users, but that's its intent. I argue that it's not a pointer, because you can't do pointer arithmetic with it. ...pointers are not a distinct type... You mean "reference", and indeed they are distinct. They're RVs. That's a scalar type (SV).