Cross-posted from the New Internationalist Tech blog.
Behinds the scenes at www.newint.org and blog.newint.org is a tireless workhorse -- a system that just keeps giving and giving -- and that system is Bricolage. Bricolage is the open-source enterprise-class content management system (CMS) that greatly simplifies the complex tasks of creating, managing, and publishing New Internationalist's archive of content and media assets.
As we embark on the redesign and redevelopment of New Internationalist online, after four years on our current platform, we will be retiring some systems and adding new ones -- and, for another few years at least, Bricolage will continue to serve New Internationalist's content management and online publishing needs.
In the spirit of Cal Henderson's "Why I hate Django," James Walkah's "Why I hate Drupal," and Vince Veselosky's "10 Things I Love/Hate About Movable Type," and after so many years working with Bricolage, I thought it was only fair to write up some of the reasons I keep advocating for Bricolage, and some of the reasons I sigh in frustration from time to time.
Love: Bricolage is written in Perl. And not just any Perl, Bricolage is written in eye-pleasing -- some might say object-oriented -- Perl (or as close as one could reasonably get in 2001). Just a quick look at the application's source reveals a thoroughly and thoughtfully considered approach to building a large application, which uses the best object-oriented practices of the day and provides copious tests and ample documentation to get you up-and-running.
Hate: Bricolage is written in Perl. On the other hand, it drives me nuts that people roll their eyes when I mention that Bricolage is written in Perl, which many folks seem to think is a dead (or dead-end) language. On the contrary, as described in "The Perl Future" I like to believe that Perl is about to enter its renaissance.
Love: An entirely "back-end" system. Unlike other open-source content management systems (which is why I tend to refer to Bricolage as a "publishing system"), Bricolage does not serve content to the end user or web site visitor. Instead, it focuses on managing the workflow behind the publishing process and, when instructed, delivers content to a front-end system of your choice. It's not particular about what it delivers to the front-end -- HTML, XML, JSON, whatever-your-heart-desires pretty much -- but once those assets are handed off, Bricolage's job is done.
Hate: An entirely "back-end" system. Specifically, I hate that the concept of "an entirely back-end system" is so hard for people to understand. It was relatively common in the days of big, proprietary, CMSs like Interwoven, but in today's environment of lightweight "community-focused" CMSs, not so much. For me, Bricolage exemplifies the ethos of "Small Pieces Loosely Joined," but -- for many -- this presents too many questions about how to achieve common, front-end, web site functionality like search, user registration, user generated content, and so on. The Bricolage community needs to do a better job of explaining the relative advantages of the keeping the CMS and the front-end web server separated. It would also be helpful to present developers with some "out-of-the-box" options to meet the expectations that people have for a "complete" web site experience.
Love: Small, dedicated, community. Like most of the Perl community at large, the Bricolage community is intensely knowledgeable and imminently helpful. The signal-to-noise ratio on the malling lists is incredibly high, and very, very, few questions go unanswered or undocumented.
Hate: Small, dedicated, community. Following on the "Perl is dead" thing, many outside the community perceive Bricolage as having a relatively small number of users and developers and take that as a sign of waning interest in the system, and possibly limited options for professional development and support. I once heard the publisher of a daily online news site that uses Bricolage refer to it as the "Bugati" of content management systems.
Love: The release cycle. Bricolage doesn't take an aggressively forward-looking development philosophy that can leave users facing frequent upgrades that lack backward compatibility, making the upgrade process potentially challenging. Instead, Bricolage releases new major versions relatively infrequently and includes all the tools needed to make the process fairly painless.
Hate: The release cycle. That said -- historically -- the development of Bricolage could almost be described as "glacial." And, while bug-fix releases are common, major releases that introduce new functionality have been quite rare. (That said, there has been a renewed level of development recently. The migration of the source code to GitHub seems to be leading to more visibly around the development of the product.)
Love: The new Bricolage repository on GitHub. A few months ago, thanks to the Herculean efforts of David Wheeler, the Bricolage source code repository was migrated from Subversion to Git, and -- more importantly -- to GitHub. Now, with source code that is easily forked, and helpful Wiki pages to guide those new to Git, the barrier to getting new developers involved is reduced.
Hate: The www.bricolagecms.org web site. Unfortunately, the Bricolage web site did not receive the same upgrade. Though the domain name changed from the rather esoteric www.bricolage.cc to the slightly more obvious www.bricolagecms.org, the actual web site is in need of either a serious update or a major simplification to help avoid the need for ongoing maintenance. Somewhat outdated, and a less-than-great presentation of Bricolage's relative strengths in the current online content management and publishing environment, it's sorely in need of a refresh, rethink, and its own renaissance.
That's where I'll leave it for today. As you can see, that's only five things to love (or hate) about Bricolage. Rest assured I'll have (at least) another five ready to post in the coming days.
And, as part of the Bricolage community, I should state that these gripes are mostly a big, fat, "note to self" on where I need to focus some of my energy in the coming weeks, months, and years.
Got a beef or big-up for Bricolage? The comments are open.
Cross-posted from the New Internationalist Tech blog.