Home

Choosing a web development platform

When starting a new web project, one of the most important decisions to make is to choose the platform or programming language. It's not so much about how difficult a specific language is, yet there are more important issues you have to think about:

  • Available frameworks and libraries for the given task: do you have to develop everything from scratch, or are there frameworks and scripts supporting your task
  • Expected complexity: Is code of the selected language easy to maintain? For larger projects, is there support to create a basic component structure out of some modelling language such as UML? What documentation standards do exist?
  • Performance: interpreted languages tend to be slower in execution than compiled ones. Also, are the frameworks that are being used optimized with respect to performance? Are there any potential bottlenecks due to a specific implementation or framework?
  • Scalability: if the load increases, can you distribute it over additional servers, and if so, what overhead does this impose to your application?
  • Skilled workers: how large is the market of available programmers, and what is there average skill level? If you only have a few developers available, you'll probably have a problem if you run out of resources.
  • Security and robustness: How susceptible is the selected language against all sorts of attacks? How fast are security issues in the language and/or its compilers solved? How severe are such issues?

Our application is written in Java, and we had our reasons for choosing the framework we're using. Also, I've a strong Java background, so while speaking Java fluently, its slightly more difficult for me to assess potential complexity and security issues with PHP, for example. However, during the last couple of years, things have become different. PHP turned object-oriented for a couple of years now (we were already on our framework then, so please don't remind me quite some time has passed since), Ruby on Rails surfaced, D is in its early stages. Does it suffice to say "we've always used x, so we should stay with it"? No. Of course there are languages that are out of the question for us. Any .net related stuff is something we won't use, since we're running only Linux machines (Debian Etch right now). But for the others its difficult to assess. Ruby seems interesting, though many of its features (easy database scheme evolution, DRY principle, their MVC architecture) are already inherent to our framework. PHP seems interesting as well, though you have to watch the security issues more closely (see MOPB).

There is some research going on in that area. Recently, Lutz Prechelt published a comprehensive analysis where teams using Java, PHP and Perl had implemented solutions to a specific task within 30 hours at the Plat_Forms contest. I think the idea is great, though since this has been the first time ever the event took place, he himself identified some ideas that could be improved for future re-runs.

We'll keep an eye on this. And continue improving our existing framework. Maybe we should offer it to others some day....