13 ms·
Why You Can't Hire Great Perl Programmers
- strick 16y agoI'll give you one more reason: they decided to start coding in python and ruby instead.
- zoul 16y agoOh please. It’s been shown over and over that modern Perl is a very pleasant ecosystem to work in, can we spare such childish comments for other websites?
- chawco 16y agoThis may be true today, but there is a cadre of developers who will never find out. Perl was our bread and butter 10 years ago, but we moved on when Python and Ruby came to the forefront, and have never looked back. To get people interested in it again Perl can't just be 'pleasant' -- it needs to be better in the way Python and Ruby were better back then.
- matt_p 16y agoit is better than they are now, let alone how they were back then :)
- endtime 16y agozoul, I don't think that was a value judgment or a criticism. I think strick's point is that a new programmer is far more likely to pick up Ruby or Python than Perl these days - (s)he's more likely to learn it in school, more likely to learn it for a popular MVC framework, etc.
- Vivtek 16y agoI think that was a statement of historical fact, not a value judgement.
- p_nathan 16y agoPerl does not have the sex appeal of Ruby or Python right now. That's a shame, but that's the way it is.
- marcocampos 16y agoTrue. I can't see why anyone learning a new language would choose Perl over Ruby or Python. And yes, I know all about the wonders of CPAN, awesome text manipulation features and all those things that come up whenever people try to defend Perl.
- deleted 16y ago[deleted]
- viraptor 16y agoAnd a direct result of that - if you have to hack on some recent application, it's much more likely to be written in something else than perl, so you rarely get the chance to learn more. The only one I run into in the last couple of years was octopussy... and that one's definitely not a work of art...
- grammaton 16y agoSpeaking from personal experience - after years of using Perl, switching to Ruby was an immensely pleasant and gratifying experience. Many fewer wtfs per minuite, and a largely expanded set of capabilities. Perl may be capable of 95% of what Ruby can do, but learning the special cases and sticking points is a major PITA.
- __david__ 16y agoFor me, learning Ruby after years of knowing Perl was a resounding "meh." The documentation is substandard compared to Perl's and it doesn't really offer anything that Perl does except for less weirdness in the nooks and crannies and some improved syntactic sugar in some cases (though when I look at Ruby code all I see is "end end end end end"). And Python certainly has its own feel. But again it's not really any more powerful than Perl and offers nothing but an alternate simplified syntax. Programming in Python makes me really miss Perl--I always feel like I'm speaking baby talk instead of full blown English. Really elegant baby talk, but baby talk none the less.
- ZeroMinx 16y agoA few years ago I was interviewing people for a Perl programming position. The general level was shocking. Asked to rate themselves, many would give themselves a close to the top rating, where later it showed they had never done OO, didn't know the basics of unit testing, etc etc. Sad state of affairs indeed. I really doubt this is unique for Perl though.
- NickPollard 16y agoObject-Oriented isn't the only way to code. Never having done OO doesn't make someone a bad programmer. Unit-testing is a bit less forgiveable.
- ZeroMinx 16y agoTrue, OO is not the only way to code. But if you don't have any experience with it, how can you make an informed decision? edit: also it depends on what type of programming you're supposed to do. This particular case was for web development, and in that world I would say OO is quite a fundamental concept.
- thesz 16y ago>But if you don't have any experience with it, how can you make an informed decision? Of course, the answer is "by utilizing experience of others" or "comparing my efforts to others' efforts". That's how progress works, I was told.
- ZeroMinx 16y agoFor me to hire you for a senior web Perl programming position, I expect you to have experience with OO, that's all there is to it.
- NickPollard 16y agoI think that's a totally fine and reasonable thing to say. However, I would then say 'I can't find any Perl programmers with the skillsets and domain knowledge I need', rather than 'The general level was shocking ... Sad state of affairs indeed.
- efsavage 16y agoPerl is great for programming, it ranks high on creativity, expressiveness, conciseness, and general language coolness. Perl is horrible (relative to other choices) for development, it ranks low on readability, refactorability, consistency, dependency evolution.
- sigzero 16y agoI agree with your first line. Totally disagree with your second line. Most of the second line is on the programmers shoulder.
- efsavage 16y agoIt is, but difficulty in requiring diligence in such a creative environment is the reason Perl has failed for larger team development. I was once praised for the readability of my Perl code by a junior teammeate, and immediately scolded by the best Perl programmer on the team with "yeah, because he makes it look like C code". Don't get me wrong, I like perl, I just think its unique characteristics make it a poor choice for complex, long-term software, which is where the most money is, and thus the most people/candidates.
- viraptor 16y agoReminds me of getting an answer from Tom Christiansen on stackoverflow. Most of his answers follow one of the two typical patterns: 1. an extended regex to do what you want in every encoding known to man, extended to use cases you never mentioned, taking 10+ lines to replace one character with another (with occasional angry remark about random other language where "it's impossible to do that") 2. "it doesn't work, because you're not using my standard boilerplate" - followed by 20+ line boilerplate setting a lot of different things where most of them are not even remotely related to the question... because everyone should be using his boilerplate...
- draegtun 16y agoTo be fair the boilerplate does catch the usual beginners mistakes: http://stackoverflow.com/questions/4272816/using-dumper-not-triggering-a-failure/4272858#4272858 http://stackoverflow.com/questions/4272816/using-dumper-not-...
- berntb 16y agoI liked the article. But do mediocre Perl programmers really not use Test::More? (-: Hell, even I do! :-) Testing has been central in Perl for most of a decade. I browsed "Intermediate Perl" recently (I'm outsourced and will train a few newbies the coming weeks), and already that beginners' book did a good overview of testing (mocking objects, etc). Let me note that the author isn't exaggerating when he claims "Modern Perl" is really good. :-) Edit: Grammar.
- zrail 16y agoIf you like Test::More you should try out Test::Mini[1]. It's xUnit-style testing like Test::Class but with less syntactic overhead and fatal assertions instead of non-fatal TAP. [1]: http://search.cpan.org/~pvande/Test-Mini-v1.1.1/ http://search.cpan.org/~pvande/Test-Mini-v1.1.1/ edit: link
- berntb 16y agoWhy would you not use TAP?! It is easy, powerful, has lots and lots of support (I'm going to add Hudson integration tomorrow for some stuff.)
- KevinMS 16y agoI've known a few good perl programmers, and a few ok ones, and I know for certain that a lot of perl programmers came out of the dot-bomb days and back then testing just wasn't part of the culture. Not misunderstand me, writing tests for published modules was expected, but with everything from scripting to websites unit testing wasn't that common at all. It wasn't a big problem either, because when the perl shop got serious, it ramped up the QA, and even possibly had a less buggy product than today, because QA can be brutal, and unit testing can be LAZY and misguided. Testing fanboys flame me all you want, but I was there, this was common, we walked to work both ways uphill, but built the foundations of the web you see around you.
- viraptor 16y agoQA is a not-automated repetitive (usually acceptance) testing. It doesn't have much to do with unittests and they're definitely not interchangeable. If you compare QA and unittesting... the argument is pretty much misguided. Ideally, you should have both. And then some more automation. And quick feedback from automated tests.
- Vivtek 16y agoThere are Perl programmers who don't use CPAN? Why in God's name would they fail to use CPAN? I worship at the altar of CPAN; CPAN is my life and my oxygen. CPAN is the reason I will stick with Perl until the stars go out and the works of man crumble to dust - except for CPAN, for CPAN is eternal.
- Vivtek 16y agoAlso, the author fails to note that you can't hire great Perl programmers because the going rate for Perl programmers seems to be about $30/hour, and who can do that? I'll continue to earn my bread and butter in the non-programming trades in order to make sure my daughter's teeth are straight, thanks.
- m_myers 16y agoWait, did you just say $30/hour is low?
- deleted 16y ago[deleted]
- arethuza 16y agoI don't know where you are, but in the UK $30 (so £19) or roughly £160 a day is a very low rate. I would say that, depending on the location, the normal rates are from three to ten times this figure (depending on area of expertise). [Edit - any time I see "daily rate" I think of contracting - £160 a working day as a salaried employee is probably on the low side, but nothing exceptional].
- nopassrecover 16y agoI agree $30 is low but It would be rare in Australia to see $90-$300 for fulltime employment pure development. It's certainly possible as a freelancer or as a more senior role though. Definitely as a consultant of some kind.
- 16y ago
- Deestan 16y agoAn often overlooked option is to look for a great programmer who knows any other language well and is willing to learn your shop's pet language. Hire him, provide some learning room, and he'll be up to Level Competent in no time compared to the time you need to spend looking for "a great Volvo driver".
- wildmXranat 16y agoThat is correct, but hiring staff and recruiters speak a different language. At least in my experience, I used to get phone calls that a so and so firm needs a Django developer. While I used Pylons and Python extensively, and probably could learn Django lingo on the job, they wouldn't hear of it. In retrospect we were both right.
- ig1 16y agoI've seen companies that have tried this and failed miserably. While programming languages share a common basis there are significantly different paradigms between say Ruby, C++ and Perl. While a good programmer could probably pick up any of these languages it'll probably take them a few years before their productivity is at the same level as someone of the same ability who has experience in that language.
- humblepatience 16y agoI agree, but its more because of the frameworks and libraries than the language
- lukev 16y agoA few years? Strongly disagree. Months, tops. It's key that you do have people who are already good with the language on the team for them to learn from, but if that's in place, a genuinely good developer is going to be able to pick up on the new paradigm pretty easily.
- LiveTheDream 16y agoA few months, agreed. This time drops with each successive language. In addition to learning the language, a developer must learn the ecosystem. Perl and CPAN, Ruby and rubygems, etc.
- colinstrickland 16y agoI spent a year or so trying to help a company I was working with hire experienced perl developers to work on existing code. Pretty much all of the candidates were way below the standard required. I came to the conclusion that this was probably a question of maturity. I think experienced perl developers are now an enclave of older programmers who've stuck with it and are now entrenched experts. They're all too expensive. There seems to be a generation gap, presumably where everyone ran off and learnt ruby or python, as perl 5 was perceived to be stagnant, for whatever reason. I think what remained in the available salary bracket was either people who weren't very good, or were too new for it to show either way. Anecdotal, of course, but it reminded me of other job markets I've seen entering the first phase of an eventually near terminal decline.
- hippich 16y agoI like Perl. I am doing my own non-that-plain-stupid-website projects in Perl (for plain websites i am using PHP+Drupal). But I have no projects-for-cash involving Perl at all - looks like nobody is doing it today. And this means I have no real-world experience too. That's bad. But I still love this language and will continue do own stuff with it. =)
- Jeema3000 16y agoThis seems to be a common misconception, but it's still very much a part of the corporate and business landscape. Do some keyword searches on a job search engine - you'll see what I mean...
- hippich 16y agoI started to earn bucks for living doing PHP development. In the beginning I tried to work as perl dev, but quickly realized that wordpress and drupal for freelance is much easier since there so much projects. And even with huge competition with indian/pakistan $5/hr devs, I was able to keep my rate at $50/hr.. Now corporate - probably, but I was doing freelancing work, not full time employee. Nor I had any product to sell to corps (this is what I want to try tho eventually).
- lkiok 16y ago"First, if you want to hire great Perl developers, look for people who have read or bought my book Modern Perl." Really funny.
- lelele 16y ago> One of the persistent rationalizations for not creating new software in Perl is that it's difficult to find great Perl developers. One of the persistent rationalizations of Perl mongers is that Perl still has that much of an edge. If it's difficult to find great Perl developers, that's because less great developers flock to Perl (if at all, maybe current great Perl developers are people who have learned Perl some time ago). It is that simple. Perl in its days used to be a great language for those who looked for a "creative" one to learn, and allowed to do things other languages didn't. PG has said Perl was a language for hackers. Nowadays, there are way more options if you are looking for a learning experience, and I dare to say that many alternatives are way more rewarding than learning Perl, and have a much better effort/learning ratio. In the same time you are memorizing what value every standard function returns in what context, you could be composing functions in Haskell or building massively concurrent Erlang systems. Heck, even the humble Javascript allows you to perform mind-bending dynamic feats. Other languages offer multiplatform support (native, Java, .NET) which Perl lacks.
- chromatic 16y agoIf it's difficult to find great Perl developers, that's because [fewer] great developers flock to Perl. I would like to see non-anecdotal evidence for this. Heck, even the humble Javascript allows you to perform mind-bending dynamic feats. It's also borrowing features Perl has had for years. Hm. Other languages offer multiplatform support (native, Java, .NET) which Perl lacks. That definition of "multiplatform" differs from mine. Perl 5 runs on more platforms than the CLR and JVM do.
- Dove 16y agoPerl 5 runs on more platforms than the CLR and JVM do. In theory. In practice, if it runs on one JVM, it runs on any JVM. No questions asked. Perl is full of, "Oops, that crashes on Windows" traps. If you know where they all are, you can avoid them, but it's hard to be sure you've found the last one. The fact that the camel book has a section with tips for porters is telling. There's a big difference between Java's robust guarantee of portability and perl's "best effort" philosophy.
- scotty79 16y agoThis argument is invalid because it should hold also for PHP and there's no shortage of awsome PHP programmers. There are additional causes why it's hard to find great Perl programmers.
- tom_b 16y agoThe statement that stands out most to me: "the group of people with a little bit of knowledge (likely due to ad hoc experimentation and intuition based on previous familiarity with another programming language or Unix culture or just copy and paste osmosis from a barely-working heap of sticks left by the previous maintainer) dwarfs that smaller group of experienced programmers." I think one of the reasons there are a bunch of people with just a "little bit of knowledge" is that there are a bunch of gigs where that's enough. I also think that its a tremendous mistake for people to take these types of jobs if they have any personal ambitions to reach that "experienced programmer" level. Unless your personal situation dictates that you have to. But, the trick is that the ad-hoc experimentation and intuition is a necessary first step to moving to the next level. I'm personally interested in figuring out what you need to really grok in a particular programming paradigm/language to be a really great hacker using that paradigm/language.
- didip 16y agoIsn't this depend on the job description? There's no shortage of great perl programmers doing devops related work. That's the comfortable niche that they enjoy. Why would they want to lower their salary bracket building web forms?
- natch 16y agoGreat, just what Perl needs: more FUD about Perl. /sarcasm There are different measures of greatness. Using exclusively the most modern Perl idioms is one measure. Another measure is getting shit done. Another is writing code that can be read by the average Perl programmer. IMHO the second two of those are way more important than the first one [edit: note I did not claim that any of them are mutually exclusive]. The author of the blog post is pushing a good agenda (promoting modern Perl) but doing so with tactics that end up adding more harmful FUD to Perl's already shaky reputation.
- chromatic 16y agoThe author of the blog post is pushing a good agenda (promoting modern Perl) but doing so with tactics that end up adding more harmful FUD to Perl's already shaky reputation. How so? If Perl can't survive the honest admission that a lot of people writing Perl aren't great programmers, that the design of the language encourages people to be able to write baby Perl and still get their work done, and that the existing core Perl community needs to find these people and encourage them to improve their skills, then Perl doesn't deserve to survive.
- mmaunder 16y agoI first learned about serious Perl development working for eToys.com. The web application scaled to a cluster of hundreds of machines and saw extremely high traffic. We had a large team working on it without any problem. The European warehouse management system was also written in Perl and was my baby. After seeing what Perl can do in terms of development speed, maintainability and speed of execution I've never looked back. I've worked on a ton of great projects since then and today I run my own startup with a tiny team, a tiny cluster and we serve over 600 application requests per second all from modperl, nginx, apache and mysql. I've seen languages come and go over the years and here's what I've thought: Java: In the late 90's I wrote a few java apps thought it was a cool language. But I didn't like that it was proprietary. I also had the opportunity to ask Steve Balmer about the Visual J/Sun lawsuit while I was at Credit Suisse. The whole thing just turned me off and I moved on. Thankfully I did, because today it's still dog slow to develop and to execute and now it' belongs to Oracle. PHP: Embedding your code in your HTML seemed like a bad idea and still does. C: I've seriously considered switching to C for web apps over the years, but the performance gains haven't justified the increased complexity and added time to code or prototype. Ruby: I first dabbled in Ruby in 2005 but realized it was Perl in the early 90's and that startups are risky enough. I still eye it keenly, but it just can't touch ModPerl's performance and stability and more importantly, it's availability of libraries. It will one day though and then I may just drop everything and join the party. Javascript on Node.js: This is the most exciting development and web languages since Perl simply because you can write asynchronous apps (single thread that handles 1000000's of clients concurrently) in a high level language. I'm already using Node and am REALLY looking forward to more libraries being available and to them being more stable. Things like db drivers, crypt libs, date, html and text manipulation libs. Node is the way of the future.
- michaelchisari 16y agoPHP: Embedding your code in your HTML seemed like a bad idea It's a terrible idea, but it does have the advantage of giving you a good way to separating the wheat from the chaff. Solid PHP programmers never (or very, very rarely) embed PHP code in HTML.
- 16y ago
- staunch 16y agoI just hired a great Perl programmer days ago. It took just a few days. I will hire more soon. Compared wih hiring for a lot of other positions it was quite easy. I picked him out of 40 people. Most of them didn't really know Perl well, but the code of the people that did stood out very clearly.
- drallison 16y agoYou cannor hire great perl programmers for the same reason that you cannot hire great programmers--they are a rare breed and an endangered species. Skills with a particular programming language are not a primary differentiator between programmers. A good perl programmer is likely to be (or make) a good python programmer, C programmer, C++ programmer, LISP programmer, etc.