9 ms·
Perl Already Won
- misnome 12y agoFine, yes, Perl "Won". The problem is, that war happened two decades ago and has very little relevance to the state of things today.
- ZenoArrow 12y agoSo it won because of historic marketshare? By the same logic, Commodore 64 already won. All those C64 haters with their new machines are just jealous.
- claystu 12y agoI'm afraid the typewriter defeated all computers--including the C64.
- ZenoArrow 12y agoTypewriters are a class of machine rather than a specific model. Can you point to an overwhelming popular model of typewriter? Then you may have a point. ;-)
- claystu 12y agoI know you're just being funny, but go check out this page on the [Underwood typewriter](http://site.xavier.edu/polt/typewriters/underwood5.html http://site.xavier.edu/polt/typewriters/underwood5.html)
- ZenoArrow 12y agoThanks, that's the sort of thing I was looking for. Didn't know about the popularity of the Underwood typewriter, thank you for the history lesson. EDIT: What? Why was I marked down for thanking someone???
- kbenson 12y agoThat's why I like to present counter-arguments with questions for the assumptions I'm not sure about. If someone can show you you're wrong, with evidence, they probably exist on HN and will do so. To be clear, that's a very good thing. :)
- smallsharptools 12y agoPerl was the language that I used many years ago but I moved on. Perl 6 was announced in 2000 and took over 10 years to see a release and by then most developers moved on like I did. When a language takes that long between releases there's clearly a lack of enthusiasm and support for the language. And touting market share? That is a pointless argument. You should be working with multiple languages and move past these silly blog posts.
- visarga 12y agoPerl 6 is not an upgrade of Perl 5. It is a whole different language. Perl 5 is thriving too. It has many improvements to the Perl 5 of 10 years ago.
- smallsharptools 12y agoPerl 6 was supposed to be an upgrade but it kept changing. I lost interest and know I will never use it. And if it is a totally different language why is it called Perl?
- Mithaldu 12y ago> why is it called Perl? The same guy (Larry Wall) who originally wrote Perl 1 to 5.6 is the one who is writing the spec (though not the implementations) for Perl 6. People let him do it out of respect, even though it's disastrous for Perl 5.
- mrsteveman1 12y agoI've seen quite a few people describe Python 3 as a new language relative to Python 2. Having used both now, I don't agree at all, but I have no experience whatsoever with Perl so I'm not in the same position to compare the different versions of it. Are there really more differences than things they share in common, to the extent that "new language" is an accurate description?
- eCa 12y ago
- V-2 12y ago"I think that the average age of a Perl developer is about 35 years (I have no official data for this, my hunch is based on the people I saw at numerous YAPCs I had the opportunity to be present at). Assuming this is true and assuming a dev enters into production at 23 years old, it results that the average Perl developer has 12 years of software development experience. What kind of code would you prefer in your business critical, money making software products? one written by people with an average of 12 years experience in the language of choice" Whoah, hang on there. Even if they did have an average of 12 years of experience, it hardly means that it's been Perl all this time. Obviously the reasoning that led to this bit isn't rock solid, either ;) "[...] or one written in a language that appeared on the radar in the last decade: Ruby on Rails, the framework that made Ruby popular was launched in late 2005" 2005, that's 9 years of experience at best. How lame in compare to 12 :) (Don't trust Android devs, Android didn't come out until autumn 2008)
- jqm 12y agoI thought the first ending you had was gold... (Very rough Paraphrase).. It sucks in this business when our knowledge base starts becoming obsolete, and we are sometimes tempted to think of reasons we don't have to learn new things, and also why no one else should either.....
- V-2 12y agoThanks - I deleted it because I googled up the guy and realized he was actually a very reputed developer. So I removed this out of professional respect
- tudorconstantin 12y agoYes, my statements might be superficial, but since when is Android a programming language? How many developers with 9 years experience with RoR or Ruby can you think of, besides David Heinemeier Hansson and Yukihiro Matsumoto?
- djur 12y agoI know several, including myself. But total experience is more relevant than experience with a particular language or technology, unless you're using the standards of the corporate HR department. Android isn't a language but it's the kind of heavily specialized environment that developers will put on their resume and companies will hire for.
- tszming 12y agoPerl's motto: TIMTOWDI (There Is More Than One Way To do It) <-- This include using other languages such as Ruby/Python to solve your problem.
- foobarian 12y agoOne feature I like for enterprise languages is preventing developers from writing too clever/magic/brittle code. This usually boils down to compile-time type checking, good module system, and fewer rather than more language features. Nothing like digging into some old code to do a bugfix and finding out it's a Ruby app where some cowboys decided to write their own magic framework that intercepts field assignments, has heavily data driven control flow, or a Scala app written by a code golfer. Perl suffers from that problem as well, which is too bad given how robust it has proven over the years.
- jqm 12y agoI've had to go through a bunch of "cowboy" Perl scripts at work. Some are a ridiculous 2-3000 lines doing things a decently written Python script could do in a 100 lines or less. (I don't fault the language for this... it's the way they were written). Many of them have bugs that have existed for years. Nobody wants to (or practically can) go through and fix the bugs... even the authors. They are full of cleverness, regular expressions, don't make efficient use of functions etc. So, in my limited experience, when Perl is bad, it is really really bad. And that is a very strong negative in a language. I've finally got permission for flat out re-writes in Python and the old timers have been fairly sullen about the short amount of time the re-writes thus far have taken, and how small the code is. Again.. I don't blame Perl for all this. But it's readability sure doesn't help these kind of situations.
- allendoerfer 12y agoI hate this "I do not fault the language for this". It is the argument always brought up with PHP as well. You can write ugly code with Python, but the Python language and community clearly renounces itself from that and is all about readable code. Every feature addition or remove is done with consideration of code readability and creating one best practice to perform a task correctly. JavaScript "maintainers" try their best to build a solid language on top of an ugly hack. The community tries every day to avoid its own language with another precompiler. Java is all about defining solid interfaces, which creates new problems, but at least they try. On the other side, Perl people were historically often proud of their crazy hacks. PHP does not remove dangerous or objectively ugly language features. It could avoid SQL injections in new versions all together but instead is focused more on adoption and backwards compatibility. The language is partly responsible for the type of code that is written in it.
- NiklasPersson 12y agoOk guys, let me speak for the sane people of the world: Who cares??? I mean, what are we even talking about? Pearl "won"?? Won what, exactly? The internet? The.... money? WHAT THE FUCK! Please stop this, ok? This makes no sense at all and it's probably the most ridiculous discussion on the planet right now.
- ZenoArrow 12y ago"probably the most ridiculous discussion on the planet right now." HN is unlikely to ever earn that accolade... http://www.reddit.com/r/dogtalk http://www.reddit.com/r/dogtalk
- lazyloop 12y agoRuby is dead. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
- sauce71 12y agoAnd apparently Cobol is coming back from the dead
- pmontra 12y agoIt gained 0.07% but lost positions to Perl and... PL/SQL, ABAP, COBOL, Assembly. I had to google ABAP, it's SAP. I did a little of each of the other languages and lots of Perl in the 90s. I work with Ruby almost half of the time now and I'm not worried about its health.
- wmil 12y agoRuby has never been popular outside of Rails.
- damon_c 12y agoI used to use Perl. I got lots done in Perl from around 1998-2003, but I never really felt like I was having fun or really understood the language very well. I just figured out what I needed to. Then I happened upon some Python code I needed to fix. Within a week or less I already felt like I "knew" Python better than I would ever know Perl. It was fun and inspiring and felt so elegant and powerful! I never typed another line of Perl.
- dorfsmay 12y agoSame story here. I can read any piece of python without looking online or in a book, whereas I always had to look up if a particular notation was dereferencing a pointer to an array or an array of pointers in perl.
- grondilu 12y ago> I always had to look up if a particular notation was dereferencing a pointer to an array or an array of pointers in perl. You should rephrase this because you can't de-reference an array. Plus a reference to an array is always a scalar so it always has the '$' sigil, thus it's not clear what you're talking about.
- kstrauser 12y agoThat is precisely the kind of minutia that made me abandon Perl the week I discovered Python. I think I'm a reasonably intelligent person, and Perl's cleverness was a source of fun for the first year or two. I eventually got tired of feeling like I had to prove my subject mastery every time I opened an editor.
- grondilu 12y agoFrankly, I've never understood people complaining about Perl's references. Me, when I first learnt about it, I felt in familiar territory, for it reminded me of C pointers. Hell, even the '->' notation was easy to remember since it's the same as in C. And as mentioned above, the sigil system of Perl makes it impossible to confuse a reference with the object it refers to (PS. except maybe for references to scalars, but those are arguably very rare).
- teamhappy 12y agoI don't know much about Perl, but after seeing "The Perl Jam: Exploiting a 20-year old Vulnerability" from 31C3 it really doesn't feel like it's winning. You don't need to know Perl to have a great time watching the talk (at least I didn't). https://www.youtube.com/watch?v=gweDBQ-9LuQ https://www.youtube.com/watch?v=gweDBQ-9LuQ --- I don't know if the talk is any good if you actually do know Perl.
- chromatic 12y agoOh goodness, that's a terrible talk. I suppose the fact that someone can give such a talk in 2014 with apparent sincerity says something about the state of Perl, but that talk is more or less equivalent to saying "Look, I passed arbitrary user input to `unlink` and it deleted a file I didn't intend! How high up does this conspiracy go?!"
- lawl 12y agoOkay, I remember this talk, I'll try to write pseudo code for one of the real life bugs that nobody saw for 20 years (in Bugzilla that is, not some small script nobody knows). $user = new User({ userid => $foo, role => "user", username => cgi->param("username"), password => bcrypt(cgi->param("password")) }); If you're seriously telling me you instantly spot the bug (if that were real perl, i don't know perl) without having seen the talk before, then congratulations, nobody else did, please start auditing perl software. For anyone that didn't see the talk, no the bug isn't SQL injection or something like that (though that'd likely be possible too, watch the talk). If you pass ?username=foo&username=bar then cgi.param("username") will actually return a list ("foo", "bar"). Now say you pass a list of three elements ?username=foo&username=role&username=admin ... yes seriously. It'll add the list into the hash and use every %2 element as key and the other as value. allowing you to overwrite stuff in hashes. Of course, all of this is documented. But that doesn't make it not terrible. PS: I don't hate perl. Perl -e is still very handy sometimes.
- alberich 12y agowell, you're supposed to validate user input before passing it to the function. I'm not sure this can be considered a bug.
- mgkimsal 12y ago"I believe the main reason haters gonna hate Perl forever is because their language of choice will never achieve its dominant adoption." You keep believing that. It's not true, but keep believing it.
- harvestmoon 12y agoIt's an odd argument. Many technologies were dominant but their fall from the top generally has a reason.
- DougHaber 12y agoI have written a lot of Perl code over the years, and I also hold the uncommon opinion that it is a great language, and often a far better choice than other similar languages for a lot of tasks. I agree with the author of this article that most people who criticize it are extremely ignorant about it. The most common complaints about Perl tend to be about the code of people who don't know how to write Perl. Since when is it reasonable to judge a language on how the amateurs use it, instead of the professionals? Perl does have its warts, but no language is an exception to that. When you learn to use a language well, the warts no longer matter. You get into the habit of writing code in a way that doesn't brush up against them, and that holds true for every language out there. To clarify any mention of Perl 6, you need to realize Perl 6 isn't Perl. It is a whole different language with a really bad name. I know this has caused great confusion, but Perl 5 is extremely stable, still being developed, and not going anywhere. You don't need your Perl 5 programs to run in a Perl 6 interpreter any more than you would need them to run in a Python interpreter. I have written my share of code in other languages, but I always return to Perl. As a C and Unix programmer, it feels like a very natural fit in ways that other languages completely do not. It has amazing string parsing, a superb (though extremely misunderstood) OO system, tons of great libraries, direct interfaces to POSIX and other system interfaces, really good database interfaces, networking, and protocol wrappers, very flexible interfaces to native code, and a really brilliant and well evolved design. While you should always use the right tool for the job, Perl is a better choice far more often than people are realizing these days. There is so much anti-Perl sentiment out there, and the great majority of it is completely misplaced and made by people who haven't properly learned how to use Perl.
- dalke 12y ago"Since when is it reasonable to judge a language on how the amateurs use it, instead of the professionals?" In a field like mine (computational chemistry) where most of the programmers are expert chemists but amateur programmers, then it's very reasonable to judge a language choice based on the expected user base. I expect the same holds for most other computational-based sciences, where it may take 4 years to have the domain knowledge to start programming, even though the programming itself does not require deep knowledge of the language or of computer science and can be picked up in a few months of self-study.
- randomstring 12y agoI wouldn't call it #winning. Did Edmund Hillary "win" because he climbed Everest first? I think the misunderstanding of Perl is based in the "There is more than one way to do it" philosophy. A corollary to that motto could be "There is no right way to do it." Using that corollary, no matter what Perl code you look at the correctness is in the eye of the beholder. Even looking at your own code a year later, you'll ask yourself "why did I do it that way?" This is because the Perl syntax and choice of modules is so deep and varied that you cannot help but continuously evolve your style. It takes real world trial and error of writing and reading Perl code to build your own style and get a handle on what good, readable Perl code should be... for you. Haters are going to hate, but Perl programmers know the power and aren't going to it give up. Winning isn't everything. Getting there first? Well, that just means you should respect your elders. :)
- yV2n2E 12y agoperl lost because it was unable to do asynchronous processing. folks forget that the big web 2.0 innovation was a proliferation of ajax and related technologies, which was the precursor to webapps, iPhone ecosystem, etc.
- nemo 12y ago"perl lost because it was unable to do asynchronous processing" That's not really true in two senses: 1) If you're just talking about AJAX request handlers, those are trivial to implement in Perl (I put together a number of them). If you're talking about real async processing in an app, POE/threads/etc. can handle async processing readily. 2) People moved off Perl/chose to adopt different langs. for many reasons but async was very rarely one of them.
- gusfoo 12y agoI still love Perl. I've done more diverse tasks in that language than any other. In fact, I think that the only more go-anywhere-do-anything language that exists is C, but why bother with the hassle of C when Perl is there?
- deleted 12y ago[deleted]