Content Management Systems make Web site development, updating, and management easier when your Web site grows beyond a few pages. Oracle Portal and Vignette are examples of CMSs you might buy if you have too much money and only a short time to spend it all. Mysource Matrix from Squiz.net/ is a lower cost option than the expensive products and has a basic free version to entice you toward Matrix.
Based on Matrix 3.16.0 from September 2007 and prior experience. There seems to be very little development of the free version.
Mysource Matrix is a direct competitor to Oracle Portal with a similar approach in many areas. Matrix is way ahead of Oracle in critical areas but behind general CMS development in other important areas. Matrix is a good choice if you want to pay for support and Oracle Portal or Vignette is the alternative. Drupal and Joomla are better choices where you are prepared to develop a first level support person within your organisation.
Matrix is the current version of Mysource. The base Matrix module is free and is called open source. You can implement the base module for just the cost of your time. Drupal and Joomla are the main contenders with both providing a better range of choices for free because all Drupal modules and many Joomla modules are free.
Matrix has optional modules that cost money and many sites will need at least one of the optional modules, which throws the cost up. When you try to buy one optional module, you have to take out a service contract on the whole product, making some prospective customers throw out the whole CMS. None of the Drupal optional modules cost anything. Any service contract on Drupal is completely your own choice. Joomla has a mixture of free modules and modules that cost money but you do not have to pay for service on the free Joomla modules when you buy a commercial Joomla module.
Before you decide between Matrix, Drupal, and Joomla, work out the exact mix of modules you will need now and the next few years then compare the cost.
Some people want service with their software and Matrix offers a service option. The Squiz licence for Matrix effectively stops you shopping around for support as the licence stops other service organisations from making good money from Matrix. The Squiz service contract, their SSV, has to cover everything including the free part. An SSV is not cheap. Squiz also sell hosting and a lot of other things in the one package which might be attractive to some organisations but stops them shopping around for service.
When you choose Drupal or Joomla, you can choose from several support organisations offering commercial service contracts with or without full hosting of the Web site. Matrix offers all or nothing on service while the other companies offer lots of options. With Drupal and Joomla you can buy a fully supported installation and setup service plus support while you develop your own expertise. The Drupal and Joomla support contracts can fade out as your own staff take over. The Squiz SSV, typically three years, reduces the opportunity to develop your own staff and at the end of three years, you are faced with extending the contract or running into real problems.
You might be able to reduce the level of cover each three years but I doubt many companies will achieve significant change.
Matrix is version three of Mysource and has severe problems that give Matrix a limited life. Matrix is limited to PHP 4 and PHP 4 is old stuff about to fade into history with the arrival of PHP 6. Mysource should be using PHP 5 today, not PHP 4.
There are many people helping convert most open source projects from PHP 4 to 5 or 5 to 6 but the restrictive licence for Matrix means Matrix is not open and the community will not contribute to Matrix until Squiz change the licence.
Squiz recently demonstrated version 4 of Mysource at a conference but there is no detailed announcement on their Web site. At a minimum, the update would have to replace all Java with an AJAX/PHP combination, replace DB with MDB2, PHP 4 with PHP 5, and support MySQL along side the existing Oracle and PostgreSQL support.
Most of those changes could be made today on Matrix without the need for a new release. If Matrix was issued under the normal open source licence, the public would dive in and help. Squiz are stuck with the task because of their licence and appear to be struggling to keep up.
Matrix is written for PHP 4 and a future update is promised to work with PHP version 5. The announcement from www.squizz.net:
Squiz have committed to making the 3.18 release of MySource Matrix, scheduled for release in January 2008, compatible PHP 5.1.
PHP has excellent error reporting but Squiz intercept PHP's error reporting and produce inaccurate substitutes. When you have script aa calling bb and bb calling cc, an error in cc is often reported as occurring in bb.
Drupal was compatible with PHP 5 a long time ago and already has better modularity within the code. Everything about Drupal is better from a code perspective. Matrix still has a large slab of administration interface stuck back in Java and there is no date announced to replace the Java with something modern.
Typo3 is an open source CMS that has, from what I can see, all the features of Mysource Matrix and a larger choice of modules but is already working with PHP 5 and about to switch to PHP 6. Typo3 already has published plans and development under way for MVC and other enhancements. The important difference between Typo3 and Mysource is the publication and public discussion of Typo3's roadmap for the future. The same happens with Drupal and Joomla. It is not happening with Mysource.
A big chunk of the administration area is written in Java which is useless in a PHP based environment. Even if Matrix is open source, most small sites could not afford a Java programmer just to make minor adjustments to the administration interface.
The Java component could easily be replaced with an AJAX based Web interface written in the same PHP as the rest of Matrix. At a small site, one Web developer could work on every part of the code. Future development could race ahead with help from the millions of PHP programmers already developing Web sites.
Matrix uses PEAR; which is both an advantage and a disadvantage. PEAR is a library of prewritten PHP code and for years PEAR modules caused more problems then they cured. Today there are useful groupings of PEAR code but Matrix does not use the PEAR modules of most value.
There is a basic PEAR module named PEAR that provides error reporting. Matrix uses the PEAR error reporting and many of the error messages are useless or wrong or both. The built in native PHP error reporting is far more useful for developers. The PEAR error handling might be useful in a production system after you remove most errors by carefully testing your applications. For the initial development, save a lot of time, turn off the PEAR error handling, and let PHP tell you the truth about your errors.
PEAR provides several database abstraction layers including the useful and up to date MDB2. MDB2 is almost as good as the popular ADOdb. Unfortunately Matrix uses the obsolete PEAR DB module. DB is stuck in PHP 4 and does not do any of the nice things you get from ADOdb or MDB2.
I tried PEAR's PEAR and DB in PHP 5 with the combination producing endless errors. I am surprised that Squizz did not replace the DB module with something modern a long time ago.
Many people want their Web sites hosted by an outside company, a Web hosting company or an Internet Service Provider, but many of those companies provide only MySQL. Matrix works with the expensive and difficult Oracle database, the free and reliable PostgreSQL database, but not the readily available MySQL. The base component of Matrix might be free and open source but it is not really open until it can run on MySQL.
MySQL support is easy if you use PostgreSQL but do not use the features that limit you to PostgreSQL. PostgreSQL does almost everything specified in the SQL99 standard while MySQL used to be limited to the main features of the SQL92 standard. MySQL did have some useful features that neither PostgreSQL nor Oracle had. Today MySQL has adopted all the important stuff out of SQL99, PostgreSQL and Oracle copied the extra features of MySQL, and there are database software layers that make the differences irrelevant.
It is easier for Web developers to talk their hosting companies into updating MySQL than it is to install PostgreSQL. Matrix could easily move from PEAR DB to PEAR MDB2 and open up development to the latest release of MySQL. Lots of open source developers could then start with the base Matrix and contribute extra modules to compete with the huge range offered by Drupal.
The best CMSs jump beyond page creation and give you a facility to create items of information that can then be assembled on a page. Matrix calls the items assets and stores each asset in a separate database row. When you plug in an extra module, the module may create a new type of asset.
Drupal calls the equivalent item a node. When you plug in an optional Drupal module, the module may create a new type of node or may add extra information to an existing node.
In Oracle Portal, you talk about portlets instead of modules and each portlet processes a type of information item. Oracle's Portal is oriented towards programs instead of information and the portlet structure reinforces that view by returning information already locked into a presentation format. Portlets enforce an approach that was considered bad when first introduced way back in the previous century and there is a long standing battle against CMS developers who make the same mistake as Oracle.
Drupal and Matrix offer more modern information presentation options and more flexible pre