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!

The Essentials of Web Design & Web Development

Numerous individuals find irresistible the idea of having a website, but get fearful when they hear the expression “web design or web development”. Nevertheless, you do not need to be a specialist with years of computer programming cleverness to make a grand website? Luckily, producing a first-class website is not as troublesome as it may sound, once you know the basics.

Before you start working on the appealing part of the website, you need to work on your website’s content. After all, people are going to want to visit your page for more than just appealing pictures! Grab a sheet of paper or notebook and make a list of the main areas that you think others will want to visit. “About me”, “home”, and “links” are commonly good pages to get you moving.

Once you know what you want to have or need on your website, it’s time to begin organizing! Folks like it when it’s straightforward to tell what is where but do not like a flood of links to click, the simpler your site is the better. If a few relevant things go together, it generally is OK to put them on the same page. For example, “About me” could also tell your hobbies and favourite music instead of having separate pages for your music, your hobbies and you as an example.

As soon as all the information has been chosen and sorted, you can then get your layout designed. The three things that are the most key when designing your website’s layout are compatibility, visibility, and ease of use. That is what makes a good site great.

Visibility suggests that your page is easy to read. Choose at least two contrasting complimentary colours for your pages. It is essential to make sure the colours are very different in shades to make it easy to read. As a rule light text on a dark background or dark text on a light background is most effective. Also steer clear of using background images as it makes reading complicated.

User-friendliness means that it is straightforward for folks visiting your page to find what they call for. All the main pages you developed earlier should be clearly linked on an easy to read menu that will be in the same place on every one of your pages. If you have any sub pages, a site map linked in the footer of your web page is also a great thought.

The most critical of the three concerns is compatibility. If your visitors can’t load your site, they will not be able to benefit from it! Don’t use things like flash or silverlight as they do not work on all browsers or all operating systems and can crash slower computers. Also, check your site across a number of browsers to make sure the code works well. Using W3C compliant code will in general assist the dilemma out loads.

As soon as you get down to the essentials, web design and web development is not very complex. Just consider the three keys of compatibility, visibility, and ease of use and organize your site well and you will be doing incredibly well. Do not be scared to make your own web page yourself. Give it an attempt and you might just be very ecstatic and delighted with the outcome.

Web Development – Make it Yours From the Beginning

One of the cardinal sins of web development is, “Though shalt not steal.”

A significant site in 2004 was caught lifting entire web pages from other sites and placing their logos and information on those pages.

In essence the company found a site they liked and wanted one built that looked just like it. This falls under the rule of intellectual property. You see, unless it is a template design that allows you to develop a page that looks very similar to another then the lifting of elements from another website is using the creative talent of others to achieve a personal and financial goal. If you have not reached an agreement with the web designer or company who created the work then you should not use the element.

You can develop something with a similar feel to it perhaps, but in some cases companies have simply mirrored existing work and claimed it as their own.

If you do this you will likely receive a cease and desist order and perhaps find yourself in court over the matter.

The use of templates in web design can help you avoid this problem simply because the work was designed to be used by the masses. Perhaps the most compelling feature of template web development is that even within a template there is significant room for customization.

You can alter pictures, colors and general layout. You will be given ample opportunity to create the page to meet your own expectations. Perhaps the best part is you will not be placing yourself in jeopardy of litigation.

Web development should be about personal creativity and expression. It can be easy to look at another website and conclude that it is so well done it makes sense to use it, but chances are if it’s really good the owner of the site spent significant sums of money on the development of the idea. They will not view your use of their material as flattery. Imitating their work constitutes stealing.

With template rich web builder technology you will have an extremely large number of templates to choose from and adapt to suite your needs. Perhaps the best part of using this is both the freedom to use the template in any way that seems fit and the incredible cost savings available to those who use this technology.

I know of a man who spent thousands of dollars developing a site that used flash technology and had daily updated information and features. Someone liked the site so much they created an exact mirror site with their own domain name. Visitors were led to believe the site owner provided a wealth of information when all that was accomplished was the complete theft of thousands of dollars worth of work. The mirror site was forced to close shop. My friend did not press charges, but has become careful about making sure visitors understand the work is copyrighted material and cannot be used for purposes other than the singular enjoyment of visiting his site.

By all means find elements you think would be useful to your design, but make sure those elements are not duplicates of something that already exists. You want your web site to be around for a long time. Make it all yours from the beginning.