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!

Programming, Coding and Web Development Laptop Specifications

If you need to get a new laptop for programming or coding purposes and are uncertain where to start, this short guide will help you find the perfect setup for your needs.

For web developers, there are really two main paths they need to go through. If you’re doing front-end web development, then you’ll need a basic machine that can run a text editor and a browser to check your progress. For back-end developers things get a bit more complicated. You will need a laptop that can handle multiple tasks simultaneously like running a browser, a local server and the code editor. These might not seem like a lot, but they do require a lot of system resources so make sure you pick a laptop that’s up to the task.

For game, 3D or mobile app development you’ll need a high performance laptop that can render everything in real-time. Think about getting a gaming laptop if you’ll be doing this type of work. Mobile app developers will often need to run a simulation of their app running in the mobile operating system, which can take a lot of system resources.

Let’s have a look at some of the specs recommended for each of these types of development work.

Processor

The processor is the heart of your computer and by the number of cores and threads it boasts, it determines how many processes you can run well in parallel.

For front-end development work, you should be able to get away with a laptop that uses either a Core i3 or Core i5 dual-core processor. Back-end and mobile app developers should aim at least for a Core i5 quad-core processor, Core i7 being the best choice.

RAM

RAM or system memory helps the CPU process everything smoothly. The more your laptop carries, the better. Front-end work implies about 4-8GB of system memory installed, since you’ll probably use a code-editor like Sublime Text and one or more browsers to check up on your work.

Mobile, game and back-end developers should opt for something with a bit more kick. The minimum amount of RAM should be in the 12-16GB range. This is to make sure that all your applications run smoothly together.

Hard Drive or SSD?

Every laptop needs to store and retrieve information. This is done by the storage device installed. Here you have two choices: either get a laptop with a regular HDD, that will typically cost a lot less, or get a laptop that comes with an SSD. An SSD is the newer type of storage option that doesn’t rely on spinning disks to store information and can be about 10-12 times faster than a regular hard disk drive.

For front-end development work, a regular HDD should be enough, but you can always look for hybrid drives which incorporate a bit of SSD technology into a regular HDD. These are a bit faster than regular hard drives and don’t cost quite as much when compared to SSDs.

For any type of programming that’s above front-end development, it’s recommended that you get a laptop that carries an SSD. This will speed up boot times and everything you run on your computer.

Operating system

This is yet another thing you will have to think about. While Windows is perhaps the most popular operating system today, it’s not quite the best choice when all development fields are concerned.

For web development you should try coding in a Linux-based OS, like Ubuntu. Mac OS also works with Windows being the last on this list. This is because you need to install different third-party software like XAMPP on Windows if you’re going to do back-end work. You will have to install some of these as well on Ubuntu, but the process is much more streamlined.

Screen

The laptop screen is another factor that’s important to take into account. With so many resolutions available today, it’s hard to pick a laptop that’s just right for programming.

Front-end developers will need a laptop that carries a screen with a higher than average resolution, since they’ll need to test if their websites are responsive on a lot of resolutions. For back-end developers, this is less important. But what’s true for both of these categories is the need for a secondary monitor. This can speed up development time quite a lot, since you don’t constantly need to switch between applications when coding and checking the output.

Battery Life

While most developers sit at their desk when coding with the computer plugged-in, should you feel the need to code on the go, then make sure you get a laptop that’s got a great battery life.

Macs are typically great at battery life, with their Air series going up to even 12 hours of battery life on a single charge.

The thing is, the more powerful hardware a laptop carries, the more battery life will be sacrificed. This is because powerful hardware eats up a lot of electricity. Most computers nowadays have devised ways of counter-acting this by dimming the display, throttling down the processor when the computer isn’t used and so forth.

If you’re sure you need a laptop with a great battery life, that’s also powerful but don’t want to pay through the nose for a MacBook, then you should invest in a secondary battery that you can take with you when you’re on the move.

In conclusion, if you’ve run through all these aspects, you should have a pretty clear picture in your head of what your next laptop should be like.

Dedicated PHP Developers and Cost-Effective Way of Web Development

Static sites are long gone, or they are slowly retreating into oblivion. They may have some utility even today but the changing preferences of users has made them take a backseat. After all, the landscape of absorbing content has evolved a lot over the years and it continues to show no sign of relenting. More users now trust websites to quench their thirst of knowledge or information. In fact, websites are now a major source of seeking enrichment and entertainment together. Clearly, static websites could not have matched this ever-changing needs of modern-day users and this is where dynamic ones have chipped in.

PHP is a server-side open source scripting language working as a fulcrum of dynamic websites. It has changed the way websites are seen and accessed. Easy to use, simple to understand and highly compatible, this scripting language makes up some 82% of web development, which speaks volume about its usages worldwide. So, you should look for a web development that taps into the potential of this language and helps you realize your online goals. If cost is a consideration, you can then go ahead with dedicated developers and get a great website powered by PHP. This way, you can save a lot of money along the way.

When we go for dedicated developers with PHP experience, you take a right step towards hiring expert for the job. These developers will help you get a website which is dynamic and rich in features. Similarly, you stand to gain superior control over websites as this is where PHP stands apart from other languages of the domain. These experts will have to write only a few line of codes to help you do one or another function. So, you escape the burden of dealing with long tedious scripts which often takes the overall development cost up. You get the best out of an open source technology.

Furthermore, dedicated developers give you a chance to edit anything and everything in a quick and easy manner and have a value-added website. Your website will be compatible with various databases, HTML and CSS giving you an advantage with technology. Similarly, they write scripts with tags to make web content as dynamic as needed to meet the need of new-age users. They can write function in any order within a document without having to bother about managing the code and its sequences. When developers get that kind of ease, it means the development cost is bound to be low for sure.

In essence, it pays a lot when you decide to hire dedicated PHP developers for your website project. You get to leverage a language that is 100% free and that saves you investment in buying expensive licenses of software. You also get the support of a thriving community and there are guidelines and references to seek help with any issues in this scripting language. So, you can find lots of code, commands, and function for free and can rewrite them to serve your variety of purposes.