Wednesday 27 April 2011 1:15:15 pm
According to various online comparison tools for content management systems, eZ Publish and Drupal offer a similar range of functionalities. As a first step in comparing both content management systems, in this blog post the ecosystems of both are compared. The ecosystem surrounding an open-source product usually consists of the community of users, developers, clients and often a company and its partners. A subsequent step will be a functional and technical comparison of both systems.
This post is an abstract of the report "Comparing eZ Publish 4.x and Drupal 7.x", commissioned by Contactivity bv, based in Leiden, the Netherlands. The report is based on two days of web research and published online in order to collect feedback from both the Drupal and eZ Publish ecosystem. Please contact me directly if any of the quotes in this post should be corrected.
This post is structured as follows: chapter 1 and chapter 2 discuss recent developments in the eZ Publish and Drupal ecosystems. Chapter 3 discusses CMS functionality, extensions and code base. Chapter 4 presents a sample of developer experiences with both systems.
1. The eZ Publish ecosystem: recent developments
According to the report Compass Guide Evaluation of eZ Systems (Tony White, February 24, 2011), “2004 to 2008 witnessed a period of rapid community adoption of the eZ Publish software”:
[…] which fuelled the need for heavy reliance by eZ Systems on its service partners and witnessed the beginnings of the vendor’s own professional services organization. Because of interest in the product platform from midsize to large enterprises, the vendor found that a more “commercial style” services organizations was required to provide enterprise-grade partner certification, training, customer support, and so on.
In 2009, the company announced such a support offering, and market adoption of this services subscription has been quite strong. Over the next 24 months, eZ Systems’ growth strategy will focus heavily on channel management, i.e. solidifying and expanding its implementation, hosting, and technology partnerships.
By far the most significant recent development at eZ Systems has been the introduction of a new CEO. eZ Systems has been good technically for some time, but continued growth has necessitated a change in the way the company operates. Until late last year, Ars Logica’s perception was that the company operated in a systemic ad hoc manner that was not conducive to long-term sustained growth and did not bode well for the vendor’s viability. Fortunately, this situation changed dramatically in Q4 2010. Ars Logica has received extensive updates on operating changes, improvements to the partner ecosystem, and a critically-important empowerment of the sales and marketing organizations. We feel comfortable saying that the company is now on course to gain significant market share over the next 12 to 24 months.
In an attempt to strengthen the eZ publish Community or ‘eZ ecosystem’, a new portal site (http://share.ez.no) for eZ publish users and developers was launched in November 2009 (Nicolas Pastorino, 02 November 2009):
On top of moving the former ez.no/developer section to a dedicated platform, [share.ez.no] is meant to give the possibility to any person interested in eZ software, knowledge or contacts an entry point to these resources. It takes the form of forums, blogs which will be populated along the way by both eZ Systems and Community Members, articles and tutorials revolving around eZ Publish mostly. Resources are also links to extremely valuable tools and key sites in the eZ Ecosystem such as http://projects.ez.no, http://www.planetezpublish.org/ and its local variants, and many more. Share.ez.no is here as an expression means, and a rebound to other resources. It concretely expresses our long-term dedication to Open Source, our values, our roots.
To make it easier for developers in the eZ community to contribute to the development of eZ Publish, the hosting of the eZ Publish community code was migrated from SVN to Git in June 2010. One of the main benefits:
GitHub capitalizes on the previous point by openly inviting people to fork. We hope this will encourage more community contribution as community members will be able to fork and commit code to a public repository without us having to grant access to ours.
A significant change has been the recent distinction (September 2010) between the eZ PublishEnterprise edition and the eZ publish Community project. In the past, eZ Systems has experimented unsuccessfully with various business and partner models, in an attempt to make money from the eZ Publish software. According to Vision with Technology:
eZ Publish have opted for a new business model, which was seen on this release of eZ Publish Enterprise 4.4 and the eZ Publish Community project. This is not too dissimilar to the business models seen on mySQL and Redhat. This business model will ensure the continual growth of eZ Publish for many years to come.
eZ Publish has decided to split this and subsequent releases to provide a better web content management tool to its users. eZ Publish Enterprise 4.4 is based on the eZ Publish Community project. With the eZ Publish Enterprise 4.4 subscription, you have the additional assurance of a service which fully supports the platform. It has been undergone further quality assurance (QA), by the internal eZ team to ensure that the product you receive is the best it can possibly be and is fully covered within the eZ Publish Premium support package, which is offered alongside eZ Publish Enterprise 4.4. The eZ Publish Community project is where eZ Publish Community members can contribute to eZ Publish's kernel along with the engineering team at eZ. It will continually evolve and try new features and extensions, which are available in the Community release. Some may even make it to the next release of eZ Publish Enterprise, only after they have been vetted and certified by eZ's internal QA team.
eZ Publish is still essentially an open source web content management tool, however the biggest difference between eZ Publish Enterprise 4.4 and eZ Publish Community project is that to install eZ Publish Enterprise 4.4, a 'pay-as-you-go' subscription model has been implemented. The subscription service includes, not only all the new features but unlimited product support, maintenance, bug fixes, an integrated service portal, as well as guarantees alongside an Intellectual Property agreement.
The eZ Publish Community Project does not have a fee associated with it, however it is not officially supported by eZ Systems, and any issues experience with the eZ Publish Community project, would need to be fed back to and will be handled by the eZ Community rather than eZ Systems.
If your website is key to your business, you need to ensure you have a fully supported version of eZ Publish, which will require you to sit within one of the support subscriptions.
Currently eZ Publish is used to host sites like Elle, EMI Music, European Space Agency and others. eZ Systems offers a partner programme which distinguishes between ‘Community’, ‘Silver’, ‘Gold’ and ‘Platinum’ partners. An overview of all available eZ Publish partners can be found here. The eZ Publish roadmap may be found here.
2. The Drupal ecosystem: recent developments
Originally written by Dries Buytaert as a message board, Drupal became an open source project in 2001. Drupal is an English rendering of the Dutch word “druppel”, which means “drop” (as in “a water droplet”). The name was taken from the now-defunct Drop.org website, whose code slowly evolved into Drupal. Buytaert wanted to call the site “dorp” (referring to its community aspects), but made a typo when checking the domain name and thought it sounded better. A large community now helps develop Drupal. Drupal's popularity is growing rapidly. Over 70 well-known brand names and not-for-profit organizations now use Drupal. Currently Drupal is used to host sites like The Economist, Examiner.com, The White House and others.
In 2007 Dries Buytaert decide to launch a start-up to take parts of the effort commercial. Buytaert put Acquia together to be “a company that is to Drupal what Ubuntu or RedHat are to Linux. If we want Drupal to grow by at least a factor of 10, keeping Drupal a hobby project as it is today, and taking a regular programming job at a big Belgian bank is clearly not going to cut it.” In the three years since it was founded, Acquia has grown to about 70 employees and has signed up more than 40,000 sites for its cloud hosting platform Drupal Gardens. Acquia offers ‘Acquia Drupal’, freely available packaged distribution of the open source Drupal social publishing system.
[…] Acquia has quickly become an important part of the Drupal community for reasons that many people still don't understand. At first, feelings were mixed on how Acquia's beta release of Carbon would affect the Drupal project and community, but things have been relatively quiet since then. But now, Acquia has completed its first major project that is expected to be beneficial to anyone and everyone involved with Drupal and Acquia.
The first big difference with Acquia Drupal is the inclusion of additional community modules that extend the CMS's out-of-the-box capabilities. Building a blog or a wiki can now be accomplished faster than ever before [..] The quintessential difference between Drupal and Acquia Drupal is the Acquia Network. Its purpose is to help users and organizations in situations where support is required. Acquia would tell us that it is a significant part of “completing the Drupal experience.” The Acquia Network is the culmination of community support, ticket-based support, email and telephone support, up-time monitoring, spam blocking and documentation all packaged into one tightly knit interface that allows users to stay on top of their Acquia Drupal sites.
Acquia Drupal is licensed under the same license as Drupal, the GPL. In addition to Acquia Drupal, Acquia offers a number of commercial products and services with professional support (based on the Acquia Network), such as OpenScholar, OpenPublish, Drupal Commons and Drupal Gardens. Drupal Commons 1.0 was released by Acquia in August 2010. Drupal Commons is a Drupal distribution billed as “social business software.” That means that Acquia is distributing Drupal bundled with some other modules preconfigured to work as a company’s interactive user-facing website. As advertised by Acquia:
Drupal Commons is social business software providing organizations with a complete solution for forming collaborative communities. It combines popular social web features for users and community management tools for site owners. It's a complete solution, ready-to-use - bypassing the Drupal module and theme selection, setup, and configuration done when building from normal Drupal building blocks.
Using tools like wikis, blogs, discussions, groups, friends, event calendars, and more, your community will be immediately comfortable with expressing their creativity quickly and often. Just like popular consumer social sites, users can fill in their profiles, upload photos of themselves, create connections with friends, and use activity streams to hear about the most popular ideas and trends.
Drupal Commons is available either by joining the Commons community site at commons.acquia.com and “just use it” to see how it works, or downloading the code and trying out some of the features we don’t have enabled for you at that site (such as the ability to create new groups.)
Drupal Gardens is a hosted version of Drupal so you don't have to worry about installation, hosting or upgrading. Think of it as Wordpress.com or Ning, except that it comes with the power of Drupal. Equipped with multi-user blogging, commenting, forums, custom content types, and advanced user management, Drupal Gardens should be a great tool for organizations that want to build social sites.
A slideshow explaining the technical concept behind Drupal Gardens is available from slideshare.net. During the DrupalCon conference in March 2011, Acquia announced the general availability release of Drupal Gardens 1.0 with new capabilities and pricing plans. In that same month the total number of sites created with Drupal Gardens reached the milestone of 40,000. Drupal does not have an ‘official’ roadmap, but together the Acquia 2009 roadmap, the Drupal 8 roadmap and the Acquia Drupal Gardens roadmap provide some indication about the future of Drupal. Acquia offers a partner programme which distinguishes between ‘Ready’, ‘Enterprise’ and ‘Enterprise Select’ partners. An overview of all available Drupal partners can be found here.
3. Comparing functionality and code base
There are various websites where content management systems can be compared, such as CMSMatch and TopTenReviews (click links for a full comparison of eZ Publish and Drupal). The figure below has been generated at CMSMatch:
From the graph it appears that the differences between the two content management systems are minimal. But how meaningful is this comparison? We add WordPress to the comparison: a popular software package for publishing blogs, which can not be categorized as an enterprise content management system (ECMS) like eZ Publish and Drupal. However, the differences are minimal again:
As mentioned earlier, functionalities that are missing in the standard installation of the CMS are often available as ‘extensions’ or ‘modules’ (“oh, there is a module/extension for that”). For eZ Publish, there are approximately 1124 extensions available (march 2011). For Drupal there are 7557 modules available. Most of these extensions and modules have been developed by the community, rather than by the group of developers responsible for the core functionality of the system. Anyone can contribute to the systems, and there is no quality control other than the feedback of the community. The extensions and modules are often developed for specific versions of the CMS, and the code is not always maintained or updated to newer versions of the CMS. For example, out of the 7557 modules for Drupal, there are only 800 modules available for version 7.x. In the case of Drupal there are often dependencies between the various modules, which can make it more difficult to add new functionalities to the system.
Without jumping to conclusions, this raises a number of interesting questions: is the Drupal community more successful in contributing code, or do users/developers have difficulties in getting Drupal to work the way they want? Does the standard installation of eZ Publish require the abundance of functionalities, or should some of these be moved to community maintained extensions? Is the size of the code base an indicator of effective coding or a lack of focus? Is the number of extensions/modules related to effective community mobilization, or to the code architecture of the system? Is there any relation between the size of the code base/extensions/modules and the learning curve for a system? There are many more questions that can (and should) be asked, and in my opinion answering those is vital to the understanding and strengthening of the eZ ecosystem.
An online tool that can provide more information about the code base of the Content Management Systems is Ohloh. Ohloh is a free public directory of open source software and people and provides several meaningful indicators to compare eZ Publish and Drupal. For example, the project costs: how much would it cost to hire a team to write this project from scratch? For Drupal this would take 43 person years or approximately $ 2,363,881. For eZ Publish it would take 113 person years (code only), or approximately $ 6,238,321. Ohloh also presents a graph with the development of the number of lines of code over time. The graph below presents the lines of code for Drupal:
Below is a graph for eZ Publish:
Note that the results from an analysis with cloc are somewhat different from the information provided on Ohloh (see tables on the next page). Cloc counts blank lines, comment lines, and physical lines of source code in many programming languages. It is clear that the code base of eZ Publish is much more extensive (or bloated?) than the Drupal code base.
According to Ohloh, both Drupal and eZ Publish have a mature, well-established code base. However, over the last twelve months, Drupal (core) has seen a substantial decline in development activity. Over the past twelve months, 42 developers contributed new code to eZ Publish. According to Ohloh, this is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh.
There is no simple tool to compare the quality of the PHP code. However:
Drupal often gets criticized by those who look to its source code and API expecting to find certain familiar aspects of object-oriented programming (OOP). For example, the word "class" does not appear in Drupal code as often as some might expect. Some have viewed this as a deficiency [… ] Although Drupal does not make thorough use of the native OOP features of PHP, the Drupal code base and API does reflect some principles found in object-oriented programming and design [“Drupal programming from an object-oriented perspective”].
An experimental check with the phpmd package, which takes PHP code and looks for potential problems, indicates that Drupal has 213 lines of code per warning and eZ Publish has 263 lines per warning. Warnings include possible bugs, suboptimal code, overcomplicated expressions and unused parameters, methods and properties.
4. Developer Experiences
There are numerous sites where developers report about their experiences with eZ Publish and Drupal. A list of experiences of users that love Drupal or hate Drupal can be found at Amplicate.com. It is also possible to find positive and negative reviews regarding eZ Publish on this site.
Bèr Kessels recently published an interesting review of Drupal in the article (in Dutch) “Geen CMS en al zeker geen Drupal voor grote web-projecten zoals gemeentesites (07/03/2011)”. Mariya Lysenkova writes the following about Drupal:
In theory, Drupal is a CMS that lets you control your site out of the box. In practice, it’s a nightmare to configure and maintain [...]It also has poor maintainability. In other words, upgrading to a newer Drupal version breaks templates and other code you may have written for an older version. Fixing this, of course, costs time and money. Other frameworks also deprecate older APIs, but in my experience, the changes between versions of other frameworks are not so drastic, and there is often a helpful process built in to migrate your code.
More detailed and technical discussions regarding Drupal 7 can be found at reddit.com and stdout.be. Also check out the blog post by Dries Buytaert (the original creator and project lead of Drupal): "Focusing on all Drupal competitors".
According to many developers, the main problem with the eZ Publish software is the steep learning curve. Jim Reverend (February 2004) writes:
It comes with it's own template system that is slow, crufty and difficult to extend. Not nearly as simple (though almost as usable) as Smarty. Templates are used for everything, which is great. Unfortunately, Figuring out what goes where and how is not a simple task. It took me about 3 hours just to figure out how to get the thing to spit out raw HTML. And, in the end, instead of using a simple modifier in the template, I had to design a whole new template just to take care of what should be a simple task.
A discussion concerning the choice between Drupal and eZ Publish can be found at the Drupal.org website: Drupal vs eZ Publish. A more recent discussion, which includes an attempt towards a technical comparison of both CMS systems, is available from the eZ Publish community site, entitled eZ Publish vs Drupal. As part of this discussion, Ronan Guilloux makes an interesting remark about the number of security advisories. For Drupal there have been more or less 300 security advisories since 2009, for eZ Publish there have been 5 since 2009.
Although eZ Publish has a very well developed code base, it lacks well-developed community (web 2.0) functionality such as wikis, blogs, community groups, 'connect to friends' and a standard solution for user profiles. In addition, the eZ Publish ecosystem has suffered from the lack of a coherent business strategy of eZ systems. As a consequence, growth of the eZ Publish community has been slow and eZ publish development has been mainly technically focussed, rather than community driven and community focused. Despite the recent introduction of a new business model, it could take a while for eZ Publish to regain its competitive edge.
Drupal’s code base seems less well established, and somewhat ‘spaghetti’-like, often causing duplication of functionality. However, Acquia seems to have been more successful than eZ Systems at taking in account the requirements of the user community: the need for advanced web 2.0 functionality and cheap, hosted CMS solutions. As a result, it appears that the commercial version of Drupal provides exactly that: advanced community sites for an affordable price. However, it remains to be seen to what extend Acquia’s version of Drupal may be customized beyond the standard installation.
Again there are a few questions to be asked. First, what explains the success of Drupal’s ecosystem? Second, is there an opportunity to make eZ Publish as popular as Drupal, or is eZ Publish a CMS in a whole different league? Third, if the quality of the code architecture does not matter to so many Drupal users, than what is the decisive factor in choosing Drupal? Fourth, has the eZ Publish CMS maybe become too complex, and the learning curve too steep for the 'average developer'?
Looking forward to your comments,