What's Wrong with Perl 1
Perl is a “C” like scripting language for those of you who didn’t immediately know or thought I misspelled pearl.
Perl is a wonderful and powerful language. There’s almost nothing that can’t be accomplished in perl from a small, tiny script
#!/usr/bin/perl
print “Hello World.”;
to the most complex web applications like
- Amazon
- Slashdot
- The Register
- Internet Movie Database
- Ticketmaster
- BBC
- The Guardian
And almost every UNIX computer has some perl monitoring it or linking it to some other system. The largest internet routers and switches all use perl internally. Perl creates small and fast programs.
Overall, Perl is good.
Until you want to compete with other development systems like MS-Visual Studio or Ruby on Rails, RoR. These other tools let someone with relatively little experience get an application working quickly. It won’t be the best or most complex application, but a simple blog or ToDo list web application can be completed by following a step-by-step guide in RoR in about 15 minutes.
Perl has technologies that match or better RoR, but they aren’t packaged for the newbie.
A few MVC toolkits for creating web applications in perl are:
- Gantry w/ Bigtop
- Catalyst
- CGI::Application
- Jifty
- Maypole
- Solstice
- Mojolicious/Mojo
- Mason
- Many, many others
Each of these has drawbacks and excellent reasons to use them, but none of them are start and go tools. Even Jifty, which is the simplest of these tools to get started, took 3 hours to install due to CPAN dependency downloads and installations. Don’t get me wrong, CPAN rocks, but it shows the problems with perl. There are too many choices and lots of similar packages in the perl community.
That’s what’s wrong with Perl.
As an intermediate-to-advanced perl person, here are my impressions on those:
- Gantry /Bigtop – could be exactly what neophytes need, but the documentation isn’t ready for beginners. There is a book on it, but I haven’t seen any reviews of that book nor a table of contents. It took about 10 minutes to install – just a few dependencies. A test failure prevented installation on 1 platform, which was easily corrected (bug filed), but on another platform, it never installed.
- Jifty – after taking 90 minutes to install due to all the dependencies, I got a trivial Jifty app up, but it felt slow. Next. There was a screencast that showed a trivial application. I tried Jifty about year ago. Haven’t been back.
- Catalyst – 30 minutes to install after about 50 dependencies were also installed. This was after Ganty, so a few other dependencies were already installed. Discovered a few books, each about 2 months old, that seem to cover the “how do I” questions. Also, found a screencast, but it was just a video of a presentation, not a live show exactly how this works demo build. The video got blurry showing 50% of the code. Not good.
I didn’t look at any of the others after finding Catalyst. Basically, I’ve decided it was the best answer available today. The screencast really made the decision for me. It showed the setup and where things were removing many of my fears. Without the screencast, I wouldn’t have bothered installing Catalyst at all. I’d read negative reviews of the installation and that 2+ months to get used to the framework was expected.
If I’m an average programmer, the screencasts are what made the difference for me to try a framework. This also worked with the RoR screencast last year. It got me excited to see and I wanted to do the same thing myself. Screencasts need to show the following:
- Installation of the framework (all the scary details and any pre-configuration necessary)
- A simple hello world app
- modification of the starting application into a good looking web page, then adding database aspects (say 5 things instead of 1)
- add user logins and sessions
- show how to modify the DB schema (I love YAML), how the framework supports that and how to back out those modifications (I think the Rails guys did this part really well)
- show how to deploy from a development environment to a production one
We, the perl community, need a simple, yet powerful MVC framework that addresses everything that Rails addresses that
- doesn’t require 3 hours to install and get working
- addresses software maintenance and updates
- supports DB schema changes over time (and backing them out)
- removes more confusion in development and deployment than it solves
- is free to use for any purpose
or we will keep losing developers to Ruby, PHP, and Python as those communities create simple and effective tools for web application development. Simple and effective doesn’t mean trivially easy, it just means that someone shows exactly how to accomplish simple things. Don’t get me wrong, those are nice languages overall, but each has issues. For example, Ruby has not been optimized for performance or reduced memory requirements. It is a very nice language, but it just needs more time to improve performance and package maintenance. Rails is in a similar place with many excellent ideas, but some of the libraries are known to be slow. The RoR community is actively taking steps to address these issues, but I can’t wait for Rails v3! I need something today and it shouldn’t require 768MB of RAM to run either. The difference between 256MB virtual machine and a 512MB VM is almost $100/month in hosting charges. That isn’t an issue for internal apps, but it does matter to my small company.
Here’s what another person like me wrote about using Catalyst vs using RoR. He was labeled a troll instead of the Catalyst folks addressing the real issues he brought forth.
Trackbacks
Use the following link to trackback from your own site:
https://blog.jdpfu.com/trackbacks?article_id=318
So after Catalyst was installed, I tried to use the sample app provided in the tutorial. Getting all the dependencies loaded for that sample took another hour and required some fighting to get a few installed. I doubt a newbie would have gotten it installed. A Mechanized module was the issue for me. The test failure had already been reported to the author.