A few years ago I had the opportunity to develop a small online booking system. That time round I was determined to make use of some development framework. Not for me the slow slog of writing all my code from scratch – surely we have moved beyond that now in web development?
The big question was – which framework to use? Since the advent of Ruby on Rails several years ago, development frameworks have become quite the flavour d’jour and there are now, well, maybe not thousands of them, but quite a few!
The last time I heard there are about 90+ development frameworks out there. I am not 100% user of this number, it could be a bit higher, it could be a bit more conservative.
The point is, the web developer is now really spoilt for choice. Which is a problem in itself, since having too much choice can leave you dithering between different options.
This article is therefore about how I made my choice, which was CakePHP for that project and which factors I took into consideration.
Obviously, and certainly, I will get bombarded with “Why don’t you try Ruby on Rails or X framework, it is really much simpler to use…” type responses. That is quite OK, to each his own! But this is the choice I made at the time and here is why. Frankly, you can pick up a new coding framework, but unless you have the time or right type of training you are going back to square one. Learning can be a steep uphill process unless you have a solid guide and instruction to help you get going.
I found that the selection criteria was not independent. In other words, once I have ruled out some frameworks due to some specific criteria, other factors came into play. It was therefore more a process of elimination than judging all the frameworks off a predefined set of criteria.
The first major selection point was: Ruby on Rails or not.
Obviously there is the attraction of using a solid and popular, buzz-word hyped framework. You can’t go wrong with something that is getting so much attention… or can you?
Let’s look at some of the selection criteria that filtered out Ruby on Rails.
1. Ease of installation and ability to run on shared hosting.
The problem is that most of my projects make use of a shared hosting environment. Can Ruby on Rails run on common-or garden variety type shared hosting?
The answer was, I soon discovered – yes, but… Typically you do want to either have access your own private servers or run on a shared hosting environment that has Ruby on Rails pre-installed. Admittedly, there are quite a few of them now and even Host Gator has a walk through on how to set up your own ruby on rails environment via the C-Panel, all be it a lengthy process.
A comprehensive list of hosting providers that offer Ruby On Rails hosting can be found here: Google search.
2. Minimize the learning curve
Even though I knew that any new framework will involve a steep learning curve, I really did not have the guts to go through TWO learning curves – one for the language itself and one for the framework. So with Ruby I knew that it was what I wanted and even might still have been prepared to go through the learning curve though if it wasn’t for the fact that RoR required a lengthy set up process… Yes I bottled it!
So basically the decision was: Not RoR. And based on criterion 2, I decided to stick to a PHP framework, and not go for something else based on a different language like django/Python or something else since I’ve been developing in PHP for the last 10 years.
Having said this, it is all very well to say that CakePHP allows you to use your PHP skills – because it is an object oriented framework/MVC based framework it has its own rich language infrastructure. You still need to learn the CakePHP terminology and the learning curve is pretty steep! so should I have just gon for Ruby on Rails… maybe
3. Ability to run on PHP 4
Although PHP 5 offers more object oriented features, once again, not all shared hosts offer PHP 5 out of the box. I decided that I wanted to stick to a framework that will offer backwards compatibility and enable me to run on most of the servers that I, as well as any projects hosted on.
4. Must have good documentation
Under good documentation I count the following:
– User manual
– Examples and code snippets
Which is why I eventually decided to have another go with Ruby on Rails and have since developed a number of web apps. After my learning curve I decided to record my learning process and what I went through to learn to code in ROR.
A BEGINNERS GUIDE TO RUBY ON RAILS: Big Thoughts, Less Code
Learn how to use Ruby on Rails from no experience: This is your ultimate guide, designed for beginners who want to get started with a Rails application from scratch. It does not assume that you have any prior experience with Ruby on Rails. The book has 4 core chapters with easy to understand step-by-step, set up and deployment guide.
This guide will help you access the free and open source tools and software in the market used by the pro’s and then take you step by step through the basics and foundation to working with Rails and coding in Ruby to build your first applications and websites.
The guide contains screenshots, code samples and complete resources with full step by step instructions to help you get going quickly. So don’t get left behind, kick start your web development and applications off, by rocking your new skills with Ruby on Rails!