Comparing Midgard and WordPress
There has been some discussion on the Midgard IRC channel comparing Midgard CMS to the WordPress blogging system. Adam Douglas commented:
Don't get me wrong I love Midgard and I'm sure I will even more once I learn more how to do stuff but if we could just get some of it to be similar as WordPress man we would be rocking. It's so damn easy to use and install.
After replying I realized we should probably explain the difference between Midgard and standalone PHP applications better.
WordPress is a great tool when it comes to blogging. It is indeed very easy to set up, and its user interface strives to be simple and user-friendly. While technically Midgard's blogging component, de.linkm.newsticker includes most of the same features like RSS output or desktop blogging tool support, it still doesn't provide as good user experience. Installation is much more involved, and more steps are needed for setting up the website. The user interface is also more complex, with site management functionalities handled by Aegir and content creation by the on-site "edit this page" functionality.
Similarly to WordPress, several other PHP applications like Gallery and phpBB are considered to be the best tools in their categories. Again Midgard has components like net.siriux.photos and net.nemein.discussion providing similar functionalities. And again they are slightly lacking in setup, functionality or user interface sense when compared to their pure-PHP counterparts.
But that is all beside the point of Midgard.
While individual Midgard applications could be inferior to their pure-PHP brethen, their strength lies in sharing the common framework of Midgard CMF and MidCOM. And in many cases, the advantages of the framework vastly outdo the possible shortcomings of the applications themselves. Consider the following:
- Templating. All Midgard applications run within the Midgard templating engine, allowing developers to easily provide common look-and-feel across different parts of their site. Midgard's templating engine was noted as the best in Ideal CMS of 2002 chosen by CMS Watch
- Permissions. With Midgard all applications can share the same group-based permission definitions. For authentication there are several options like PAM and NTLM single sign-on
- Hosting capability. A single Midgard installation can be shared between an unlimited number of organizations using the Sitegroups virtual database system
- Performance. The Midgard core libraries have been written in C, and provide much more efficient Framework for CMS functionalities than interpreted PHP code or the typical htaccess hacks. In addition, Midgard's replication tools make clustering very easy
- Configurability. With MidCOM's configuration engine all components provide an uniform way for changing their settings on either per-organization or per-directory basis
- Multiple instances. MidCOM components are bound to site directories instead of installations, and so the same application can be utilized in different parts of a website
- Security. Most Midgard applications use little or no filesystem access, and as far as I know none access the database directly. This means possible exploits can be prevented already at the Framework level
These benefits should make it easy to choose between Midgard or the different PHP applications depending on what is needed. If only a single functionality, say blogging, is required, a tool like WordPress wins the choice easily. It is simple to install, works on regular web hosting services, and has a very convenient user interface.
However, if more than one set of functionality is needed, or there are plans for growth, then Midgard is a better choice. With the slight initial cost of setting up a heavier system there is suddenly a much more robust framework and all its different integrated functionalities available.
Another point to consider is that in addition to regular web publishing functionalities, the Midgard Framework also provides a set of business tools. With Midgard it is possible to manage projects, sales contacts, help desk requests and product order fulfillment.
Room for improvement
Even though current Midgard and its Framework provide many benefits for organizations using them, this doesn't mean there isn't room (or need) for improvement. There has been talk of approaching the issues from several angles:
- Installation issues can be solved by providing good and up-to-date binary packages. The Windows installer work of Daniel Reichenbach would also help us here
- Usability improvement is a long road, and must be tackled by using principles like scenario-based planning and best practices like GNOME Human Interface Guidelines
- Desktop integration will help to bring Midgard closer to users. For this common protocols like WebDAV and initiatives like GNOMEgard are important
These focus areas and the MgdSchema object abstraction system being worked on by Piotr Pokora together promise to make 2005 a very interesting Midgard year.
Issue with communication
Currently the Midgard Project website makes a rather poor job of explaining the differences between regular LAMP CMSs and Midgard. I hope this posting clarifies some of the ideas of using a robust framework in addition to the regular common LAMP tools.
To support this I coined the designation LAMP+M to describe the Midgard Framework when writing the OpenPSA 1.10 release announcement.
Daniel Reichenbach suggested using the phrase Midgard: the glue in LAMP.