The Right Problem
February 28th, 2007
I’ve started a new job, I’m really enjoying it at the moment, a good fun group of people, good working environment and good coffee. Anyway, we write web pages in predominately Cold Fusion of which I have no experience (to date, this is definitely changing). Now from having a look at it over the past few days, I’m not particularly endeared to it as a language. However, I’m willing to give it a go and at least become fluent in it.
In any case, the thing most often brought up is the fact that we should be using PHP over ColdFusion. I haven’t voiced my opinion on this either way (basically because I don’t know ColdFusion) but I don’t think the solution being proposed is the solution to the correct problem.
The problem in this case is not that we are using the wrong language or a poor language, it is to develop websites, fast and effectively (meaning no problems). These websites should in turn be maintainable, now and into the future for this group of developers and the future crop. Other parts of this problem include the necessity for new technologies to be able to be utilised and existing technology be supported.
I’m not going to even try to propose a solution to this problem because the picture is always bigger than you think and people have been trying to solve this particular problem it since the early 90s with no golden bullet in sight. But as software developers, it is a perfect example of making sure that we define the problem effectively before trying to state how to solve it.
Matt B said:
You’re right to a large degree. Ultimately the solution that’s best is whatever solves the problem.
I don’t like ColdFusion. Its “tag” structure is like a deliberate mocking of MCV architecture, and its terminologies and syntax are clumsy and misleading. It’s missing a LOT of helpful functions, and isn’t especially well documented. That being said it CAN be used to build pretty much anything that you want it to do, if not as elegantly as you might prefer.
Unfortunately there are factors that you haven’t taken into account.
Here is a big one: Do you have any idea how hard it is to get skilled ColdFusion developers? PHP developers are common, and in many cases highly skilled, but ColdFusion skills are very rare. That means a lower overall level of skills, with too many people having to “pick it up as they go” after being poached from other languages (principally PHP, but also JSP and ASP).