CodeIgniter is used to build dynamic websites with PHP. It is based (in a loose sort of way) on the popular MVC (Model-View-Controller) development pattern and works with typical shared hosting accounts, various versions of PHP and various configurations. Also, you don’t need to go via the command line to use it. URLs are mapped to a specific function in a controller using routing.

CodeIgniter also allows for the use of scaffolding, which offers an automated way of producing views based on the models. Despite the fact that scaffolding is primarily meant for simple prototyping, CodeIgniter takes it one step further by insisting there is a keyword in the URL before access is given. It’s a contemporary MVC framework which makes it much easier to create PHP applications.

The majority of the work, including loading libraries, retrieving information from the model, rendering the view, etc., falls to the controller. CodeIgniter offers classes for FTP, email, file uploading, XMLRPC, and zip compression. There is no requirement to name your database tables, and neither do you need to give your tables the same names as your models.


Ruby On Rails

When David Heinemeier Hansson worked on the Basecamp project, Ruby on Rails came about because he’d been dissatisfied with the way it was coming together using PHP and Java. Ruby was not as popular then as it is today, so there was less support from fellow users available to help him make the most of it. To speed things up, Hansson devised a Web development framework of his own, and some of the ideas that he came up with was so good that they have since found their way into other projects.

Rails was built on pragmatism. It’s so popular now because it doesn’t try to reinvent the wheel of bamboozle users with tricky concepts. It just does what it does well.  It’s based on the Model-View-Controller pattern that divides an application into three sections:

  1. The Model section represents the problem your app is trying to solve, in terms of its structure and behavior.
  2. The Views section contains the templates that display data to the user and all the logic describing the way that everything will be presented.
  3. The Controller section is at the center of everything, an intermediary that shuttles requests from clients, applies changes to the models and then renders the templates.

Rails has a reputation for being an individual kind of language. It wasn’t built to be a ‘jack of all trades’. It has its own unique way of doing things and its components are shaped by its personality. This doesn’t mean it’s totally inflexible though. If you want to, or need to, you can try and do things your own way using Ruby on Rails, but you will certainly find it easier if you respect the ‘Rails approach’. Hansson found it worked well enough for him and a great many developers find it works well for them too.

That style of programming turned out to suit Hansson perfectly, but it also found favor with many other developers too. They probably like it so much because Ruby on Rails was designed to make programmers more productive, even if performance suffered as a result.

This perceived shortcoming has led to a lot of heated discussion about whether Ruby on Rails is good at scaling. It’s come about because Ruby on Rails was anticipated as something that would be able to fix a lot of the problems that programmers and web developers encounter. When the development group  couldn’t meet those lofty expectations, some members of the community felt unhappy about it.

Despite its shortcomings, Ruby on Rails still enjoys great popularity as a Web framework and is now the name behind a lot of well-known websites and services like Twitter, Groupon, Scribd, and Shopify.