Though I’ve already made up my mind as to which language I’m going to use for my companies new software product I thought working through my thought process might be helpful for others. First let me describe the technical requirements.
My software, HelpSpot, is a help desk application for small to medium help desks. As such the applications primary technical specification is that it be flexible. Help desk managers will usually not have alot of say as to what platform their support software runs on. So HelpSpot MUST run cross platform. Now my preferred database would be MySQL, however, MySQL is not nearly as popular on Windows as Linux/Unix/Mac so we need to support SQL Server as well and while we’re there supporting Access is probably necessary. So we’re up to 4 operatings systems and 3 database servers. Whew.
OK. Let’s move through these:
Python, Ah this is a beautiful thing isn’t it? Alas though I’ve purchased many books on it and done some small apps I just don’t know it well enough to use it for a professional piece of software. It’s fantastic to program in but I find it’s just always out of reach. Perhaps for the next project.
ColdFusion. I looove CF. Nothing is faster to develop in. Don’t let anyone tell you otherwise, it’s simply the most productive web application programming language available. Need full database abstraction? No problem, need an interactive flash graph with drill down capabilities? How about doing that in 1 line of code! Contact a mail server with 1 line of code and get a query object back with all the message info. What about integration with a bad ass Verity search engine for FREE. Good localization support, utf-8, etc. But……
HelpSpot is going to be download software. HelpSpot needs to run everywhere and CF is a big ticket item. The base version is about $1000 and the J2ee is up to $6K. Hmm. So now the price goes from sub $200/user to $200+$1000 for a 1 user installation. That’s not going to happen. Not to mention that the poor Help Desk managers not going to get the “server guys” to install and support a new app server (at least not without about 400 meetings, which also won’t happen). Limiting the product to existing CF installations takes a big huge chunk out of the potential customer base, which is death for a product like this. Also the CF market doesn’t contain much in the way of downloadable feature rich software. Mostly it’s code widgets or a few general things like forum software. So in the end I have to turn away from CF as well.
This leaves us with PHP. PHP is certainly hot right now and it’s probably the language I’m most proficient in. I’ve used it almost exclusively over the past 2 years. It doesn’t have great localization support, no one line of code to connect to a pop mailbox, no built in fancy flash widgets. It is however very flexible, relatively quick to code in and is installed everywhere. It’s free, at least in the marketing sense if not in the TCO sense and most “server guys” I know will balk less at getting it up and running. It runs cross platform fairly well and supports the necessary DB’s.
I was somewhat hesitant at using PHP because of the current state of the app server. Being as this is a transitional period between version 4 and version 5 that makes things a little more complex. But after reading up on it I think we’ll be able to produce solid code that runs on both 4 and 5 effeciently.
Well I’ve gone on too long. Tune back in as I plan to update the development of HelpSpot as I go. I hope to learn a thing or two from your feedback and comments.