Looking for Archivematica the software project? see: archivematica.org

archivemati.ca

archivemati.ca header image 1

Django it is then

February 16th, 2006 · 1 Comment · System Architecture, Web 2.0

Well, this is probably going to dissappoint or upset some of the Drupal developers I have had the pleasure to meet at the recent OSCMS conference but I have decided that I am going to go back to using Django as the development platform for my upcoming web application project.

I have given Drupal an honest and thorough examination but there are still too many gaps in its ability to define and manage custom domain models. Drupal is a great, if not the best CMS out there. Also the community of developers are very cool and motivated. Drupal has a bright future and during the OSCMS conference I was really excited about becoming a part of that but I’ve had to give my head a shake and face the fact that it may the right community for my project but, unfortunately, it is not the right tool for the job.

What it comes down to is that the next generation Drupal back-end is still in flux and will likely continue to be so until about version 4.8. I need the ability to build and maintain a complex, domain-specific data structure (lots of content types, relationships, inheritance, views, etc.) but Drupal’s Content Construction Kit (CCK) and Views Module are in their infancy and, most critically, there is still no official way to handle relationships between Drupal nodes, despite promising starts from the Relativity and RDF modules. I had briefly considered contributing to the core development and testing, to assist in beginning to stitch these critical pieces together, but I am not really qualified to do so (I am novice programmer and a Drupal newbie) and, most critically, I have to deliver a half-decent prototype in about a month’s time.

My original interest in Drupal was stirred by the idea that, if it allowed me to build my required data model as custom nodes, I would get all of Drupal’s excellent CMS functionality as a bonus. It turns out that I won’t actually need that much CMS functionality to begin with for my application (namely, menuing, theming and user profiles). It also appears that several of the other Drupal features that I was interested in are also in a period of transition. The new administrative interface is still in the works, theming has been improved by PHPTemplate but I have been left with the impression that theming a Drupal site is still a cumbersome task, file uploads appears to have a number of outstanding issues and internationalization is also in the midst of a re-evaluation. I have full confidence that the talented and motivated Drupal crew will address these issues in due time but it looks like I needed Drupal 4.8 about a year too soon.

At the same time, I have learned a lot of valuable lessons from studying the Drupal architecture and discussing it in detail with the patient core-Drupal developers at OSCMS. I will incorporate many of the Drupal concepts (e.g. “everything should be a node”) into my Django prototype.

I will post shortly with more details about the actual application I am prototyping and how Django’s excellent object-relational mapper gives me most of the functionality I need to support the creation and management of my complex domain model.

In closing, I want to point out that the promise of Web 2.0 is in the concept of the “web as the platform.” As long as forward thinking developers are incorporating open standards and architectures into their products, what actual product or platform was used to build it will become less and less important. I hope that in the not-too-distant future it will become a non-issue all together and we will instead be discussing functionality, features and interoperability at the information layer (i.e. semantic web, structured blogging, syndication, open file formats, etc.) rather than at the technology layer and rather than pitting one product or framework against another. Peace!

1 response so far ↓

  • 1 Jeff // Feb 17, 2006 at 8:30 am

    Sorry to hear that you’re not going to be using Drupal. But, I wish you the best of luck with django, and maybe you’ll find an excuse to start using Drupal on some other project.