11 ms·
Ancient languages: Perl (2004)
- coldtea 13y ago>You see, someday I will start my own company, and I'll decide my own hiring bar. Yes, meanwhile people using Perl succesfully should care, because?
- VLM 13y agoI'll summarize the article: 1) He hates Larry, therefore we should all hate Larry's language. 2) He looked in the official detailed technical docs when he was looking for a "learning..." book or a "... for dummies" book. By analogy he was looking for dietel and dietel but when he picked up stroustrop his eyes started burning. 3) He hates the idea that references exist and some people like them and use them. Although you don't have to use them, at all. Also if you insist on implementing your own object oriented design the slow hard way by hand using references instead of "use Moose;" like a normal person, its hard and slow just the way you asked for it, instead of being made impossible. 4) He doesn't like the large number of features. He especially dislikes the single/double character magic variables. Some of them take as much as 30 seconds with google to learn and use! 5) Strange rant about lego as a programming language analogy, which boils down to much like lego, languages should have just a handful of fully understood small pieces that hurt your feet when stepped on barefooted; You must fully understand all (few) language features before programming. I think he's calling for the return of Basic Assembly Language on a S/360 mainframe, or perhaps a more RISC alternative like enterprise grade 6502 machine code. Its a weird essay. I think its a parody of the recent spat of perl-hate.
- kyllo 13y agoNot recent. It appears to be a repost from 2004.
- irahul 13y ago> Although you don't have to use them, at all. Also if you insist on implementing your own object oriented design the slow hard way by hand using references instead of "use Moose;" like a normal person, its hard and slow just the way you asked for it, instead of being made impossible. If you are a perl programmer, you have to know and use references(pass hash, pass array with other params, nested data structures...). "you don't have to use them" is true in the sense that you don't have to use anything - you don't have to use lists, hashes, OOP, what have you. The same goes for OOP. Moose is an option for new code, not for code which has been written with blessed references. I don't have anything against references; I do have something against using references and de-references for nested data structures and passing data structures to functions. Yes, I do understand references, but I will take the way Python and Ruby make do without references over Perl's references any day.
- VLM 13y ago"not for code which has been written with blessed references." Thanks for pointing that out, it is an unfair article because the whole premise of the parody was if the author was running a blue sky startup... so legacy code sucks is not much of an argument. Some time ago I reflexively converted everything perl OO that I touched to "modern" Moose and it seems to have been worth it. Detection of non-Moose OO should be a Perl::Critic complaint. You can always add something to the exclude= line in a perlcritic.rc file. We've already got Perl::Critic::Tics and ::Lax and a bunch others, so ::FanOfMoose to complain about non-Moose OO is within the realm of possibility.
- wonderzombie 13y ago5) Strange rant about lego as a programming language analogy, which boils down to much like lego, languages should have just a handful of fully understood small pieces that hurt your feet when stepped on barefooted; You must fully understand all (few) language features before programming. I think he's calling for the return of Basic Assembly Language on a S/360 mainframe, or perhaps a more RISC alternative like enterprise grade 6502 machine code. Rather, he's arguing for a modern Lisp. I've never stepped on parens while barefoot, though, so I can't speak to whether it'd hurt as much as lego.
- cdoxsey 13y agoHis take on Larry Wall is terribly uncharitable: First: Larry is insane. This means more to me than anything in the language itself. I prefer my heroes to have a firm grasp on sanity. I was never a fan of Don Quixote. Larry says God talks to him, and tells him that He hates non-Perl programmers. Larry is a fruit cake, a nut job, crazy as a loon, batty as a belfry. Having read the interview (http://interviews.slashdot.org/story/02/09/06/1343222/larry-wall-on-perl-religion-and http://interviews.slashdot.org/story/02/09/06/1343222/larry-...) I don't see how anyone could come away thinking this. Larry Wall seems like a nice guy to me.
- Dirlewanger 13y agoDid you miss the fact that this is indeed a drunken rant?
- mpyne 13y agoDoes that matter? Does being drunk make you uncharitable, or does it merely prevent you from controlling yourself before you announce it to the world?
- Dirlewanger 13y agoYes
- berntb 13y agoYegge "proved" someone insane literally by arguing as if a humorous speech was serious. If that isn't uncharitable or worse, I need a new dictionary. Also, this is an old, old rant. It must have been posted multiple times with other URLs.
- mpyne 13y agoSorry, I thought we were talking about Yegge, I knew Wall's speech was not meant to be serious... wasn't sure about Yegge's post.
- 13y ago
- jimfuller 13y agothe existence of a language should not be a threat, its ok for you to move on from Perl.
- peterwwillis 13y agoFun fact: Perl probably encompasses more supporting library code than any other language other than C. The Comprehensive Perl Archive Network (CPAN) currently has 123,757 Perl modules in 28,037 distributions, written by 10,829 authors, mirrored on 270 servers. Back in 2004 (almost 10 years; there's been some developments since then) someone ran SLOCCount on all of CPAN, and it estimated the development cost at about $677 million dollars. http://web.archive.org/web/20041010230806/http://www.etla.org/cpan-sloccount-report.txt http://web.archive.org/web/20041010230806/http://www.etla.or... Before you choose another language for your project, ask yourself if it's not going to cost more to write everything you'll need, or if using pre-existing, time-tested code might do the trick for cheaper. The one downside about Perl that I think is the most unfortunate is the ninja aspect. You have to be a Perl ninja to write good Perl code. There's no two ways about it. If you come from a different language, you have to ignore all the rules and guidelines you used to develop in, and learn the Perl way, or be ye damned. Which is why most Perl code you've been forced to maintain sucks.
- drsintoma 13y ago> Before you choose another language for your project, ask yourself if it's not going to cost more to write everything you'll need, or if using pre-existing, time-tested code might do the trick for cheaper. I believe 99.9% of the people will find any libraries they need in pretty much any mainstream language. There is a point where quantity stops being a factor.
- walshemj 13y agofrom experiance python and other more modern languages just dont have the coverage of CPAN. Some of us just want to get shit done and not rewrite the wheel (and debug it).
- ChuckMcM 13y agoPython also had to contend with the 2.x/3.x split which, for some people, feels like two different languages. So there is a 'stability' aspect (which is not changing fundamental things). Perl 6 is having those issues, too much change and its threatening to hemorrhage a bunch of CPAN. Having been present at the 'birth' of Java and watching the forces at work on it as a language and on it as an environment. I find the forces that change languages interesting. And the question about when to change the language versus when to fork it and make a new language much more complex than I expected.
- kyllo 13y agoThat was a fun read from 2004, if largely irrelevant in 2013. Perl 6 finally has a stable release, but hardly anyone uses it. Perl will continue to have a place in UNIX sysadmin and quite a few hackers' toolkits for a while, but by now most new programmers are starting with Python or Ruby or even Javascript as their primary scripting language. New programmers are generally not learning Perl and haven't been for a while.
- jjindev 13y agoFor reasons not completely unrelated to the rant.
- kyllo 13y agoYeah. I think pg said it well: Kevin Kelleher suggested an interesting way to compare programming languages: to describe each in terms of the problem it fixes. The surprising thing is how many, and how well, languages can be described this way. [...] Perl: Shell scripts/awk/sed are not enough like programming languages. Python: Perl is a kludge. Ruby: Perl is a kludge, and Lisp syntax is scary. http://www.paulgraham.com/fix.html http://www.paulgraham.com/fix.html
- snogglethorpe 13y agoWait, awk is "not enough like a programming language"?! Awk is a lovely little programming language... (rather lovelier than Perl if you ask me, though obviously less industrial-strength)
- kyllo 13y agoI'm not terribly familiar with awk, but it seems very useful. My understanding is that it lacks a lot of the features that people expect from a modern, general-purpose programming language (not that it can't be or hasn't been done--but you're probably not going to be writing a web server in awk for example), but also that awk has been improved significantly since the mid 80s when Larry Wall decided to create perl as basically "a better awk." But awk is definitely very good in its niche, which is processing text data.
- sklivvz1971 13y agoLanguage haters are only marginally less grating than language fanbois, who in turn are slightly less annoying than functional language fanbois. Not a particularly enlightening - or for that matter, accurate or representative - opinion piece.
- restofus 13y agohttp://steve-yegge.blogspot.in/2006/10/egomania-itself.html http://steve-yegge.blogspot.in/2006/10/egomania-itself.html Here he talks a bit about the perl community
- ryan-allen 13y agoSteve wrote this before Clojure came out! I wonder what Steve thinks of it. I have done some work in it and it seems really quite good for Real Projects (tm).
- willismichael 13y agoSteve seemed to start out really liking clojure, but the more he used it, the more gripes he seemed to have: https://groups.google.com/forum/#!msg/seajure/GLqhj_2915A/f-JpotiBTfAJ https://groups.google.com/forum/#!msg/seajure/GLqhj_2915A/f-...
- wging 13y ago"It’s an astoundingly high-quality language, sure—in fact, I’m beginning to think it’s the best I’ve ever seen" [http://joyofclojure.com/foreword/ http://joyofclojure.com/foreword/]
- stackcollision 13y agoI'm probably going to get downvoted for this, but...I actually really like writing Perl. It's fun, and even the documentation has character.
- bane 13y agoI agree, Perl has a funny way of just naturally rolling off of the fingers in a way other languages don't. With a little care it's really quite maintainable.
- Diederich 13y agoThat's really the key; it does take some discipline to write maintainable Perl. But there's so many tools to help with that.
- Diederich 13y agoI rather enjoy reading and writing it. I also rather enjoy the excellent career in the bay area that Perl has facilitated. As I was preparing to leave my last job, I learned Python and Ruby. (I even uploaded a gem for the latter.) I like both of those languages, and I've been toying with them for many years, but my day job has always been Perl. It didn't seem likely that my next day job would be Perl, at least based on what I keep 'hearing'. Strangely enough, the perfect position for me turned out to be a bike ride from home. And in Perl. And I am quite fine with that.
- 16s 13y agoMany Unix systems include Perl by default. This seems like a small thing, but in areas where 3rd-party software is not allowed (security and audit compliance issues), having a Perl interpreter is wonderful.
- karlkatzke 13y agoThey include Perl, but do they include a Perl that is compatible with and has been tested with the code that you're trying to run?
- jsymolon 13y agoHowever, the base install of perl should be used for system maintenance only and not used for general purpose apps as the base install is just so old (5.8) that its a security hole. Installing a newer version is easy and can be updated independently of the system perl without breaking anything.
- snorkel 13y ago"Every operator in Perl (not just the Range operator) has six different behaviors depending on the invisible context in which its surrounding expression is being evaluated." ... and unfortunately context sensitivity of operators became much more prevalent in Perl 6 than Perl 5. It was hard to imagine the core Perl maintainers thought that context sensitivity was a feature that needed further enhancement, but that's just what they did in Perl 6. Programming language design comes down to one word: teamwork. Software is collaborative writing. The better languages allow teams of developers with mixed levels of skill to work together and be productive, to build on each other's code. Perl 5 had enough quirks and cute context idioms to be clever and interesting, yet it was still possible to decipher what other coders had intended and learn a few new tricks along the way. Perl 6 is a toolkit for outright hostile obfuscation making it damn near impossible for a team of developers to wrap their heads around each others' code. Not surprisingly Perl is fading into the past.
- berntb 13y ago>> Perl 6 is a toolkit for outright hostile obfuscation making it damn near impossible for a team of developers to wrap their heads around each others' code. Not surprisingly Perl is fading into the past. I don't know enough about Perl 6 to comment on your opinions of it. I do find it really funny when you condemn a language (Perl) based on a very different language (Perl 6). I guess you dislike C because C++ is overly complex, too...? Edit: saraid216, I don't know if you troll or have no clue? Google. Most every source you'll find emphasize that Perl/Perl 6 should be seen as different languages.
- saraid216 13y ago> (Perl) based on a very different language (Perl 6) Since when does a version increment make it a "very different language"? How is it comparable between C and C++? If anything, it's disliking C89 because of C90.
- TylerE 13y agoBecause it really is a seperate language. Going from Perl 5 to Perl 6 is like going from Algol to C++11
- ceautery 13y ago"First: Larry is insane." As cdoxsey says, this as uncharitable, however it's not without a grain of truth. He's a bit of a loon, but a lovable loon. That being said, what he helped add to the technology ecosystem is as important as GNU/Linux. Perl is remarkably expressive, and I've found in my 18 year IT career that no other single tool has paid me back as much for investing my energy into learning it, both in better "kung fu" (than you Ringo Langly), and also in plain old cash-money. It's worth adding to your bag of tricks, even if you feel, as the article's author does, that the docs are unwieldy, the community is filled with zealots and cults of personality (to Larry himself, as well as to Merlyn and his ilk), and the syntax is irritating. It's still worth your time. If you invest enough in it to grok the language, you __WILL__ be a better overall developer.
- sigil 13y agoA later Yegge post sums up my reaction to this (I still write Perl from time to time): As I've done for a great many other programming languages, I've bashed on Perl's technical weaknesses at length in the past. To my continued amazement, the Perl folks are the only ones who never get upset. They just say "Haha, yeah, boy, you're right, it sure is ugly. Heh. Yeah, so, um, anyway, I'm going to get back to work now..." It's awesome. I've gained so much respect for them. It's almost enough to make me go back to programming in Perl. Well, almost. http://steve-yegge.blogspot.com/2006/10/egomania-itself.html http://steve-yegge.blogspot.com/2006/10/egomania-itself.html
- jk4930 13y agoHere's why Perl is great: http://www.foo.be/docs/tpj/issues/vol1_1/tpj0101-0002.html http://www.foo.be/docs/tpj/issues/vol1_1/tpj0101-0002.html
- antitrust 13y agoI like Perl. It's usually the fastest way to get stuff done. It also brings out the programmer within the programmer. Any jerk can write obfuscated Perl. A good Perl programmer writes clean, easily re-used and modified code. It's a very hacker friendly language. As to its decrease in popularity, I'll point to two factors: (1) the rise of PHP, which took over most of the daily web-based tasks that Perl uses and (2) the rise of frameworks, which meant that people writing web sites were using newer languages so they didn't have to re-roll the basic stuff with each project. Perl didn't compete in that area until much later. As far as its daily use, I still see it all the time and like many programmers, I implement new Perl code frequently. The flexibility across operating systems is a nice bonus. For anyone who wants to see Perl written with grace and foresight, try these resources: http://www.perlmonks.org/ http://www.perlmonks.org/ http://www.pm.org/ http://www.pm.org/