Building Web Sites with Perl

Over on my other blog last night I wrote a piece about how building simple web sites has never been easier. I talked about how it’s really simple to use something like WordPress or Drupal to build a web site that will suit the needs of many organisations – charities, schools, organisations like that.

You’ll have noticed that both Drupal and WordPress are written in PHP. If I was going to include another item on the list, it would probably be Joomla – which is also written in PHP. The first Perl-based system on my list would be Movable Type (or perhaps Melody, the community-driven fork of MT).

I use MT to build blogs (this site is built with MT). I also used it to build my company web site. So why isn’t in my top three suggestions? Well for two reasons. Firstly I don’t think that it’s quite as easy to use for non-technical people as the other systems on my list. And secondly, last year I tried to use MT to build something more complex than a single-blog site and it all went horribly wrong. With some help from the people at Six Apart those problems are getting sorted out and hopefully the project will be launched soon, but I’m currently wary of recommending MT to end users wanting to build sites.

Of course MT gets better all the time. The MT5 betas look really nice and I’m really hopeful that Melody will be a great end-user CMS. But currently I’d still recommend Drupal and/or WordPress.

End users don’t care at all what technologies their web sites are built in. As long as the site looks good and works well, why should it matter to them whether the site is written in PHP, Perl or anything else? But from the point of view of language advocacy, I’d like to be able to recommend something that’s written in Perl.

So what can we do? Well, firstly, you can tell me if I’m missing anything. Is there some other Perl-based simple web site builder that has completely passed me by? What systems would you recommend (or use yourselves) if, for example, a local school asked for help building a simple site?

And if there isn’t something that I’ve missed? Should a group of us sign up for the Melody project in order to ensure that it becomes a worthy alternative to Drupal? Is there some other project that we can co-opt to this purpose?

Or do we just not care? Is it ok that we’re in danger of losing the low-end web CMS market to PHP systems?

16 thoughts on “Building Web Sites with Perl

  1. I’ve been trying to put down some ideas of mine about a publishing system written in Perl that is both flexible and user-friendly. Drupal’s clear separation of concerns and easy installation method was something that I wanted to keep, but implemented in perl instead of PHP.
    More feedback is certainly wanted. Please contribute to the brainstorming over at http://github.com/robinsmidsrod/unnamed-perl-cms-project or join #perlcms on irc.perl.org if you have some thoughts to add.

  2. [full disclosure: I work for Six Apart, but I am speaking solely for myself.]
    Dave, did you look at any of the CMS-qua-CMS solutions that come to mind, like Bricolage or Krang, both of which are mature products? Or Spine, which I confess I don’t know anything about?

  3. I pretty much dismissed Bricolage based on demos that I saw of it many years ago. At that time it seemed far more complex to use than Drupal is now. It’s possible that’s changed in the intervening years. Perhaps I’m being unfair on it and should give it another look.
    I had heard of Krang, but seem to have forgotten about it. I hadn’t heard of Spine. I’ll take a look at them both.
    In your opinion, do any of these suggestions approach the ease of a) installation, b) configuration and c) use of products like Drupal and WordPress?

  4. My experience is that nothing beats Perl when it comes to building web-based applications. Have a look at Catalyst and you’ll quickly understand what I’m talking about. However, Perl is definitely not for the light-hearted. Do you want the average Joe creating a high performing scalable web application using Drupal, Joomla or whatever? I do not think so, I’ll stay with good old Perl, thank you.

  5. Kiffin, I don’t think Dave wants to build a CMS.
    I don’t have any experience with Krang, and I honestly don’t know anything at all about Spine. Both Bricolage and Krang were designed to run periodical-type websites, IIRC (Bricolage for Salon.com, Krang for Motortrend), so they may not be as flexible for general CMS purposes as you want. (WebGUI might be a possibility there!) Like Movable Type, Bricolage builds static pages, which has its upsides and downsides.
    I haven’t used Bricolage since evaluating it in 2006 for a project, so I can’t speak to the current state of its UI.

  6. Shameless plug: I just recently released Miril. I wrote it specifically because I found Drupal too cumbersome for most of the tasks I needed, and Bricolage and Krang – too difficult to install. Here are some screenshots.

  7. Regarding Bricolage, you can keep on top of the project’s activity — and there is lots — via the quarterly newsletters (that I write) here.
    However, a comparison of Bricolage to most of the above-mentioned content-management systems is a bit apples and oranges. WordPress and Movabe Type (until recently) and Melody, are primarily used for blogs. Drupal, though used for a wide-variety of things, also has its roots in blogging and — at times — that shows though.
    Bricolage is best suited to building large sites that require a way for non-technical users to create complex documents. Movable Type, WordPress, and Drupal have only (comparatively) recently added “custom fields” and “content types” to accommodate these requirements. Bricolage is definitely not well suited to be (primarily) a blog (though several sites do use it as such).
    And, typically, Bricolage requires far more experience to install. Though, there are VMware images for those folks that want to give it a try first. And, these days, the installation is possible in about 30 minutes on a Debian server just by following the instructions.
    If you’d like to see the (AJAX-ified) state of the current Bricolage UI, you can find a short screencast here.
    Hope that helps.
    Phillip.

  8. Is it ok that we’re in danger of losing the low-end web CMS market to PHP systems?
    Dude we lost it years ago!
    I use WordPress for small sites that run on shared hosting, and WebGUI for anything bigger.
    –patspam.com

  9. Kiffin,
    I’ve already looked at Catalyst, thanks :-)
    I’m also well aware of the power of Perl and how well-suited it is for building web applications. My question was more about the applications that had already been built. I wanted to know why Drupal and WordPress seemed to have the market sown up with no competition from a Perl-based system.
    From other comments it appears that suitable Perl-based applications may well exist. Which means that we’re back to that old problem of marketing.

  10. CMS for end users? oracle apex is at the top of my list. a bootstrapped CMS – apex itself is created on apex – bundled with oracle database products.

  11. Yeah, what they said, we lost it years ago. For low-end CMS stuff, there’s nothing that beats Drupal; certainly nothing that compares to it in Perl, in terms of flexibility and ease of use. I shifted my own site over to it a while back because I got tired of maintaining my own software.

    1. Right, well the next job in the Perl Renaissance is to get it back! Find some easy-to-install, easy-to-use software. Make it great. And Perl shall rise again!

      So is the answer ShinyCMS, EasyCMS2, WebsiteInABox, MojoMojo or something else?

      Or all of the above?

  12. I’ve also been looking for an open-sourced CMS built with Perl, preferably on top of a modern MVC framework, that I could easily extend, but which would be already built and solid. It was easy to choose MojoMojo:

    • built on top of Catalyst, and easy to extend. Adding a formatter to transform {{cpan My::Module}} into a link to search.cpan.org/perldoc?My::Module takes only a few lines of code
    • it’s a wiki with a powerful permissions system. This makes it serve as a CMS (no public editing), wiki (public editing, anonymous (w CAPTCHA) or with registration just like any other wiki), or blog (by adding a comment widget – see example)
    • live preview. The markup that you type (Textile or Markdown) is instantly rendered as it will be displayed to the end user. This simple feature has become so addictive that I write stuff in MojoMojo just so that I can see what it looks like, live.

    http://mojomojo.org

  13. Why is MojoMojo called that? That makes it sound like it’s build on top of Mojolicious instead of Catalyst. As I understood it, Mojolicious and Catalyst are unrelated endeavours. Is this correct?

Leave a Reply