A lot of developers get hooked on a particular language and stick with it. They become experts in that language and usually in the frameworks that go along with the language. Even if you are not one of these types you probably have a favorite language. Mine just happens to be C#. I have written stuff with Visual Basic and Java. But C# just seems to be the language I prefer. The company I worked for was deeply rooted in ColdFusion. The majority of the sites they have are built using ColdFusion. There is nothing wrong with this, they have their reasons for sticking with the technology. The developer I was hired to help was also deeply rooted in ColdFusion. Again nothing wrong with this. Except when he left his position with the company to go to another company.
I had very little experience with ColdFusion when I started and now I had to learn it in order to support the sites we already have. So I started by picking up books, and reading blogs about ColdFusion. But unlike C# and even Java there are very few ColdFusion blogs or sites dedicated to the language. I did manage to find some quality ones, but nothing like the code base that is out there for C#. Then my supervisor requested I go through some training on ColdFusion. I really think she thought I hated ColdFusion. Which is a little true, but mostly I hate the bad things you can do with ColdFusion. It is very easy to make a real mess of code with ColdFusion. The training confirmed this. That you can do some pretty good stuff with ColdFusion, you can also make some really really bad things. As I was one of two in the class, the other student and myself spent some time together at lunches and such. He confessed that his company used ColdFusion and that he supported one site that had over 1,000 pages. Most of which where “temp” sites that were copy and pastes of other pages. (Why would you do this?) He also confessed that the code was extremely messy and hard to make changes to. (They why keep doing it?)
I realize that it is possible to do these same things in other languages. But the question is do you? So again I will state that I don’t hate the language, but I hate what can be done with it. ColdFusion allows to have SQL statements just littered all over the code, so does C# and all other languages. There are some very loose rules on the use of variables and the scope of the variable. But on the other hand ColdFusion is pretty easy to learn and get something up and running. I feel after my training I have a pretty good handle on how to make changes to the ColdFusion sites my company has. But I am also pushing to get into a more structured language like C# for a couple of reasons. 1) We are currently trying to fill the vacant position and ColdFusion developers are harder to find that a C# developer. 2) Cost to run ColdFusion on a web server you need to purchase the software which is not cheap. Plus C# and the .Net framework and IIS is built into every Windows server out there. No more extra software.
I am always striving to learn new languages and new technologies in fact I will be taking some classes on iOS development later this year as well as trying to fit in MVC training. So for the last time I don’t hate ColdFusion, I just think it needs to be used carefully. With the diligence and best practice mindset of any developer. Keep code where it belongs, separate concerns, place it where it will be wasy to find it next time you or your coworker needs to make a change. If you are copying and pasting code is there a global way to make this happen and share the code. Reuse the code as much as possible. Refactor the code to make it more efficient or clean up a messy function. (This is a sensitive one so I will save it for a later post.)