home forums resources search newsjoinmembers: 6370
Hiveminds Network PHP Flash Java Ruby Windows Linux
Hiveminds | Thu, 2007-12-27 20:59  tags: ,

Open Source is Dependant on Forks

In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct piece of software. In the world of Linux forks are considered to be okay even by the most radical fans of any particular distro. But when it comes to open source PHP CMS software the attitude towards forking changes. The developers and end users see forks as being pure evil and a bane to the communities surrounding the open source CMS.

Why are forks created? Forks are created for any number of reasons but some of the most important ones in the world of PHP open source CMS software are:

  • An inherent weakness in the CMS core code that does not provide for it being used in a particular senario without constant modifications.
  • Language, many forks are started because of the lack of internationalization in the original software. Most content management systems are built without any consideration of how to handle more than one language.
  • Use as a framework, being able to easily connect to third party software and ease of templating are what most CMS lack in one way or another.
  • Politics. Like marriage and friendship some group members outgrow each other or change in different ways. The human factor is probably the strongest reason for a fork to happen.
  • Implementation of ideas and ideals in a quicker and less time consuming manner. Sometimes project timelines are the enemy of development.
  • Accessability and standards.

What usually happens is that a user or group of users will notice the weakness and try and get it fixed by contributing to the project. But many projects are closed to a outsiders that want to dabble in the production of the core. The core is usually created by a predefined group or controlled by a political system. The political system can be a dictatorship or a small board of developers. It does not really matter how the project is run. What does matter is that person or persons forking do not feel that the end product is what they need, that the development direction is not going where they would like it to or the project is too slow in implemeting things that they feel are important today. They possible want to do something that would require a seperate project anyway because of the depth of the changes to be made.

Examples by CMS

Imploding and Merging

A software project may fork or split within itself so that momentum in a particular area can be gained. The fork may then merge back into the main project when the opportunity presents itself. Such is the case with a A8e Joomla! project that splits off to enhance accessability but fully plans to disappear if the main branch conforms to the need.

Timing and Necessity

Not many are aware of it but Wordpress, the kingpin of social media and blogging software, is actually a fork of the original b2/cafe project. Shortly after Movabletype, the most popular blog tool at the time changed their licensing. This left a gap that Wordpress filled easily. They had the name and because of the fork the code had changed enough to make transistion from Movabletype easy for most. Wordpress probably would not be enjoying the popularity that it has today if not for the forking of the project at the right time.

Just Say No

Drupal is always trying to defend itself from forks even though the reasons for it present popularity and growth are undeniably accredited to a fork. Civicspace was used to create the spreadfirefox website and brought Drupal up from an obscure CMS used by a few to a level where it can now compete with the likes of Joomla!, Mambo and typo3. Much time and talking is spent on fighting off possible forks. There is even a special arm of the project in the works which is designed to keep any forks close to home.

Open Door Policy

Typo3 have opened their development mailing list to all. Though this may widen the reach for improvements to the code. It could also lead to a small group or individual jumping off and going it alone. Some of the ideas shared and politics may be cause for a forking of the code if all do not fully agree on the direction that a project takes. By inviting in all possible competition Typo3 has avoided a forking of its code for a while longer. Because of its age, popularity and weaknesses on the shared hosting end it was a project ripe for a split.

Commercial Clutter

ezPublish is an example of a CMS project that would benefit from being forked. Many times a commercial company spends too much time within itself and does not return anything to the community. EzPublish has been open source for years but has never seen anything come from it. This is because while the source code is open the knowledge base is closed. In order to open up the the system to new users and actually continue as an open source project a fork is needed. This showed clearly when a enthusiastic developer created a PHP5 compatible version of ezPublish because ezPublish pushed up the time for PHP5 compatibility. Unlike Typo3 just opening the doors will not fix all of the problems associated with too much commercialization of open source software. Something more drastic is needed here.

Imitation is the Best Compliment

Skipping all the history of Mambo and why it was forked I am going to talk a bit about the projects that came out of the Mambo code base. It seems that popularity of the codebase has also made Mambo and Joomla the two most popular CMS when it comes to forks also.

Joomla!

Joomla! Is the offspring of Mambo. When the Joomla! project forked they made it obvious that it was for completely political and philosophical reasons. They did not believe that the Mambo Foundation had the best interests of the developers and contributors at heart. Being a fork of Mambo does not make Joomla! immune to further forks.

Elxis

It is still uncertain as to why the fork of Joomla!, Elxis, was started. There are a number of hints pointing to the lack of internationalization of Joomla! during its transition from Mambo. The creator is a greek developer who is dissatisfied with how Joomla! handles multiple languages.

Aliro

Aliro has taken the Mambo 4.6 code base and gone in a entirely different direction. The project is moving to make the Mambo base code into a fully scalable, php5 and MySQL 5 compatible framework. This fork was started by a former Mambo 4.6 developer who did not want to go the way of Joomla!.

Stronger Communities and Better Code

Many see forking of CMS code projects as a weakening of the community and a disservice to the end user. But this type of thinking is wrong when the facts show that forking is the heart of the open source movement possibly even its life blood. It is what gives power and control to the many participants of projects and allows individuals the freedom to expand on ideas and ideals. As shown many times a project can experience skyrocketing popularity after a fork. So the next time someone mentions a fork don't complain about it. Rejoice in the fact that it is possible and may bring with it better software.


Happy Publishing!

Hiveminds's picture
This article brought to you by the Hiveminds Magazine - Staff. Contact us if you want to post an article or announcement anonymously
 
a Visitor posted on: Thu, 2008-01-31 19:20.

Hi, I just wanted to contribute a small correction to he statement about Elxis CMS, which is treated inthis article as a fork of Joomla! This is NOT the case. Elxis is a fork of Mambo OS, same as Joomla!

a Visitor posted on: Mon, 2008-05-12 19:22.

Hello,

Another forks news for you;

On May 11th 2008, four former Mambo Core Team members forked Mambo into MiaCMS. The new fork has many new full revamp of the admin side, frontend, RESTful interactions with other applications and more. More information can be found at http://miacms.org

Regards,
O. Cem Sen

Bitrix Site manager - fast to create, easy to manage CMS Comparison Matrix
Put Your Site Here Developer Links
 

Newsletter

Get updates on Hiveminds services, articles and downloads by signing up for the newsletter.

Editor's choice

Some of the better articles, stories and tutorials found at Hiveminds.

Find more

Find more of Hiveminds articles, stories, tutorials and user comments by searching.




Picked links

Hand picked websites and articles from around the web that provide quality reading.