Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not much changed over the years. Chromatic is still praising Moose and other bad ways to code.

> Moose is probably the singular reason there are any significant new projects in Perl in 2014.

There is another side of that story: Moose is probably one of the things that contributed to Perl's decline, along with modern Perl, Perl 6 and overall focus on all the wrong things.

Anyways, I wouldn't take chromatic's words too seriously. Learn Go guys :)



What's wrong with Moose, modern Perl, and Perl 6? What makes them "the wrong things"? How did they contribute to Perl's decline? What are "the right things"? What should the Perl community have focused on?

To me it seemed like a bunch of Python and Ruby fans came out of the blue and started endlessly chanting "Perl sucks", or "Perl is line noise", and that apparently was enough to turn a lot of people away from Perl and on to the newcomers.

Sadly, these chants often came from and were directed at people who'd never used Perl themselves, or didn't know much about it at all. So it was really a case of the blind talking to the blind.

Not that I love Perl. It's got some warts. But so do Ruby and Python, and every time I try to pick either of them up, I notice a ton of things that are as bad or worse than Perl. And that just makes me sigh.


> To me it seemed like a bunch of Python and Ruby fans came out of the blue and started endlessly chanting "Perl sucks"

I think that was a side effect of experienced Perl developers publicly explaining why Perl was not that good and why they chose another language. Others respected their authority and started repeating and so on. So, the bigger problem was: experienced developers were fed up with Perl for various reasons and started to speak up. And they were not wrong.

Many years ago there was a perl compiler, but at the time when everyone was moving towards virtualization and ease of deployment was particularly important - it got abandoned. Performance and memory consumption were never considered as problematic either, but they always were. Even simple log processing was not viable for anything, but personal homepage sized logs. It was very disappointing for many people.

As for Moose, etc., Perl had a perfectly good object system. Everyone knew how to bless a reference and make it into an object. It was hard to abuse it, nobody encouraged OOP, things were good and manageable. And yet, community decided to go farther into OOP, promote Moose, promote new syntax features, promote new ways to build modules. Things got messy in the process. Perl still didn't address any real problems, but it was a pretty much new language and a burden on everyone. Suddenly people found themselves in a position, where they needed to decide of whether they want to learn all the new things in Perl or not and learn some other language instead.

> But so do Ruby and Python, and every time I try to pick either of them up, I notice a ton of things that are as bad or worse than Perl.

I don't see them as alternatives to Perl. I think they are in decline too.


experienced developers were fed up with Perl for various reasons and started to speak up

This is also the P6 problem.

Many years ago there was a perl compiler...

... but it never worked very well. Certainly it didn't save memory and it rarely saved much startup time.

Perl still didn't address any real problems...

I think there's something like the Expression Problem in programming language design. How do you allow people to solve new problems and explore new patterns and paradigms in a language without encouraging them to create a series of incompatible forks (Tcl, Lisp, Common Lisp, Forth, Smalltalk, heavily macroed or otherwise preprocessed C or C++), limiting the scope of your language to small or relatively isolated projects (Lua), bringing ideas into the core library where they slowly bitrot (Python, Perl), or facing a dramatic rewrite (Perl, PHP)?

For better or worse, Perl's answer in the past few years has been to prototype new ideas on the CPAN, let the community use them and reimplement them and compete, and eventually enable them with the minimal core support possible. The strategy is decent, but it's not fast and it relies on the ability to find people willing and able to do this work in the Perl core.


> How do you allow people to solve new problems and explore new patterns and paradigms in a language without encouraging them to create a series of incompatible forks

Maybe through many tiny DSLs on top of a small and stable core language. People seem to be ok with DSLs, but not so much with constantly changing language and growing feature set.


Sure, that's the approach that a homoiconic or Forthy language takes. It works well, though it takes a lot of effort and foresight to make sure that multiple little languages can interoperate.


Contrarian here: It seems to me that "Perl 6" is the thing that killed Perl. Don't bother much with this current Perl (5) thing, the version will be along Real Soon Now.

The sad thing about Perl 5 is that it's actually pretty fast for a scripting language, it least if you are doing a lot of string manipulation, rather than physics simulations.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: