zlacker

[return to "What Killed Perl?"]
1. orev+kg1[view] [source] 2025-11-19 18:08:42
>>speckx+(OP)
The backwards incompatibility of Perl 6 absolutely killed Perl.

There are many languages still in use today that have all kinds of warts and ugliness, but they remain in use because they still have momentum and lots of legacy things built in them. So being ugly or old isn’t enough of a factor for people to abandon something in droves.

Once you need to rewrite everything, there’s no reason to stay with something you know since you need to fully retool anyway.

As a Perl programmer since v5 was released, the confusion around 6 completely destroyed almost everyone’s enthusiasm, and immediately caused all new projects to avoid Perl. It seemed like 5 had reached the end of the line, and 6 was nowhere to be found. Nobody wants to gamble so many hours of their lives, and the future of their business, on such an uncertain environment.

If Perl 6 had any visible movement within the first few years, it might have survived, but it was a good decade before they even admitted Perl 6 might take longer than expected, and then more time after that before they admitted it should have been a new language. 6 was interesting for language geeks, and they probably did some cool things, but you can’t run a large popular project like it’s a small research project. That completely destroyed all momentum in the community. Perl 5 development only resumed far too late, after the writing was already on the wall.

Both Bill Gates and Linus understand backwards compatibility as a sacrosanct principle. Python only just barely survived the jump from 2 to 3. JavaScript can only survive this because there’s no other option in a browser.

◧◩
2. chemot+tw1[view] [source] 2025-11-19 19:15:14
>>orev+kg1
> There are many languages still in use today that have all kinds of warts and ugliness,

Right, but there aren't many with the kind of ugliness associated with real-world Perl code.

◧◩◪
3. yehat+MD1[view] [source] 2025-11-19 19:50:37
>>chemot+tw1
Well, what Perl code is not real-world? And by ugly you mean what - not verbose or what? Something is ugly for ones, but nice to others. I doubt that really is a factor driving a demise of language, otherwise features like regexes would be non-existent today.
◧◩◪◨
4. bonzin+K32[view] [source] 2025-11-19 21:55:08
>>yehat+MD1
It's just a completely different model. Scalar context vs list context. @x returning length vs $x[0] accessing the list. It has a logic but it's its own logic.

Not unlike Rust's borrow checker but at least with Rust you know what you're being promised.

◧◩◪◨⬒
5. kstrau+6e2[view] [source] 2025-11-19 22:55:36
>>bonzin+K32
And at least with Rust, even if you don't love it, you can appreciate that there's a compelling reason for it to be that way. I wrote a lot of Perl, but never reached the aha moment where I understand why its sigils were so deliberately odd.
◧◩◪◨⬒⬓
6. shagie+9T2[view] [source] 2025-11-20 04:36:46
>>kstrau+6e2
They were inherited from even older languages and meant pretty much the same thing there.

https://en.wikipedia.org/wiki/AWK#Match_pattern_from_command...

    #!/bin/sh
    
    pattern="$1"
    shift
    awk '/'"$pattern"'/ { print FILENAME ":" $0 }' "$@"
The $ notation for a variable in bash and awk... and BASIC...

    RIGHTS imm & def
    RIGHT$ (sexpr, aexpr)
    ...
    PRINT RIGHT$ ("APPLESOFT" + "WARE", 8)
    SOFIWARE
One might make the claim that EWD498 was correct... https://www.cs.utexas.edu/~EWD/transcriptions/EWD04xx/EWD498...

> It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

https://www.perl.com/pub/2007/12/06/soto-11.html/

> Now, however it was initially intended, I think BASIC turned out to be one of the first major scripting languages, especially the extended version that DEC put onto its minicomputers called BASIC/PLUS, which happily included recursive functions with arguments. I started out as a BASIC programmer. Some people would say that I’m permanently damaged. Some people are undoubtedly right.

... but it wasn't without previous examples that Perl went the way that it did with sigils.

◧◩◪◨⬒⬓⬔
7. kstrau+aV2[view] [source] 2025-11-20 04:56:18
>>shagie+9T2
I'm familiar with those sigils from various places. Me on my childhood C64: "What does 'B dollar sign' mean?". It just boggles my mind that someone writing a brand new programming language would use them when there were English-like alternatives (like `my foo = keys barHash`). It was sometimes hard to remember what [sigil][name] was going to if you didn't already remember what [name]'s, erm, inherent type?, was. Like is $foo going to give me the string that was already in $foo, or perhaps the number of (occupied buckets)/(total buckets) if $foo is really a hash?

I was able to reason my way through these things and had luck writing reasonably large Perl programs. It did absolutely zero to help make devs' lives easier, though.

◧◩◪◨⬒⬓⬔⧯
8. shagie+yY2[view] [source] 2025-11-20 05:42:54
>>kstrau+aV2
In 1987, when your audience of bash and awk and sed users was looking for a language to bring those together and were familiar with them... why wouldn't you use them?

I would also contend that given the tools at the time (vt100 terminals without syntax highlighting being prevalent systems) sigils made it easier to write more on a line, provided easier visual recognition (for those familiar with the language) about the syntax, and provided for a more easily written lexer.

[go to top]