3 ms·
I think the valid criticism of Perl is not to say it's bad but to say that compared to the alternatives, it's farther from ideal, in certain important dimension
by mkramlich 17y ago
I think the valid criticism of Perl is not to say it's bad but to say that compared to the alternatives, it's farther from ideal, in certain important dimensions. Perl lives in the same world with Python, Ruby, Java, Clojure, etc. so whenever one can reach for Perl one can also reach for any of those other languages.
It's not that bad language yields bad code, it's that people who are picky want good code AND the best language to express it in. In some folk's minds, there are languages available to them that have the same strengths as Perl, can be used in the same role as Perl, and yet have less of it's imperfections. I think that's the strongest case against it. Not that it is a "bad" language, necessarily.
- berntb 17y agoThere are advantages/disadvantages with everything. Can you for example show me which of those languages have a better OO system than Perl 5 with Moose? Oh my, how things change... :-) I'd argue that Perl's main disadvantages are two -- the relentless trolling and that it probably has a bit harder learning curve for people to do it right. (Java isn't really in the same niche; it is more of a system language and e.g. doesn't compete in development speed with scripting languages. How is it these days -- the scripting languages on the JVM are still mostly interpreted, btw?)
- jrockway 17y agoI have a hard time using those other languages, because they just aren't as mature and featureful as Perl 5/CPAN. I like to organize my applications as composable parts ("roles"), and the only other language that has a sane role implementation is Scala. And sadly, Scala had a little too much Java for breakfast and got them mostly wrong. I remember a few years ago when I wrote Perl OO and said, "I wish this was more like Common Lisp". Now I can barely get past "(defclass" without wishing I was using Perl instead. (And then I usually switch the project to Perl; the 8-billion-x or whatever speed hit is well worth Moose's design sugar.) Anyway, I spend a lot of time thinking about programming and application design, and I just can't get Clojure or Ruby or Python or Java to a point where they could be usable for the kinds of things I do. And Perl already has everything I would need to add to those languages. The only other language I really like is Haskell. It is much better than Perl. But Perl has so many good libraries (and great library authors), that I don't see myself switching completely to Haskell for a long time. I can stand a little bit of computer science imperfection if it means I have an application that works. With Perl, I always end up with an application that works. Honestly, hating Perl and then saying to use Ruby or Python or Clojure instead is kind of silly. All languages in this category have the same fundamental weaknesses... they just all spell the weaknesses differently.