A company I applied for a job, asked me to learn ColdFusion and create a shopping cart on ColdFusion or Lucee in a week. I liked the idea and thought that was a nice way of leveling the playing field for every job candidate.
I took up the assignment and immersed myself into learning a completely new language. I found the process both exciting and challenging. I loved learning the new language, and once again was amazed by how human minds creatively come up with different ways to build products and solve problems. I found the task challenging, because there are not a lot of resources available on the language and the existing ones are not consistent to teach yourself about ColdFusion and related technologies. So, I decided to put up a post about resources on ColdFusion and its frameworks, alternatives to make it easier for the next newcomers into the ColdFusion land.
ColdFusion was developed by brothers Joseph J. Allaire and Jeremy Allaire in 1995, and eventually acquired by the Adobe Systems in 2005. ColdFusion is most often used for data-driven websites or intranets, because it simplifies database access.
ColdFusion is a rapid development platform for building modern web applications. ColdFusion is designed to be expressive and powerful. The expressive characteristic allows you to perform programming tasks at a higher level than most other languages. The powerful characteristic gives you integration with functionality important to web applications like database access, MS Exchange access, PDF form creation and more.
The ColdFusion platform is built on Java and uses the Apache Tomcat J2EE container. While you have full access to Java and Tomcat, you need not worry about these details. You’ll interact with ColdFusion and the user-friendly ColdFusion Mark-up Language (CFML) to write your programs. Your ColdFusion files will use the file extension ‘.cfc’ for objects and ‘.cfm’ for pages. CFML requires much less ceremony and infrastructure than typical java while offering a significantly faster development experience than Java. (a quote from http://learncfinaweek.com/)
ColdFusion Mark-up Language is tag based, and this feature makes programming lightweight. It reminded me of JSX in React that creates a type of HTML and JavaScript mixture. CFML’s tag system and JavaScript-like syntax makes it easy to learn and use. I am programming in C# these days, and it felt such a relief that ColdFusion does not use explicit type checking.
The best way to start learning about ColdFusion is to learn from a platform called Learn ColdFusion in a Week. It covers most of the basics of the language. If you have been programming, going through this should not take more than a few days.
This YouTube tutorial on getting started ColdFusion is a great way to code-along. Unfortunately, the tutorial does not specify where exercise files are located, so you have to hard copy some of the code if you want to follow the exercises.
The official Adobe ColdFusion site is great if you are stuck on a specific topic or want to read a post on a random subject. You can browse articles by category. You can also sign up to join the community and ask specific question.
The list of other useful materials to learn ColdFusion are the below platforms:
· QuackIt
· YouTube
It would be nice to work with existing popular frameworks for any project. There are several frameworks that go with ColdFusion:
· ColdBox (Nice Documentation)
· FarCry
· Framework/1 (simple light framework)
This article does a nice job of explaining each framework’s pros and cons. In my case, I looked for a framework that would support a MVC structure. I went with CFWheels, because it was inspired by Ruby on Rails, and I have an experience of working on Ruby on Rails. CFWheels has very similar look and feel of Ruby on Rails, and my experience went smooth. The CFWheels official site has a nice documentation. You can access video tutorials made by Tom King on CFWheels 2.x and tutorials made by others on CFWheels 1.x here.
ColdFusion comes with its own IDE called ColdFusion Builder. You can alternatively program in CFML in Eclipse. I also installed CommandBox CLI that goes well with ColfFusion Builder.
ColdFusion is owned by the Adobe Systems. That means in order to use it for a commercial product, you need to subscribe, and it can be costly. There are free open-source alternatives to ColdFusion, and one of them is Lucee. Lucee has a nice documentation and some tutorials on its website.
Lucee is the leading open-source CFML application server/engine. Lucee provides a lot of functionality (tags and functions) to deal with all kinds of web related actions. Manipulating images, PDF files, XML, string, numbers, dates and a lot more. You name it, Lucee does it for you! Lucee has built-in support not only to call existing web services, it can also generate web services for you in the most simple way. (a quote from Lucee website)
There is an active community on the CFML Slack Channel. To get an invite to the channel, submit your email over here. Within the Slack channel, you can find different groups such as cfml-beginners or cfweels to get your questions answered or just to connect with people.
I am sure there are other good materials on the net if you dig deeper. But be mindful that resources that you find on the internet on ColdFusion and its related technologies might be old or might not be consistent. You might not find an answer to your question readily available on the StackOverflow. Tons of video tutorials on the subject might not come up on your YouTube search, and this might feel little frustrating especially if you come from one of those mainstream languages such as JavaScript, Python or Ruby. In that scenario, the best way would be going to the Adobe ColdFusion website for additional resources and community support and asking people for help who have been in this field for a long time. The Slack Channel definitely helps in this regard.
For my job prospect: I received a good feedback on the assignment that I submitted and was invited for an onsite interview. I had a good time being interviewed and learning about the company and its culture. In my opinion, the onsite interview went well too, and I am looking forward to the next level of positive engagement.
If you found the article helpful, don’t forget to clap a few times to show your support.
Read my previous blog posts here.