CodeIgniter use to have a lofty position as the premier framework for PHP development. This was due to its excellent performance, and superb documentation, which made CodeIgniter easy to use for web development. Unfortunately, with the release of object-oriented PHP 5, CodeIgniter has been declining in popularity, as strictly object-oriented frameworks came into their own.
EllisLab, who developed and released CodeIgniter as an open source, PHP framework, makes its main revenue from the sale and support of their ExpressionEngine content management system, and this just may be the root cause of declining interest in CodeIgniter. They have ongoing need to support their revenue producing ExpressionEngine, and it appears that the ExpressionEngine has gotten most of their resources. The result has been agonizingly slow releases of CodeIgniter.
There have been other problems revolving around EllisLab's unresponsiveness to the CodeIgniter user communities requests for new features and bug fixes for CodeIgniter, exasperated by their slow releases. This eventually caused a fork of CodeIgniter by the user community in May 2007 and the start of the Kohana framework.
Let's take a quick look at their history. In July, 2007, Codeigniter 1.54 was released, followed by 1.6 in January, 2008, a reasonable six months release, not bad, and it appeared CodeIgniter would stay current. About this time, it became obvious that PHP developers were rapidly moving toward object-oriented development and EllisLabs felt pressure to move CodeIgniter to just support PHP 5. To move in that direction, they tried several approaches.
In March of 2008, they announced the ExpressionEngine would be built on top of CodeIgniter. This was an effort to integrate the development of CodeIgniter with the development of the Expression Engine. Although this sounded promising, there was no change in their unresponsiveness to the user community. To put a band-aid on that, they announced an invitation only "volunteer" person to act as a "Community Chieftain" in July 2008.
In October, 2008, CodeIgniter 1.7 was released, which still supported PHP 4. A new volunteer "Community Chieftain" was appointed in December, 2009. We heard nothing new for a year and 5 months, a long time in software development. In March 2010, Ellis Lab announced a switch to distributive versions control to foster agile distributive development. Nothing for another seven months.
The next news from Ellis Lab came in October, 2010, two months ago, when it announced that version 2.0 was stable, and you could download it, but the official release was still 1.72. With this announcement, they also said that their adoption of agile development will allow them to get CodeIgniter 2.0 out quickly, and that the "Community Chieftain" position did not work out as intended. Bear in mind that PHP 4 is only deprecated in CodeIgniter 2.0, and it will not be until 2.1 that CodeIgniter will be fully object-oriented and support PHP 5 only.
Last month, in November, 2010, they announced nominations for a team of six developers to act as community volunteer developers for a new "CodeIgniter Community Branch." Volunteer developers would have to sign a Non-Disclosure Agreement with Ellis Lab. The developers impact on development, and the actual Community Branch would not be disclosed until after the developers were selected. Sign up now, and then we'll tell you what we expect from you later.
After a lot of chatter about the NDA, Ellis Lab announced the CodeIgniter "Reactor" community driven branch of CodeIgniter for faster adoption of community submitted code, and a CodeIgniter "Core" branch for a slower paced, Ellis Lab, maintained "enterprise-friendly" branch. They also announced a security upgrade to CodeIgniter 1.73. What happen to the supposed stable 2.0?
This week, the six community developers were announced by name, as the CodeIgnitor Reactor Team, and that the Reactor Community branch would "probably" be released in January.
Is EllisLab making progress, or is this just smoke to keep developers at bay until they can release version 2.1? And when will we see the official release of the supposed stable 2.0?
It now looks like Ellis Labs will attempt to support two branches of CodeIgniter a core branch, and an open community branch under the stewardship of the Reactor Committee of six. It sounds like we will have two frameworks moving forward, which one do you use to develop your web site?
EllisLab is in a bind. They have a huge investment in supporting their customer base that used in many cases old PHP 4 code, yet that technology is passe, and there is a need to keep current with new technology for potential future customers. On one side, they say they are committed to CodeIgniter, on the other, its obvious they are unwilling to pull resources away from the Expression Engine, and so they keep asking the community for volunteers, while they vacillate back and forth between ignoring CodeIgniter and voicing their support of CodeIgniter. Their lack of real progress is making CodeIgniter obsolete.
With these latest announcements, despite their optimistic posturing, I, for one, no longer feel they are a viable choice as a PHP framework for new development. Ellis Lab believes their making progress, and we hope they are, but we don't see this as progress. If you look on their forum at major feature requests that are wanted in CodeIgniter, ORM based Active Record, routing, an authentication class, and multi-language support, for example, you'll see that these features are currently available in other frameworks. Why should we wait for CodeIgniter when there are more up to date frameworks available?
EllisLab's window of opportunity to bring CodeIgniter back into prominence as a premier PHP framework for web development is slowly closing, and history is starting to pass them by. If they truly believe CodeIgniter is important to maintaining future ExpressionEngine business, they should focus on quickly, officially releasing CodeIgniter 2.1. Right now, despite their agile development mantra, the "quickly" part, just doesn't seem to be happening.