About us...
Site Map

ruby in steel


code igniter   php CODE IGNITER :: PHP 'On Rails'...?

In this interview, Huw Collingbourne asks pMachine CEO, Rick Ellis, about PHP, web frameworks, Ruby On Rails, Microsoft, programming and hacking – and why would a commercial software company decide to produce an Open Source framework anyhow…?

Code Igniter is an simple but powerful Open Source PHP Framework for the creation of full-featured web applications. It was developed by Rick Ellis and Paul Burdick of pMachine Inc., a company which sells the commercial web publishing system, Expression Engine.

Huw: I've been using Code Igniter over the last few days and, while I haven't yet explored more than a tiny fraction of its features I must say that I'm mightily impressed by what I've seen so far. One thing that puzzles me, though, is why you decided to do this in the first place. After all, you are a professional developer - you make a living from selling a commercial CMS system. So why are you giving this stuff away?

Rick: I see the two products more complementary then competitive. The markets they appeal to are slightly different, but close enough for some symbiosis. As a small company like ours it’s very difficult to build a sustainable business model unless you are commercial in nature, but conceptually I like the idea of open source, particularly with something like a framework.

Huw: You say you "conceptually like the idea of open source". But isn't open source necessarily taking away business from professional developers? I mean, I guess there must be people who've considered investing in Expression Engine but ultimately opted for XOOPS or Drupal simply because they are free.

Rick: Certainly there are people who will choose a free solution over a commercial one. However, while the initial cost barrier is less with open source, its "freeness" comes at a price. When a software developer releases a product as open source, it also frees them of all responsibility to the end user. They are under no obligation to help their users since they have not been paid for the software.

Many open source vendors offer paid support options, so the cost of the software is just shifted to being a support cost. In contrast, as a commercial software company we have an obligation to our users since their happiness directly correlates to our ability to sustain our business. If we neglect our users or don't release updated quickly we will see it reflected in our bottom line.

At pMachine, our goal is to answer all support requests within 4 hours between the hours of 9am and 7pm. Usually we answer questions faster, and often go well beyond that, logging into our customer's server to solve a problem or help with a custom solution. When you compare the level of service and support you get with us, the cost of the software is truly insignificant. For most of our customers, particularly for our business users, this peace of mind far outweighs the cost. I still think there is a place for open source, but it's not an either/or proposition. Each licensing has its pros and cons.

A Blog In Twenty Minutes...

code igniter tutorial
The Code Igniter web site provides some tutorials to help you get started...

code igniter blog
...in twenty minutes you should be able to get a simple blog system up and running.

Huw: If I were thinking about developing a web site using some kind of content management system, what should be the factors that lead me to choose - a) a free open source CMS such as Drupal, Joomla or WordPress, b) a commercial CMS such as your own ExpressionEngine and c) a 'framework' such as Rails, TurboGears or Code Igniter?

Rick: We need to draw a distinction between content management systems and frameworks since their intended audience is generally different. A framework is a development tool, requiring someone with programming skills. Frameworks are for people who want to roll their own solution. A CMS is a web publishing tool that provides out of the box capability and is generally usable by lay-people. Once you establish what your needs are and narrow down your choice to the applications that meet them, the major choice you'll have to make is between open source and commercial. As I mentioned earlier, each has its pros and cons.

Huw: While on the subject of ExpressionEngine, how closely related is that product to Code Igniter?

Rick: The libraries are very closely related. Frankly, I would have never attempted Code Igniter had we not had a large pool of existing ExpressionEngine libraries to draw from. This allowed me to develop the framework in a very short time. Had I started from scratch it would have taken me a year.

“I don't have a problem with people hacking our software in order to enable it meet their needs better.”

Huw: One of the things I constantly notice when using open source software is that an entire generation of programmers seems to have emerged for whom the term 'hack' has no negative connotations. Many open source projects seem to encourage people to mess around with the program code and modify the core functionality. Is that something you would be happy see happen with Code Igniter? Or do you shudder at the thought as much as I do?

Rick: I don't have a problem with people hacking our software in order to enable it meet their needs better. No one application can scratch every itch, so if someone has the skill to tweak it in some way, I'm fine with it. Having said that, good applications will generally be able to be extended without hacking.

ExpressionEngine has a very robust plugin and module architecture, as well as an Extensions feature and other tools that allows the core system to be tapped into, so hacking is rarely needed. Code Igniter is easy to extend as well.

To digress slightly, among computer programmers, "hacker" is generally a positive term, referring to a skilful programmer who solves problems for the community at large. People who do nefarious things are known as "crackers". If you read How to Become a Hacker by Eric Raymond (one of the fathers of the open source movement) you'll see that there is a clear distinction between hackers and crackers. The general public tends to view the term "hacker" in the negative, but most programmers draw a distinction between hackers and crackers.

Huw: Can you give me some idea of what kinds of applications it would be possible to create using Code Igniter. And what level of PHP programming expertise would somebody need in order to make good use of it?

Rick: To use any PHP framework requires that you posses a reasonable degree of experience with the language. That said, during development I continually asked myself whether a beginning programmer would be able to use it. Not that I wrote it for beginners, but I wanted to keep the barrier to entry as low as possible. Most frameworks are written by very experienced programmers for members of their own peer group, so they tend to be inaccessible to people with less experience. I tried to keep things more simple. By definition a framework is project agnostic so nearly any type of web application that can be envisioned should be possible. Obviously, the supported libraries determine to what extent the development process is facilitated, so the goal of any framework should be to have a broad collection of libraries. For a product that has only been out for a few weeks Code Igniter has a pretty nice set, enabling the most common web development tasks.

Huw: What tools - editors, debuggers etc. - would you recommend for professional PHP development (money no object)? And what about tools for non-professionals - people who may not have much (or any) cash to spare?

Rick: A text editor is all I use so I'm fairly minimalist. Some developers use IDEs (integrated development environments), like Zend, but I've never found one I like. I do think it's very important to have access to a variety of PHP versions in order to test your code for compatibility. In particular, you should run each point release (4.3, 4.4, 5.0, 5.1, etc.) since there are changes in each one, and if possible, you should test on different platforms (Linux, IIS, etc.).

“We’d like to tip our hat to Ruby on Rails for bringing frameworks into the general web consciousness and inspiring us to create our own framework using PHP.”
(from the Code Igniter web site)

Huw: On your web site, you give some credit to Ruby on Rails for inspiring Code Igniter. How similar are the two frameworks? Are there any particular strengths or weaknesses that Code Igniter has when compared with Rails?

Rick: I've never used Rails, so I'm not the best person to ask this question. I did draw some inspiration from that framework, but it was mostly in terms of their success in making it easier to create web applications, not in the way they have gone about it in a technical sense.

Beyond using the model-view-controller approach, Code Igniter approaches application design in the way it makes most sense to me personally, based on what I've learned from building web apps for the past six years.

Huw: I wonder if you have any views on the Ruby language? It's generating a good deal of interest at the moment but there are very few real world Ruby applications around. Do you think Ruby (with or without Rails) offers a serious challenge to PHP? Or is it all just hype?

Rick: I find it interesting that people seem to want to frame the Ruby vs. PHP debate as a competition, where one language must find success at the expense of the other. I think there's plenty of room in the vast world of the internet for several languages to happily coexist. I have no doubt that Ruby will continue to grow in popularity and find its place in the world of web programming, but this doesn't necessarily have to come at the expense of PHP.

Keep in mind that PHP enjoys massive market share. It has nearly 100% support among hosting companies, and the number of users is staggering. Look at the number of PHP projects at Sourceforge or Hotscripts, the number of PHP books on the market, the number of PHP based commercial applications. At this stage, Ruby is miniscule in comparison.

Huw: From various comments on your web site, I get the impression that you are not a great admirer of PHP 5. And it's seems to be the case that most web hosts have stuck with PHP 4. What's so bad about PHP 5 anyway.?

Rick: Actually, I like PHP 5 very much. The problem is that PHP 5 only has a 6% user adoption rate, which means that if you want your applications to have widespread market availability you are foolish to use PHP 5. People like me who develop commercial applications must unfortunately stay backward compatible pretty far back in order to ensure our own livelihood. The reason web hosts have not migrated en masse to PHP 5 is because anytime you make a major shift like that it potentially affects thousands of your clients. I think hosts are erring on the cautious side since the prospect of breaking their client's applications carries major repercussions.

Huw: Are you going to continue the core development of Code Igniter yourself or have you any plans to build a large development team as many Open Source projects have? What are the pros and cons of a small development team v a larger one?

Rick: I'm not sure Code Igniter will ever require a large development team since its intended to be a small, lightweight framework. That said, if it were to gain significant popularity I imagine that the pool will increase substantially just from our users sharing ideas and code. I also imagine that in time people will emerge with the skill, desire, and compatible vision to contribute more formally. Whether that turns into an official development team I don't know. We'll have to see how things progress.

Huw: Have you any thoughts on the trends in web development over the next few years? Is the dominance of PHP secure? Or will other languages and technologies - notably, Microsoft's ASP, especially now that it's started distributing free versions of its Visual Web Developer suite - gradually take over?

Rick: Unix is so dominant on the web that unless something seismic happens, I don't think the challenge will come from Microsoft. I'd be more inclined to think that a challenge to PHP would come from something like Ruby or Python. As far as trends, one of the biggest I see is that web sites are becoming full-blown web applications. The days of static content are disappearing, so innovations that enable consumers to publish increasingly dynamic information on the web will continue to emerge.

The first full version of Code Igniter was released in March 2006. You can download the current version from the web site, http://www.codeigniter.com/, which also provides full documentation and some animated tutorials.

rick ellis

In a varied career, Rick Ellis has been a musician, recording engineer and CEO of the software company pMachine. He says, “In 1996 I heard about this thing called the World Wide Web so I got an account with Earthlink and fell instantly in love. I found the nascent internet so compelling that I engrossed myself in it, learning HTML, Photoshop, Illustrator, and JavaScript. I soon started making web sites for myself, then later for my audio clients as a small side business - one that grew quickly and ultimately led me to start a software company called pMachine.

In 2001 I found myself in Japan for several months mixing several music projects for Disney.  To spend my evenings productively I started developing a simple content management system.  I had been tinkering with PHP and was in need of a CMS for Nancy Sinatra’s web site so I decided to roll my own.  By the time I got back to L.A. I had written the basic framework for what would become pMachine Pro.  And in that time I got hooked on PHP.”


April 2006


Home | Archives | Contacts

Copyright © 2006 Dark Neon Ltd. :: not to be reproduced without permission