Building a Web Application: Technology Choices
In building a web application from scratch, you’ve got the flexibility to choose any language and platform to develop in. How do you choose? There are numerous factors that go into making that decision.
Cost is obviously a huge issue but cost can be measured in many ways. There’s the cost of the hardware and software; the cost of development; and the cost of maintenance. Software is the big differentiator here. Some are free while others cost thousands of dollars. The cost of development and maintenance are dependent on the resources that you acquire. In general, however, these costs will likely be consistent across the board.
There’s the comfort factor. Everybody learns to develop in a particular language and may find it quicker and easier to develop in that instead of trying to pick up something new. A person who learned PHP first would be reluctant to develop a new project in Java.
Luckily, I’ve used a few languages and I’ll have the flexibility to choose which language I want to develop in. I’d like to develop this in Java, PHP or .Net.
The goal of this application is to have it be able to generate code that conforms to web standards. Certain technologies make this harder than others. This is the least important of the factors but is still something to consider.
This is where things matter. Users don’t care what language you developed in. They just want it to work. Performance of the language itself is only one facet of the issue. Performance of how it interacts with external technologies such as the file system or database is also extremely important. Doing an IF statement faster will be a moot point if database connectivity brings your server to your knees.
The Big Picture
Ultimately, you have to understand the big picture before you can make a decision on what technologies to use.
If this were an open source web application product then you’d likely want to select more popular technologies to garner interest. The more closed the environment, the less of an issue it becomes as to the language you develop in.
What do you feel would be the best direction to go in and why? Back up your argument with links to performance or security comparisons, if you got 'em!