4 ms·
I didn't realize I had a "languages ass" on my person. But come to think of it, I do believe I had it kicked when I had to refactor a giant Perl program for HP
by beej71 17y ago
I didn't realize I had a "languages ass" on my person. But come to think of it, I do believe I had it kicked when I had to refactor a giant Perl program for HP many many years ago.
It definitely left me with a lasting impression.
- pyre 17y agoBad code and poor design can happen in any language. Basing an argument on how 'good' or 'bad' a language is around anecdotes that contain either of those is the equivalent of setting up a strawman. [ Note: I'm not talking about bad code in the languages core interpreter/compiler/vm nor am I talking about poor design decisions in the languages themselves. ]
- mkramlich 17y agoI 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.
- stcredzero 17y agoBad code and poor design can happen in any language. Basing an argument on how 'good' or 'bad' a language is around anecdotes that contain either of those is the equivalent of setting up a strawman. Yes. Just because Perl's object model from the late 90's was written in C, doesn't damn C to the unspeakable depths. It just seems that way in the moment. </humor> (My first industry job was writing Perl.)
- chromatic 17y agoJust because Perl's object model from the late 90's was written in C, doesn't damn C to the unspeakable depths. It's more accurate to say that "Just because Larry borrowed Perl 5's object model from Python doesn't mean that...." Yet there are many ways to end that sentence.