Choosing a Web Development Framework

I recently had the opportunity to develop a small online booking system. This 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, 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 80 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 (on the phpwact site you can find about 40 PHP frameworks listed). 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, and which factors I took into consideration.

Obviously, and certainly, I will get bombarded with “Why don’t you try 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 and I am sticking to it. Frankly, the idea of going through another learning curve gives me the heeby-jeeby’s….

I found that the selection criteria were 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 brand new, hip, 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 clients 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 – no. One needs to either have access your own private servers or run on a shared hosting environment that has Ruby on Rails preinstalled. Admittedly, there are a couple of them now starting up.

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. I might still have been prepared to go through the learning curve though if it wasn’t for the fact that RoR requires special hosting.

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 Perl or something else since I’ve been developing in PHP for the past two, almost three 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!

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 my clients, host on.

My further criteria came down to:
4. Must have good documentation Under good documentation I count the following:

– User manual

– Examples and code snippets

– Screen casts and videos – although I do not see these as essential

5. Good support by the user community This, in combination with formal documentation is absolutely essential. All of these frameworks are pretty young and the documentation is also constantly evolving. Some documentation might be patchy in details. This is where the user support in terms of the community comes in. How active are the forums? Is there a bug tracker? Any other informal tutorials, write-ups, comments, blogs and other support?

6. Regular upgrades and bug fixes..but not so close to each other that the software becomes unstable and unusable. Backward compatibility is also important.

Version number of the software can be used to indicate maturity.

The following frameworks are quite popular (2007):

  • CakePHP
  • Seagull Framework
  • WACT – since ‘disqualified’ since the latest version now requires PHP 5
  • Zoop
  • CodeIgniter

The next step was a bit less scientific – but still fitted in with point 5 – how well is this Framework regarded? How much support does it generate in the ‘community’.

I scouted through forums and followed links and surfed the net and tried to get a general feel – and overall, CakePHP did seem to come out tops. A similar check that one can do is the following – do a Google search for each of the frameworks and see how many results are returned. This will give you a good idea of the general support, number of tutorials, number of forum posts and general ‘talked about’ factor for the specific framework. The results for this exercise can be seen here: http://www.tm4y.co.za/cakephp/ruby-on-rails-popularity-for-web-development.html

In summary therefore, the support for Ruby on Rails and the amount of information available for it is astounding and you will probably not go wrong if you decide to go this route. But if you want to stick with a PHP framework – CakePHP seems to be the route to go!

Obtaining Cheap Web Development Services

The term cheap web development is not necessarily one that one would associate with a good website, but as this article aims to demonstrate, it is possible to get hold of some good quality web development for a very reasonable price.

People with experience in web design, but who have not built up a portfolio of work, may well offer their services for a significantly lower price than professionals, who can, it must be admitted, charge a premium for these sort of services.

Whether it is PHP, ASP, XML or Flash – there is probably someone out there with the experience and skills to get the job done for an attractively discounted price. People do this because they want extra experience but more importantly want to be involved in atop end project that they can then show to future prospective clients in a bid to win them over and begin charging a fuller price.

When firms are looking to cut costs in any conceivable area of their business, finding cheap web development or a similar service at a discounted price can be a god send.

As well as looking for these kinds of services in classified ads both online and in newspapers, there are special companies that pair up these kind of skilled people with firms who need those particular services.

It is often the case that students form the greater part of such groups of people, as they often have a burgeoning number of skills but do not have the level of experience required to land bigger jobs. In this case they are looking for ways to add to their portfolio whilst simultaneously making some cash to pay for their studies or perhaps their basic living expenses.

Rather than finding the people directly, the possibility of going to a company that specialises in this ‘pairing up’ of skilled people with those who could use their services – means that the student or person involved can be fully verified in terms of character and skill; accessing CV information along with examples of work.

Cheap web development is something that offers up a situation where everyone wins – a high quality website or application is developed for a reduced price, while the person who carries out the work can get a ‘foot up’ when it comes to learning their trade – and gain experience that will ultimately put them in good stead for years and years to come.

Web Development – Breathe Deep

Can your website breathe?

Think for a moment about your body and how it operates when you breathe. Air is inhaled, filling the lungs with oxygen and allowing that oxygen to recharge your blood calls as it cycles through your system. As you exhale the depleted waste called Co2 is forced from the lungs as the body waits for another round of oxygen.

Most people don’t even have to think about breathing it just happens. It is an involuntary action that we have the ability to control.

In essence when you sleep your body will breathe on its own without your consciously thinking about breathing. However, when you’re in the doctor’s office and he or she asks you to take a deep breath – you can.

So, what does this have to do with web development?

You can design your website to accommodate fluctuations with our without your involvement. The site can grow and contract easily.

For instance with web builder technology you can add a page that will need to be removed at a very specific time. This could be a sales page or an event page. If that information remains on the website your visitors may experience a decrease in trust as they find outdated information.

With quality web builder technology you can assign a day and time that the page should be removed – or a day and time for a new page to be added. Essentially you can develop your site using a dating system that will automatically add new pages when you want and remove them when you want – hands free.

In some sense the term ‘web development’ is indicative of a process that does not require all your time and attention. You can spend quality time in the development of content and then time-release that content so it can have an impact in return visitors. By using an RSS feed you can have that time-released information become a regular calling card for those most interested.

Like breathing the new material breathes life into the site as the new information is accessed (crawled) by search engines and the old information is expelled (deleted) from the site (or moved to an archive for later reference).

In many cases you can either direct the site pages to either deleted completely or simply removed from general viewing, but they still remain available to you for use at a later date.

Web development is different than web design in one very specific way. Web design is often a function of personality, looks and expression. Web development is keeping the site personality refreshed and inviting.