Web Development Essentials – What Platform?
The Art of Web Development
The web has matured greatly over the past few years with ever more complex sites and networks springing up, covering everything from managing your social life to news and information services. As these sites establish themselves, so the expectation of what a user should be able to do with the web increases. One example is the new big thing of ‘cloud computing’ – where an application stored on a single computer is a thing of the past and you access your most used programs through a web browser, wherever you are.
This is brilliant for users of course, bringing the internet into your everyday routine and enabling you to do more from wherever you are. For developers, however, it can be a headache. When you come up with a great new idea and want to make it reality, the choices you face at every stage can make or break your project. Choose the wrong platform, tools or frameworks and you could be left ruing the decision for months to come, or even worse, it could spell the end for all your hard work.
This is the first in a series of articles intended to help the budding developer out there (and maybe even the more experienced ones among you) in making these vital choices by outlining what there is available to you – and remember, always fit it in with your project and the people who will be working on it.
Language
As the foundation of everything to follow, the platform choice is crucial: it may be very hard to change half-way through because another platform has that cool new feature which would make your life easier.
The first decision you need to make is which language to use: PHP, Python, Ruby, C# or VB.NET. Even Perl, which as a web dev language is going out of fashion, is still used in some situations!
- PHP is the old stalwart, sitting pretty on top of the heap with plenty of support, existing systems and libraries and a healthy community behind it. Although it can be a disorganised mess in places, there is virtually nothing it can’t do out of the box, and when hooked up with a good framework (such as Zend, CodeIgniter or CakePHP), the sky is the limit. It can also be blisteringly fast when done right, presenting a great level of scalability.
- Ruby is the young upstart in the web world, thanks to its major framework Rails, and many people are turning to it as it’s the current language in vogue. Other frameworks do exist, such as Merb, but it does suffer performance-wise when compared to other options.
- Python is another language produced from the same mindset as Ruby (Don’t Repeat Yourself, or ‘DRY’), and enjoying somewhat of a boost at the moment with its own frameworks such as Django reaching maturity on a greater scale than before (more on those later). Performance is somewhere between Ruby and PHP.
- C# and VB.NET are of course backed by the almighty Microsoft and their .NET framework, with C# in particular is gaining popularity as the rapid development language of choice for desktop applications. Performance can be very good with these two options.
Those short descriptions do not do any of those languages justice, however. Developers often have their favourites and look down on other languages with disdain, wondering how others who use them ever get any actual work done. In the end it is really down to personal preference: any language when used correctly can be immensely powerful in capable hands whilst producing the same end product. Its how you go about it that counts, after all! In the end, only experimentation with each language will give you the true insight as to what suits your needs the best.
System: Server and OS
So, lets say you’ve chosen your language. That’s all well and good, but how are you going to let people actually view all your hard work at the end of the day? Well, you wouldn’t have thought so, but there is another big choice to make: which web server are you planning on using? It may seem insignificant, but when you’re serving upwards of thousands of pages a day, it may not seem that way any more.
Currently the ‘big three’ as they stand are:
- Classic and open source Apache Server which runs on any system you care to mention. It benefits from a long history of development, great extensions for integration with your chosen language and endless configuration options. It may get sluggish when you start pulling in those valuable visitors on a massive scale, so it is not perfect for everyone.
- IIS from corporate heavyweight Microsoft – only available on Windows OSes but links very tightly with ASP.NET. Servers running this will typically cost more purely due to the need of obtaining a license for the Windows Server operating system.
- Finally, relative newcomer lighttpd which addresses the performance side of things whilst still providing the ability to run an elaborate system coded in the language of your choice along with great flexibility in configuration. Unfortunately, few commercial web hosting companies offer this as standard on their shared or managed hosting plans as of yet.
Of course, if you have the access to (and expertise using) the server you will be hosting your finished site on, you may well get to choose exactly which software you want to use.
Conclusion
When you start your project, it is important to check out what you need from the project both now and in the future, both from the actual features offered to the ease of future maintenance, upgradability and management. However, no-one can tell you what to use. You may decide to go ahead with Ruby on Rails running on a Windows Apache installation, or a Python-based solution running on an OS X machine with lighttpd – it really is down to you. Just because something is new or old does not make it a good or bad choice, nor does the fact that you might have to learn something.
After all, web development is ever evolving, and its all about keeping on top of the game, right!
Remember to come back for the next in this series of articles, where frameworks – one of the biggest buzzwords in web dev today – will be discussed in detail!
Links
Geoff Adams
Programmer, Research and Development









[...] is a follow-on from ‘Web Development Essentials – What Platform?‘ and is part of a series of articles on Web Development as it stands [...]
By Web Development Essentials - Frameworks | JustSearch Labs November 7th, 2008