Thursday, February 19, 2009

Technology Choices

There is no more opinionated subject matter among geeks than the choice of technologies used for a project. Your choice of technology is a de facto application for membership in a technology tribe.

In an ideal world there would be only the best technologies and we'd all just use that and there would be no arguments. This is not that world. So decisions must be made.

The least contentious is operating system. It still is a contentious decision, but it pales compared to programming language, framework and toolsets. As I want to create a web-hosting business, I need to select a server setup. I had heard good reports of Slicehost and have had a VPS with them for a year that I was gently tinkering with and the stability and reliability have seemed suitable for my purposes. Slicehost only offer Linux hosting, but you do get to choose which distribution you use. I selected Ubuntu as that seems to be the big dog at this time.

With the operating system out of the way the decisions get more difficult. One of my hobbies is learning and tinkering with non-mainstream programming languages. It is very tempting to use one of those for the development work. On the other hand, with the acute lack of time I have, it would be practical to select a more mainstream development environment and save time and effort and have more access to support and knowledge on the Internet.

I pondered on this for a while and decided to go with a pragmatic approach to start with. I'm going with a full LAMP stack and will be using PHP for the programming language. Going with LAMP makes many decisions for me all at the same time. LAMP means I'll be using Linux, Apache, MySQL and PHP. Once I escape from Corporate America, I'll be able to go back to tinkering and perhaps write some features with those niche languages.

An interesting thing abut PHP is that while it is a very pragmatic choice, after all it was developed specifically for web programming, it is also a very controversial choice with some. I have read many a blog entry blasting PHP and declaring it to be evil beyond compare and totally unsuited for "real web development". I find this funny as I find it nice to use and pretty easy to get things done when I'm using it. I like to think that on my day job I am a "real" web developer, in almost any way you may wish to define "real". While it is easy to write very bad and very unsafe code in PHP, it's just as easy to write equally bad code in Java or Python or Ruby or JavaScript or any other language that people think is better than PHP. As usual, it's the programmer not the language that determines the eventual quality of the code.

No comments: