Live data from Hacker News

Why Perl Didn't Win

outspeaking.com

151–160 of 187 posts

Re: Why Perl Didn't Win

#151

Earlier quoted context omitted.

Tcl was and still is undiscovered gold.

I'm very glad that only game writers are using Tcl for scripting their games. It's a godawful language I'd never want to maintain any real software in. Python and Ruby are bad, but Tcl is a degenerate joke. Let's please leave it undiscovered.

One of the greatest proof of concept languages out there. Yes, please do not discover.

Re: Why Perl Didn't Win

#152
post #71

Earlier quoted context omitted.

Absolutely right - Perl 4 had a clear niche (text processing, UNIX system scripting etc) and did this very well. Perl 5 added so much cruft and ugly syntax on top of this in an attempt to try to become more 'general purpose' that it lost its focus. At this point it became easier to switch to Python for 'real' programming. There are still a lot of problems in the Perl 4 space and to be honest I wish that distributions…

If you seriously think that Perl5 is less suitable for text processing than Perl4 was, I suspect you haven't actually used the language in a while... it's still perfectly good for that. Perhaps even better, since 5.8 added extensive support for Unicode (without requiring explicit conversions and breaking everything like Python 3 did).

From a quick skimming through the docs[0], Perl 5.8's Unicode support sounds a lot like Python 2's except that the default encoding is latin1 instead of ASCII - i.e. unlike the Python 3 way of explicitly decoding binary data into Unicode text at the point where it's read (where presumably the encoding of the data is known), it will defer the decoding until the data is used (at some completely unrelated point in the program) and decode it with some assumed globally agreed upon encoding. Since there is no globally agreed encoding (Windows even has different legacy encodings between Win32 and the command prompt!) this will appear to work as long as the data is ASCII but later, when you least expect it (and someone inputs a non-ASCII string), give UnicodeDecodeError in Python 2 or garbage data in Perl 5.8.

Ned Batchelder gave an excellent talk[1] that explains how the Python 3 approach to Unicode works. I think it makes a lot more sense once you understand it; the Python 2 way was clearly broken, and it looks like Perl 5 has the same problem but hides it better.

[0] http://search.cpan.org/~jhi/perl-5.8.0/pod/perluniintro.pod

[1] http://m.youtube.com/watch?v=sgHbC6udIqc

Re: Why Perl Didn't Win

#153
post #6

Earlier quoted context omitted.

While you may end up being right, Perl6 is a much larger departure from Perl5 (than Python3 is from Python2). Can one even use CPAN with Perl6? Is it even possible to convert existing Perl5 CPAN packages to support both versions at the same time (like all of the PyPI packages that support both Python2 and Python3)?

It is a different departure, and it isn't a 1:1 comparison. That's true. But Python3 is an obvious failure and no one is admitting it, yet. I've seen claims from the core dev team about how Python3 is doing well because it has more downloads from Python.org, which is so stupid I won't even address it. A comparison of PyPI download statistics says it all. Python3 migration had many ridiculous ways of pushing people to…

> then porting all the major libraries

Yup, this was a gradual process, but by now everything I need is ported, even Django.

> now the bright idea from the core dev team is to focus on pushing Python3 as the default install on distros. They all failed. Python3 as default on most distros won't do anything either.

It worked on me: When Arch Linux made it the default I figured it was finally time to adopt it for my various everyday utility scripts, which resulted in me successfully pushing for it at work as the implementation language for several projects.

Re: Why Perl Didn't Win

#154

Earlier quoted context omitted.

> I agree and have made that point before. Java tried to be a language for "enterprise programming", which tried to keep the language so simple that having lots of people wouldn't muck up your code. Wind back 35 years or so and you could have said the exact same thing about COBOL.

Wasn't COBOL more about "your accountants can understand this"?

Yes, very early on, then as a sibling comment is saying, then managers.

Re: Why Perl Didn't Win

#155
post #109

Earlier quoted context omitted.

I agree and have made that point before. Java tried to be a language for "enterprise programming", which tried to keep the language so simple that having lots of people wouldn't muck up your code. IMHO, it failed epically at this, and today we would basically laugh at the idea that Java is good at that, but it was in fact a design criterion back in the day. One could make the case that it sort of succeeded at the iso…

> I agree and have made that point before. Java tried to be a language for "enterprise programming", which tried to keep the language so simple that having lots of people wouldn't muck up your code. Wind back 35 years or so and you could have said the exact same thing about COBOL.

COBOL also failed so epically that it soured its entire core idea for decades. (That's just an additional observation, I'm not saying you claimed otherwise.)

I won't guarantee that Go will experience wild success and become an A-list language, but I will guarantee that barring some major change in approach or leadership, it will not fail so spectacularly as to destroy the entire idea of trying to create a language for programming at scale. While HN bitches, Go's penetration into exactly the space I'm describing marches on and has passed critical mass.

Re: Why Perl Didn't Win

#156

Earlier quoted context omitted.

> And Perl 6? Fourteen years and nothing to show for it ... except a nearly feature-complete [1] compiler [2] and an impressive test suite [3] [1] http://perl6.org/compilers/features [2] http://rakudo.org/ [3] https://github.com/perl6/roast/ > and it'll have to be backwards compatible to all the things violently wrong with Perl 5 Not at all. The whole point about Perl 6 is that it breaks backwards compatibility to fi…

> The whole point about Perl 6 is that it breaks backwards compatibility I think this is is a contributor to why Perl 6 will never amount to anything. That boat has sailed. Python 3 broke backwards compatibility and to my knowledge everybody is still using Python 2. Python has a lot of energy right now, so that might save it, or it might go the way of Perl when the next cool language comes out and everybody jumps shi…

Perl 6 is a new language. Its not a Python like scenario where people are looking to migrate their existing code bases from 2 to 3.

Perl 6 is for new projects. Perl 5 ecosystem continues evolve untouched. Unlike the Python 2 scenario, where 2.x won't be supported and 3.x series and its library ecosystem isn't ready anymore.

Re: Why Perl Didn't Win

#157
post #19

Rewriting your language, like any other piece of software, is a great way to lose your market position: http://www.joelonsoftware.com/articles/fog0000000069.html

Its a damned if you do, damned if you don't situation.

You have to evolve to survive. If you don't don't you may stay alive for a while. But you will die slowly.

Re: Why Perl Didn't Win

#158
post #56
post #23

I don't think Perl will ever recover from the Perl 6 fiasco, and I'm worried for Python for the same reason. PHP, on the other hand, handled the PHP 6 "failure" relatively gracefully. There was a bit of stagnation in the days of PHP 5.2 when the devs devoted too much energy to PHP 6 and not enough on improving the current version. But soon, PHP 6 was put on hold and some of its better parts began to be ported to PHP…

Python will be beaten by those caring about performance for writting applications instead of plain server scripts. Those will migrate to Julia, Go, or something else. I used Python a lot in the last decade (2000 - 2004) for automatation and little applications. Nowadays my choice would be OCaml for the same type of tasks. EDIT: typo, automatic => automatation

Numba + Blaze boosts numerical python to speeds on par with or greater than julia, with additional out of core, delayed expression and multiple backend capabilities that Julia currently does not have.

This might stem the tide for a while... Then we have pyston which maintains C api compatibility.

Re: Why Perl Didn't Win

#159
post #158
post #56

Earlier quoted context omitted.

Python will be beaten by those caring about performance for writting applications instead of plain server scripts. Those will migrate to Julia, Go, or something else. I used Python a lot in the last decade (2000 - 2004) for automatation and little applications. Nowadays my choice would be OCaml for the same type of tasks. EDIT: typo, automatic => automatation

Numba + Blaze boosts numerical python to speeds on par with or greater than julia, with additional out of core, delayed expression and multiple backend capabilities that Julia currently does not have. This might stem the tide for a while... Then we have pyston which maintains C api compatibility.

Are they written in Python?

Re: Why Perl Didn't Win

#160

Earlier quoted context omitted.

> Ruby itself was effectively moribund until Rails I think you might mean "unknown" rather than "moribund", but just in case: no it wasn't, it was quite successful, RAA wasn't CPAN but was quite rich, there were steady improvements to the language and the community outside japan was growing (i.e. most of the european ruby user groups started before ruby on rails). It was just growing slowly, rather than skyrocketing.

Which is to say: in pretty much the same position Perl is in now.

well, the trend was upwards rather than downwards, I think that makes all the difference.
Post reply on HN