Open source identity: Spine CMS creator Hendrik Van Belleghem

Perl wizard ignores PHP status quo and cooks up Web CMS from scratch

Hendrik Van Belleghem

Hendrik Van Belleghem

Why do you think PHP-based open source CMSs are so popular and Perl ones are not? Is Perl more difficult to start coding a CMS with?

First of all, there are more PHP Web applications out there, I believe, mainly because of the ease of use. PHP gives you quick results, but it comes with a price. I feel PHP is more of a designer-focused language, which appeals to the Web 2.0 addicts we've all become. It has a lower learning curve than Perl. It takes a bit of time to get up to speed with Perl but it does pay off in the long run.

Syntactically, I find Perl to be better than PHP. I feel there is more consistency in the language flow. I occasionally pick up a PHP book (I own a few) and I still can't see a reason to switch over.

CMSs have also become more mainstream over the years. All the bigger companies (and tons more of the smaller ones) have, in some shape or form, developed their own CMS. More and more programming languages are available to program in and new technologies make it easier to build a desktop application-like environment. Having a Web site, blog, social network page or online photo album is no longer considered to be as geeky as it was years ago. It's supply versus demand.

Also, many open source CMSs only support MySQL, how important is it to support PostgreSQL as well? How does Spine achieve its database independence?

When I moved to databases from flat-text files about 6 years ago, I focused on being RDBMS independent. Every database has its specific quirks so there is always some tweaking needed. When adding a new database to the supported list, I spend time on data dumps, tweaking the abstract data class (which normally is a quick job) and most of all, getting to know the ins and outs of the database itself (how user privileges work, data types, etc).

To be able to support different databases, I stick to Perl's DBI module and the abstract database class, which simplifies all the calls and spits out records like objects. The reason why PostgreSQL and MySQL are supported now is because they are freely available and quick and easy to use. I've experimented with both Sybase and Oracle but nothing solid came out so far. Adding official support for either should not be too difficult.

How is the release-cycle going? Are you planning to move to a fixed time frame for Spine releases?

Since the development is done by just me, the release cycle is limited by my free time and inspiration. There are quite a few areas where I could use some help. Over the years, I have picked up some skills, but I’m far from a designer or a copywriter. After working on something for so long, everything is obvious and natural. You start to lose the “novice” point of view.

Spine is licensed under the GPL v2. Will you make future releases available under the GPL v3 or another a licence that requires people who use software as a Web service to make any changes public?

Good question. I never really looked into it. GPL v2 has suited me so far.

Many of today's Web content systems are used as blogs and have different modules for integration with third-party applications like Facebook and Twitter. How can Spine work with the Web 2.0 world?

On the front-end site, plug-ins can be loaded on a tag level, by using an HTML tag into the content or style. This allows you to change or update the content. You can use this type of plug-in to generate, for instance, a pie chart based on visitor statistics. Spine handles this by allowing you to set the media type of a page. Insert a custom plug-in tag and you have a pie chart or a Flash animation.

On the other side, you can have custom administrative panels. Spine already has a built-in file manager, user manager, statistics panel, and import and export panels.

The abstraction of the database layer gives you a clean way to use new tables for your plug-ins. There’s also a general-purpose table you can use for smaller data dumps or to extend an existing data type.

When you're not hacking on Spine what other jobs and interests do you have?

In my superhero time, I work with WANs and try to keep them up all running using tools like HP OpenView NNM (which also includes an occasional Perl scripting task).

Most of the software I use runs on Sun hardware so I picked up quite a bit of Solaris experience on the way. In the last few years I've tried to move away from Linux at home and now spend most of my time on Mac OS X.

In my real spare time, I'm learning Spanish (New Year's resolution #1), am learning Objective-C and Cocoa (New Year's resolution #2), started bowling (not really counting as the sport I was going for in New Year's resolution #3) and enjoy the occasional photography moments.

Join the TechWorld newsletter!

Error: Please check your email address.

Tags perlcmslampopen source identitymysqlpostgresql

More about AMPApacheBeatnikCGICMSetworkFacebookHewlett-Packard AustraliaHPLinuxMySQLOracleSybase Australia

Show Comments