10 ms·
What Happened to Perl 7? (2022)
- CraftThatBlock 2y ago(2022)
- andrewstuart 2y agoI saw a job add for DuckDuckGo the other day - it said that Perl is their primary language.
- mrbluecoat 2y agohttps://xkcd.com/208/ https://xkcd.com/208/
- djbusby 2y agoThis one is good too https://xkcd.com/1171/ https://xkcd.com/1171/
- fuzztester 2y agoThe one about Lisp, Perl and God is good too.
- thesuperbigfrog 2y ago>>The one about Lisp, Perl and God is good too https://xkcd.com/224/ https://xkcd.com/224/
- ethagnawl 2y agoI bet people would be surprised to find out how much of the web, various build systems, etc. are still powered by it. It's been a few years since I've known the following to necessarily be true but some examples that come to mind are Craigslist and BuzzFeed.
- rjh29 2y agoPerl has a huge amount of terrible design decisions and low hanging fruit, yet it has barely improved over 20 years. While python got dataclasses and type checking perl got... a few syntax upgrades many of which never left experimental and ended up being deprecated. The smartmatch implementation was beyond terrible, and implicit arrayref arguments should have never made it past the design phase. And still no native object/class system. Still no working exception handling! I don't know if the perl runners are incompetent, badly organised or just hamstrung trying to guarantee backwards compat for all the legacy code. But as a Perl user it has been very frustrating to watch.
- mgarfias 2y agoThey spent 15 years working on perl6 and the world moved on
- petre 2y agoMore like 20. And pel6 is now a different language, raku, as they abandoned all hope to unify them. Even the community has splintered between perl and raku.
- rabbits77 2y agoI'd say you're being a bit overly cynical. There's plenty of good news in Perl too. specifically, since you mentioned smartmatch, that's been pretty well fixed as of a couple of weeks ago with Switch::Right https://metacpan.org/dist/Switch-Right https://metacpan.org/dist/Switch-Right. As is tradition this was the subject of a very engaging talk at the most recent TPRC: https://www.youtube.com/watch?v=0x9LD8oOmv0 https://www.youtube.com/watch?v=0x9LD8oOmv0
- petre 2y agoAs usual, it's a module when it should be a language feature. Too much useless talk and not enough stuff getting done.
- 2y ago
- QuesnayJr 2y agoI'm surprised it worked out like this. The Perl 7 announcement was the last time I remember Perl getting positive attention.
- DonHopkins 2y agoTo plop out some food for thought: Negative attention is better than no attention at all. With all their obsession with backwards compatibility, Perl should take a page from one of Philip K Dick's most bizarre novels, "Counter Clock World", where the Hobart Phase makes entropy runs in reverse, and regress Perl's version number each year. Then they'd be on Perl -20 by now! https://en.wikipedia.org/wiki/Counter-Clock_World https://en.wikipedia.org/wiki/Counter-Clock_World >The novel describes a future in which time has started to move in reverse, resulting in the dead reviving in their own graves ("old-birth"), living their lives in reverse, and eventually returning to the womb where they split into an egg and a sperm during copulation between a recipient woman and a man. [...] >The Hobart Phase is the new order of life where people rise from the dead and are rejuvenated. Time reversal apparently began in 1986. Other than aging, Hobart Phase resurrection has changed nutritional and excretion processes and associated social taboos. People do not eat, but instead consume "Sogum" anally through a pipe, and later "plop" out food orally, which is done in private, due to its 'shameful' nature. As for smoking, cigarettes are no longer smoked, but the smoke instead blown back into them, making them grow back to normal size (this also clears and freshens the air). "Goodbye" and "hello" have reversed their order within standard greetings, and "food" is used as a drop-in replacement for the expletive "shit". It is stated that Mars colonists do not have the Hobart Phase on their world, and it is limited to Earth, and presumably its lunar colonies as well.
- fuzztester 2y ago>"food" is used as a drop-in replacement for the expletive "shit". No food. Holy food! Day by day the world is getting foodier and foodier.
- DonHopkins 2y agoEnfoodification!
- rurban 2y agoPerl 11 has been abandoned at least (5+6=11). Perl 6 features on perl5 without the incompatible syntax choices. I couldn't make inlining (cloning of subs) work, which is needed for realistic method calls. Their approaches got a it better lately, but still like 20 years behind mine.
- fuzztester 2y agoRaku is looking good though.
- personomas 2y agoRaku is pretty awesome actually, but it's community is pretty small.
- fuzztester 2y agoYes, that is to be expected, with all the issues behind it and Perl and the transition.
- dana321 2y agoYeah, Raku has some neat features like being able to build parsers directly with the language.
- fuzztester 2y agoAlso sub range types, when clauses, ternary conditional expressions, anonymous subroutines, methods on values, and more.
- gpvos 2y agoHow is its performance nowadays?
- harry_ord 2y agoI wrote a few things in raku. Pretty nice compared to perl and inline perl5 was a nice way to get a lot of easy functionality
- metayrnc 2y agoAre there any circumstances where starting a new project with perl makes sense today? I am curious because I only encountered perl in legacy codebases.
- kukkamario 2y agoAll Perl code I have ever seen, has been "write-only". Just completely unreadable and it was easier to just look at the output instead of the code when converting it to Python to get actual maintainability.
- Kelteseth 2y agoYou are getting downvoted, but for me, it is the same experience. It's a dead language, and we are switching to Python, that is far better to maintain for me and for all our new hires. I mean, Perl doesn't even has a debugger on Windows.
- hpcjoe 2y agoNot true by any stretch. I've used komodo[1] for more than 2 decades as a debugger in Linux, Mac, and Windows. More recently VSCode on all 3, for debugging. Definitely not a dead language. A mature and stable language, which won't surprise you. [1] https://www.activestate.com/products/komodo-ide/ https://www.activestate.com/products/komodo-ide/
- oldpersonintx 2y agosure! 1. you like perl and enjoy coding with it 2. you are good with perl so internet criticisms don't impact your decision 3. you don't care about contributions from other people
- phplovesong 2y agoI guess if the team is (only?) familiar with Perl. But then again, its the same with PHP. Even IF you know PHP you would not pick it over the more modern alternatives in 2024. I guess some people just want to stick with what they know, and refuse to learn anything new.
- bachmeier 2y agoRelevant background: https://www.perl.com/article/announcing-perl-7/ https://www.perl.com/article/announcing-perl-7/ That got a lot of attention four years ago. Larry Wall had approved changing the name of Perl 6 to Raku the year before. I don't think it's controversial at this point to say the Perl language will never see big changes. The only people still working on the language do so because they want to keep running the language they have now. That's fine, but as described in that article: "The new features crowd has to deal with a longer boilerplate section in every program, and newbies wonder why they have to include so much just to create a program so people on StackOverflow won’t hector them over missing pragmas."
- chuckadams 2y agoThat big boilerplate section can be rolled into a single pragma like Modern::Perl, and it's trivial to write such pragmas yourself using Import::into. The difficulties with the boilerplate are overrated, it's the incredibly loose type system that resists any attempts at static typing, and can't even differentiate numbers and strings except by having different operators for the two. Sigil soup still turns people off too, me included even after doing perl off and on for 20 years.
- jart 2y agoWhat on earth is modern Perl? I tried asking my search engine. I got nothing that showed me examples of what the code looks like. Is there really a popular faction in the Perl community that's evolving the language in a different direction using modules?
- whatnotests2 2y agoGenerally, I think, modern Perl is when rather than doing OOP with "bless" they use the Moose module.
- nocman 2y agoGenerally I hear that in reference to chromatic's book / blog posts: http://modernperlbooks.com/ http://modernperlbooks.com/
- downsplat 2y agoI remember learning perl in the early 90s, it was perl 4 at the time, and it opened up a whole class of possibilities by its incredible expressivity, things you wouldn't otherwise do because they'd be far too tedious in C and not really doable in sh or awk. Then perl5 came and extended it into a fully fledged programming language with modules, data structures, closures, the whole lot. And CPAN was unequalled for very long. Over time I picked up php, python and node, but to this day my personal scripts are done in perl, and lots of command-line file wrangling starts with "perl -En". I think two very early decisions doomed perl's ultimate future, and they were too ingrained in the language to ever change without losing compatibility. One is the shifting sigils, accessing @x with $x[3] instead of the logical @x[3]. The second is auto-flattening, where foo(@a) passes the contents of @a as separate arguments instead of @a as a single thing. Fixing these was so incompatible that the attempt turned into Perl6/Raku, which went way overboard in terms of design and failed to catch on. Meanwhile other dynamic languages converged on the better design of having containers be objects, and flattening done by an explicit operator. I think perl has done a very decent job at turning into a legacy language, which was the right direction given the constraints. The maintainers have prioritized compatibility to a high level, while still slowly fixing whatever pain points they could, including finally adding function signatures (!).
- deleted 2y ago[deleted]
- chuckadams 2y ago> One is the shifting sigils, accessing @x with $x[3] instead of the logical @x[3] $x[3] is perfectly logical when you think of the sigil as typing the value and not the variable. They're basically one-char cast/convert operators. Auto-flattening is less defensible. It was easier for me to intuit because @foo looks like a list splice in lisp and MOO code, so anywhere you see @foo in args, you can assume it's spliced in ... but then there's prototypes that change that. Yeah. These just made Perl weird but they didn't reduce its power or expressivity. It was things like only having a single scalar type, or not even having named args without crazy shit like Devel::Declare that always had me looking for greener pastures. Nowadays I spend most of my time writing PHP and TS. PHP is reasonably pleasant since the 8.x days, but I wish it had generics. And talk about having to crawl out from under a pile of bad legacy decisions...
- INTPenis 2y agoI was a perl user from about 2003 to around 2013, when I found Ansible. Took a liking to Python and never looked back. Now, from the outside looking in, I feel like Perl is stagnant.
- flanrx 2y agoPerl is still a better system administration language than Python. Many Unix wrappers in Python like shutil and subprocess are just not very good. Python removes you from the system. Perl, like shell, keeps you in close contact with the system. If a Linux/BSD distribution uses Perl in the base system, it is a plus for me. Unfortunately, most Linux distributions dropped Perl when they became bloated.
- EternalFury 2y agoI was there then and I am still here today. Ahah. Perl was the language best suited for text manipulation because of its early popularization of regular expressions. As such, it was excellent for a lot of tasks in « DevOps », even though that term wasn’t a thing then (everyone carried their own water). I remember deploying a web forum that was coded in Perl once. I remember having to debug large Perl scripts and that was a nightmare. I remember a time when Python was a new odd thing and the long-bearded hacking elite joked about it. But, all this will be lost in time, like tears in rain… Just remember one thing: The mess you make with any language is yours, not the language’s.
- chuckadams 2y agoIt makes me sad that qw«foo bar baz» still doesn't work in perl5.
- shawn_w 2y agoI have good news! #!/usr/bin/env perl use v5.36; # Minimum version needed for this use utf8; use experimental qw/extra_paired_delimiters/; my @arr = qw«foo bar baz»; say $arr[1];
- tannhaeuser 2y ago> Perl was the language best suited for text manipulation because of its early popularization of regular expressions. It was awk, grep, sed, and lex that popularized regexpes before. Perl attempted to agressively replace awk and sh, even shipped or still ships the a2p.pl script to perform limited awk-to-Perl code conversion. What Perl brought were Perl-style regexpes with capture groups and back references, which are still not characterized in terms of formal language theory when good decision procedures were the entire point of subsetting lexical analyses from eg context-free languages or other more capable models, which is particularly odd considering Larry Wall is a linguist.
- chuckadams 2y agoAs a linguist, Larry was also acutely aware of the difference between prescriptive rules of grammar vs how language is actually spoken by real people, and in terms of informing Perl he always came down firmly on the side of the latter. And now perl is the gold standard for "regexes" even if they don't encode regular grammars anymore.
- atombender 2y agoIs Larry Wall not involved with Perl anymore? What happened to him?
- G3rn0ti 2y agoHe is an accomplished software developer at the age of 69 — he retired.
- rabbits77 2y agoThis article predates the resignation of SawyerX (due to a lot of the abuse and misery heaped on him), who was the Perl release manager (aka "Pumpking") that was in charge of Perl 7. The short version of it was that there was a bit of a power play by people who felt ignored and wanted a bigger part of what was felt to be an important development. SawyerX goes into his a bit in a talk from 2023. https://www.youtube.com/watch?v=Q1H9yKf8BI0 https://www.youtube.com/watch?v=Q1H9yKf8BI0 This has resulted in a new (2024) code of conduct so that leadership can proceed without the previous sorts of verbal assaults effecting things again. https://news.perlfoundation.org/post/new-standaards-of-conduct https://news.perlfoundation.org/post/new-standaards-of-condu...