|P is for Practical|
Re: Perl Popularityby adrianh (Chancellor)
|on Dec 16, 2003 at 22:26 UTC||Need Help??|
It seems that Perl is slowly seeping out of things
I have to admit I've not really noticed much of a downturn. More support for Python and friends, but not less support for Perl. Since I like diversity I can only view this as a good thing.
I don't understand the unPerl thing. I have a good knowledge of Perl, have programmed web applications, scripts, and various other bits and pieces in it. I know exactly how wonderful the language is, and how programming other systems is like sitting on nails. I just can't see how you might not love it. But then, I'm only human.
Different languages have different advantages and disadvantages. Languages change. That's why Perl 6 is coming along after all :-) In fact if I was the sort of developer to worry about languages "taking over" from Perl it wouldn't be Python and PHP I would be worrying about, but Ruby - since it fits into Perl's little evolutionary niche much more easily than Python and PHP do.
The jump between CGI and mod_perl is massive. There is no PHP-alike. There is no simple Perl for writing webby things with sessions (etc.) support in by default. Is that so hard? Loads of people get free PHP hosting with their ISP, hence lots of people play with PHP. Getting Perl hosting is slightly more difficult for CGI, lots more difficult for mod_perl. There has to be a middle way
PHP web hosting is easier because, well, PHP hosting is easier for the ISP :-) PHP works very well in virtual hosting environments with multiple sites that cannot trust each others code. It's hard, if not impossible, to do this with mod_perl 1. mod_perl 2 solves most, if not all, of these problems so hopefully things will get better once mod_perl 2 starts getting out in the real world a bit.
Perl has manic Gnome2 support. With Glade, this could be a very cool RAD system. Not many people appear to even know it exists. This is crazy.
Crazy? Possibly. Possibly not. Maybe most Perl developers don't want/need to write Gnome2 applications? Maybe most people who want to write Gnome2 applications are already more familiar with other languages? Maybe there is equally good Gnome2 development support in other languages too?
CGI::Application, Template::Toolkit, Class::DBI::Pg, Apache::PAR - is this not nirvana?!
They are indeed all great. However you'll be able to find a templating system, an object/relational layer, and a packaging system in most languages. Maybe not with the same set of bells and whistles, but not everybody needs the same set of bells and whistles.
I apologise for sounding somewhat ranty, but I just don't understand why people don't see this. It's not like there isn't enough information about good Perl code: PerlMonks, useperl, perladvent.org, etc. etc.
Perl's perception problems (IMHO) are not so much due to the lack of examples of good Perl code, but the surfeit of bad.
For every single eToys there are fifty Matt's Script Archive's.
Perl's popularity means that a lot of code has been written by people who haven't got a very tight grip of the clue stick. The same flexibility that allows you to write small, powerful, elegant and comprehensible code in Perl also allows people to write unintelligable line noise.
And of course there are also the things that Perl does not do so well... I know I'm looking forward to Larry's A12 so I can finally see what a vaguely decent OO layer will be like in Perl!
Or do other languages hide similar gems? (Don't tell me PHP does, I won't believe you ;P )
As I said earlier - it's much easier for an ISP to setup, install and admister PHP safely for multiple untrustworthy virtual hosts. Not what many people consider a primary language point - but in my opinion it is what's pushed PHP into the limelight.
Believe me :-)
And yes, other languages have great features too. Java has much better code sandboxing than Perl. Ruby has excellent OO support and a funky distributed code environment built into the core. Smalltalk has great continuation based web environments. .Net has a cross-language virtual machine. Prolog is fantastic for constraint-based code. Etc.
Not that I don't like Perl. Because I do. It's the language I've coded the most in for the last few years. Perl's a fantastic language and I fight Perl FUD wherever I find it. However, their are other great languages out there. There are also not-so-great languages that are better solutions in certain environments.
You see, I don't really care about popularity. But I do care about acceptance. It should be okay to program in Perl. In fact, it should be downright cool. But it seems like that's not the case, and that Perl acceptance is getting a bit tougher these days...
As I said at the start, I've not seen Perl acceptance get any worse over the years. The opposite if anything. What has happened is that other "scripting" languages like Python, Ruby, Curl, PHP, etc. are begining to make an impact too. The more the merrier I say :-)