"Perl at both ends!"

barbie on 2007-07-13T15:18:15

During José's talk, 'The Acme Namespace - 20 minutes, 100 modules', at YAPC::NA in Houston, he mentioned one of the Acme modules that accesses the info for a Playboy Playmate, Acme::Playmate. After he mentioned it, Liz "zrusilla" Cortell noted that she used to work for Playboy and worked on the site that was screen scrapped by the Acme module, informing us that she wrote the backend in Perl too, "so you see it was Perl at both ends". At this point the room erupted, Liz got rather red and I'm sure wished the ground would swallow her up :)

Despite the rather salacious connotation that can be drawn from that remark, it was a phrase that struck me later as being rather more descriptive of the state of Perl. I started to think about the community, business and the way Perl is perceived. Drawing a line with the individual at one end, moving into community through small businesses and onto corporations at the far end, we can see Perl is not only used at both ends, but all the way through. But people still ask isn't Perl dead?

Perl hasn't died, in fact it's probably more vibrant now than it has been for several years. The difference now though is that it isn't flavour of the month. I did a Perl BOF at LUGRadio at the weekend, and it was a subject that got brought up there. Is Perl still be used? It would seem that Perl publicity to the outside world is extremely lacking, as several non-Perl people I've spoken to over the past few months have been surprised to learn that Perl is used pretty much in every major financial institution, in email filtering or network applications, for the Human Genome project (and bioinformatics in general) and pretty much every type of industry you can think of. It isn't dead, it just isn't sticking it's head above the parapet to say "I'm still here".

Last year at YAPC::Europe, Dave Cross talked about speaking in a vacuum. Inside the Perl community we all know that perl is great and gets the job done, but what about the people who are struggling with other languages, or project managers and technical architects who are looking at what skill set they should be using to write their new applications? What about big business that is continually confronted with the marketing of Java from Sun or .Net from Microsoft?

I see Python gaining momentum simply because several in the Linux and Open Source communities started using it to see how good it was, and now with Ubuntu using it pretty much exclusively, it has gained a large foothold with the wider developer community. Ruby has been seen as great for creating flashy websites, but beyond 37 signals, I've not heard of any big name sites that have been created with it. It gets featured at every Open Source conference and developers generally seem to think its really cool, but I'm still waiting to hear of any big take up outside of the cool, hip and trendy set. Maybe that's Perl's problem. It isn't cool, hip and trendy anymore, it's part of the establishment, part of the furniture. Does the job, does it well and without any fuss.

Perl has generated such a great community, that we seem to have forgotten that there are other communities out there, and they've partly forgotten us too. YAPCs are great conferences, but they grew out of the desire to have more affordable conferences for the developers, students and self-employed. Their success has been to the cost of Perl people wanting to go to other Open Source events such as OSCON, and keep Perl presence in the wider developer communities going. As a consequence Perl is almost seen as an add-on for legacy reasons to those conferences.

Looking back at that line I drew at the beginning, although I see Perl in our community, it doesn't feature very much in the wider communities, and as such small businesses don't notice it so much and look to other languages to develop their applications. The individual or hobbyist still uses it, and the corporations would struggle to remove it now, so to the outside world Perl is very much at both ends, but only at both ends. It's lost its focus in the middle ground.

At LUGRadio this year, I kind of felt rather relieved that people who came and spoke to me, knew me for being part of the Perl community. Most of these people are hardcore Linux, C or Python developers and although several know Perl, don't often use it. I've spent a lot of time speaking at Linux User Groups this year, and plan to speak at more later in the year. I've also been invited to speak to the PHP West Midlands User Group, invited to attend PyCon and will be attending GUADEC next week, but it's hard work to try and remind these other communities that Perl is still there. Although the personal touch certainly does help, I can't help but think there needs to be another way to promote Perl. This isn't about success stories (although they do help) or about talking at conferences and user groups (although they are just as important), but about reaching to the other communities and thus small businesses to remind them that Perl is still a viable choice, and that rather than competing for market share, the different languages can work together.

Having spoken to some developers of other languages, I'm amazed that the FUD of all Perl is unreadable, obfuscated and too hard for the beginner to learn properly is still being peddled. Challenging that mentality is a bit of a battle, but I've had to state on several occasions that you can write unreadable, obfuscate and unmaintainable code in any language, and in fact most of the respected Perl community and much of CPAN strives to write readable, clear and maintable code. It seems the Perl code from over 10 years ago and the dodgy scripts of certain archives are still poisoning the well.

Part of the problem (possibly fueled by the above FUD) that we have in the UK is overcoming the fact that several new Open Source initiatives don't even feature Perl when they talk about Open Source languages. If the networks that work between the communities and small business aren't promoting us, then it's going to be a tough slog. I've already written emails to the National Open Centre and tried to get OpenAdvantage to be more inclusive, but there are other similar initiatives, both here in Europe and in the US that need reminding too. Once they're helping to promote Perl, then it might just be something that Universities and Colleges include in the curriculums again. From there small businesses will be able to see that there is a pool of Perl developers they can employ and Perl again becomes a viable choice.

I firmly believe Perl 5 will still be around in 10 years time. Whether its running on Parrot, within Perl 6 or as it is now remains to be seen. I was asked to describe Perl 6 at the weekend and responded with a generalisation of "Perl 6 is to Perl 5 as C++ is to C". C++ took C into another realm, but C is still around. I just hope that the constant confusing information given out about Perl 6 to non-Perl people, isn't the reason why some think Perl 5 is all but dead.

The theme for the 2005 YAPC::Europe in Braga was "Perl Everywhere". I don't think that's true, but I wish it was :)


Trust me

zrusilla on 2007-07-13T16:12:30

It takes a LOT more than that to embarass me.

Re:Trust me

barbie on 2007-07-13T16:17:09

But it has to be the best Perl quote I've ever heard :)

Re:Trust me

Alias on 2007-07-13T20:16:22

I really wish I'd known this BEFORE I got into trouble for using Acme::Playboy in a lightning talk... :(

C++?

chromatic on 2007-07-13T17:52:03

"Perl 6 is to Perl 5 as C++ is to C"

Ergh. One of my goals for the design of Perl 6 (and Parrot) has been to encourage us not to make the mistakes of C++. (Sometimes I flatter myself by thinking that roles are a better basis for a type system than the number of bits you can flip before crashing.)

Re:C++?

barbie on 2007-07-13T22:15:53

That wasn't what I meant. I wasn't trying to make any comparisions between the design, but the way that C++ took C into a different sphere of programming, and the fact that C itself is still around.

Perl 6 is likely to carve a new path for itself, but Perl 5, like C, is not likely to disappear any time soon.

Re:C++?

chromatic on 2007-07-14T08:06:53

That makes sense. Still, I do worry that people will think "Wow, C++ is a dog's breakfast of a language compared to C. Perl 6 must be a mess."

Ruby finally has a "big-name" site

Alias on 2007-07-13T19:56:55

It would appear that Twitter is using Ruby.

Dunno if we count that as "big-name" but it certainly lets me keep my slogan

"Ruby - It's where the hype is!"

Re:Ruby finally has a "big-name" site

barbie on 2007-07-13T22:29:04

I can't help but wonder what will happen to Ruby once the next cool and trendy thing happens.

To be honest what I've seen of Twitter doesn't make me think it'll be top of the cool and trendy list for very long. The SMS side of things will soon lose it's flavour once the spammers realise how useful it is.

Re:Ruby finally has a "big-name" site

djberg96 on 2007-07-14T04:20:09

"I can't help but wonder what will happen to Ruby once the next cool and trendy thing happens."

I'm sure Ruby is just a fad, much like rock music and television.

Re:Ruby finally has a "big-name" site

chromatic on 2007-07-14T07:56:31

Did you mean "Rails"?

Re:Ruby finally has a "big-name" site

djberg96 on 2007-07-14T12:08:02

Wishful thinking.

perl is ubiquitous

shmit on 2007-07-14T04:43:41

Part of the problem is that perl is still ubiquitous but only the old hackers know it.

As you've probably noticed, the ignorant tend to fear what they don't know in order to rationalize their ignorance. So they hate on perl, partly because they haven't bothered to understand it, and mostly because they're scared as hell of the bears around the office who seem to know it really well.

It's ugly, it's antiquated, it's whatever. Just as long as I have some legitimate reason for hating on it, so I can justify why I don't know it, so I don't have to worry about whether or not I can actually code better than those crotchety people at their amber-on-black terminals.

Perl won't always be everywhere. The kids will eventually replace it with ruby or python or blub or whatever they think gets the job done, only to find out in another 20 years or so that they're in the same ship they put perl in.

Only ruby doesn't have dynamic variable scoping, and python barely even has anonymous functions. There's a nice world to look forward to.

So the reason perl will be killed without mercy is because it has been so successful at what it does, and it scares the crap out of the people who don't know it and don't think they should have to know it, and who will work extra-hard to make sure that goes unchallenged by trying to kill it as quickly as possible.

Ah well. At least ruby has blocks.

devil's advocate

slanning on 2007-07-16T14:16:21

Oh, yes, we're on use.perl.org, so we're all going to be defensive and praise Perl, but let me point out that:

* she used to work for Playboy, and it was Perl at both ends.

Try to:

  • use Perl with WSDL - it sucks compared with VB or Java
  • use Perl to write a GUI - Perl blows
  • use Perl for practically anything on Windows - there are generally other tools which are more productive than Perl

That's just a few examples related to the language itself, then there are other business considerations like: will you be able to hire a Perl programmer? will you be able to find out-of-the-box solutions that you can buy rather than spend more money on developers?

Writing a JAPH or obfuscated quine is great when you're at the university, and the Perl community > *, but pretty much anything "enterprise" sucks in Perl. No? I think that's why people think Perl is dead. If I were starting out programming, I certainly wouldn't go with Perl.

Re:devil’s advocate

Aristotle on 2007-07-17T02:15:03

WSDL blows anyway, there is very little interoperability if you try complex data structures and don’t use the same language on both ends of the wire. The whole WS-(Death)* stack blows anyway. Of course it’s no surprise to see good support for that pile of cow manure in MSFT and Sun products – both companies have bought heavily into the approach, and both follow the “tools will save us” mentality.

Gtk2-Perl works just fine, though it’s not advisable on Windows. I also hear that the Cocoa bindings for Perl are very nice.

Yes, Perl on Windows is a pain. Frankly, while I rationally understand that this should be a concern, I simply can’t find it in me to care much. Meh.

The one thing that actually worries me about Perl is that the build toolchain stems from an era where Unix sysadmins did all the systems work, and is just about good enough to use but too hard for casual users (and non-programmers) to get to grips with.

Besides this one point, I don’t see anything that Ruby or Python can do for the enterprise that Perl can’t.

Re:devil’s advocate

Eric Wilhelm on 2007-07-21T10:08:24

wxPerl is pretty mature at this point.

Perl on Windows hurts only because qdos hurts. Mingw is ok and Strawberry is about as good as Perl on qdos can be. But, mingw32 on Linux is probably *the* way to go. Just need to get rid of some $^O runtime assumptions in the toolchain.

The toolchain is only a difficultly if we continue to assume backwards compatibility to about 1995. For those just joining us, it can be much easier (and possibly even GUI (see wxPerl.)) There is, of course, the problem that *nobody* maintaining the toolchain is paid to do so. (Yes, that applies to more than just the toolchain.)

Re:devil's advocate

chromatic on 2007-07-19T19:08:13

.... but pretty much anything "enterprise" sucks in Perl.

I've seen my fair share of "enterprise" software written in plenty of languages. I'm not sure that the suckiness is Perl's fault. There was certainly more than enough to go around.