To help research for a talk I’m giving soon I asked the OPEN mailing list:
Please spare a few moments to jot down your thoughts about the Perl language, CPAN, the community. Even if you don’t use it. In fact, especially if you don’t use it. How would you choose a language to develop a new web project? How would Perl rate, and why?
The OPEN mailing list is “is a community-based mailing list for the discussion of general Web, Internet and related technologies” in Ireland. The participants have an eclectic mix of web related jobs and interests. There’s certainly no bias towards Perl.
I’ve tried to distill the key points and group them into topics. In the process I’ve made some slight edits.
Just in case it’s not completely clear, these are not my views, they are a summary of the assorted views of others. I offer them here to give some insight into how Perl is viewed outside it’s core community.
General:
- Perl is seen as a sys-admin language. Still used for back-end jobs.
- PHP is easier to deploy at front end stuff.
- Perl is still more powerful and easier to deploy backend.
- Too complex compared to PHP. Code overly obtuse.
- For web development Perl is losing ground to the more mainstream languages such as Java, PHP, .NET etc.
- Perl is over complex and out of date, a sort of Cobol of the scripting world.
- Perl has aged well. Its no longer the only choice for tasks but it is still very useful.
- Perl 6 is killing Perl (slowly). But Perl is still popular, see http://www.tiobe.com/tpci.htm [I plan to do a post about apparent significant errors in the TIOBE results — Tim]
- Perl community has a great reputation.
- If scripting language were spanners:
- PHP would be plastic spanners (too brittle)
- Python would be Gold (too soft)
- Perl is pre 1989 Ironmongery (not the cheap west german crap)
- I know what type of spanners I want in my toolbox.
Skills Availability:
- Perl developers are now hard to find and expensive to employ when compared with the general over abundance of say (let’s face it, mediocre) VB.Net developers
- Whilst some might say that clients are just jumping on the bandwagon by demanding things be built using .Net framework etc. This may be true to an extent, but there is the logic of accessibility, maintainability and affordability being applied here.
- There’s no point in having something built by an individual or small team, to find that 2-3 years down the line the original team are nowhere to be found and the system requires major re-working/upgrading etc. and there’s only a tiny handful of “experts” available to take over (at somewhat large expense).
CPAN:
- Perl has some nice features. The best is that when you install a piece of Perl software on Linux, it works. It is very easy to locate and download the modules you need to get it going. Python, in contrast, tends to have modules all over the place.
- CPAN is a bit of a mixed blessing. Using it tends to fall into sorcerer’s apprentice mode and the associated dependency hell;
Maintenance and Maturing Coding Styles:
- I found that I couldn’t read scripts six months after writing them. At that stage I switched over to Python.
- My style in Ruby programming is so different it’s hard to be sure it’s the language (when maintaining or extending Perl and PHP code I now backport the Ruby way of working to those languages where possible) and not the fact that I got the language and the ‘Ruby Way’ simultaneously.
- I trust the code I write in Perl, PHP and Ruby because it’s not opaque (unlike J2EE for example, which is an appalling hellhole of a world of hurt).
- My personal reason for choosing Ruby every time is that It Makes Writing Really Good Code Really Good Fun. Or as Why so poignantly put it “You’ll be writing such beautiful code it’ll make you cry”.
Hosting and Delivery:
- Many cheap hosting packages don’t work well out of the box with perl.
- I’d love to do all my dev in perl (and still so when other languages let me down), but PHP is so much more entrenched in the web hosting arena and totally painless in most ways, that perl takes longer and is harder to support.
- I have developed Perl into standalone items using PDK and it runs & runs at clients sites without any hassle.
Frameworks:
- Use of development frameworks is leveling the playing field between languages so it’s a personal choice and familiarity rather than any language offering that huge advantage.
- I don’t see Perl as being big in the web-framework world. It is just not on the Radar. PHP, Python and Ruby is all that I see. I am familiar with the Zope stack so I would use that for a new project. It is just too much of a learning curve to switch.
- Ruby/PHP/Python and a couple of others have market and mindshare; These guys also have really good ‘frameworks’ for the click-and-drool brigade (eg Rails).
- Perl is not getting nearly as much attention as Ruby and Rails, despite the rapid development of the excellent Catalyst.
Many thanks to those to responded: Diarmaid Mac Aonghusa, Paul Grant, Dave Wilson, Paul Mc Auley, Kevin Gill, Lee Hosty, Tony Byrne, Brian Greene and Fergal J Byrne.