- Lucee: Open-Source CFML
- Surface Comparison
- Language Support
- Security in Adobe ColdFusion and Lucee CFML
- So, CFML Fan, What Is Your Choice? Adobe ColdFusion or Lucee CFML?
- Adobe ColdFusion Vision for the Next 10 Years
Software innovation, like almost every other kind of innovation, requires the ability to collaborate and share ideas with other people, and to sit down and talk with customers and get their feedback and understand their needs.
Is Lucee CFML now better than Adobe ColdFusion? Adobe ColdFusion has been a driving force in web application production since 1995. Due to its success as a platform, there are now several open-source competitors. Lucee is the most popular one. It aims to move ColdFusion programming language CFML (ColdFusion Markup Language) past its roots and deliver a more streamlined platform for applications. Has Lucee surpassed Adobe ColdFusion in the CFML development arena? Let’s take a look at some of the differences between Lucee and Adobe ColdFusion.
Lucee: Open-Source CFML
The Lucee project is a free open-source software that uses a dynamically-typed scripting language for the Java Virtual Machine to allow for the rapid development of web apps. These then compile directly into Java bytecode. Lucee is compatible with current CFML and configurable for legacy CFML.
Related: CFML (ColdFusion Markup Language)
In January 2015, Lucee was created by forking off of an older CFML open-source platform, Railo. Before Lucee’s creation, Railo Switzerland was purchased by The Railo Corporation. At this time the creators of Railo, at Railo Switzerland, claimed that they would no longer continue to work with Railo and put all their resources into Lucee. The Lucee Association Switzerland, a non-profit Swiss organization, was born. In July of 2016, The Railo Corporation had dissolved. However, Lucee still remains and is the top Open Source CFML Platform on the market today.
Lucee’s popularity as a development platform is on the rise today among programmers for many reasons. We will discuss a few today. Is Lucee taking over from Adobe as the number one source for CFML development?
When doing a surface comparison of both platforms, the first thing most developers look at is price. Adobe ColdFusion 2018 comes with a choice of packages, CF Standard or CF Enterprise. Most web applications will run just fine on the cheaper CF Standard. However, compared to some other web app development platforms, Adobe ColdFusion can be expensive. CF Standard starts at $2,499. Whereas, CF Enterprise for larger-scale ColdFusion projects starts at $9,499.
Lucee, on the other hand, is free to use! You may choose to sponsor Lucee Association Switzerland on a corporate or private level, however. Yet, this sponsorship is not required. This might be one of the reasons that some CF developers are migrating towards Lucee and away from Adobe.
Price Scalability in the Cloud
According to Patrick Quinn, inherent scalability in the cloud for Adobe ColdFusion is awkward. Particularly the pricing model is not so cloud friendly. He spoke on this issue in the CF Alive podcast #039 CFML Secrets.
If you want to scale large, high traffic systems, it's going to be quite expensive to run Adobe ColdFusion in the cloud.
There are two ways to license ColdFusion in the Cloud.
- A scalable service via AWS (Amazon Web Service)
- This a preinstalled version of ColdFusion 2016 run as a licensed AMI (Amazon Machine Image) which has an hourly fee while running. Prices scale up with the amount of machinery or servers you are running. Prices will scale regardless of which host you use for Adobe ColdFusion due to licensing costs as well.
- Switch to Lucee.
- This is a much cheaper alternative due to the fact that Lucee is open-sourced. Since Lucee is open source, there are no scaling licensing fees.
Installation and Requirements
Another factor for comparison is the ease of installation and requirements. Prior to installing Adobe ColdFusion, there is much to consider. You need to verify your server connection for whichever platform you will be installing it on. There are special considerations to take for both Windows and Unix platforms.
Lucee again simplifies the process by automatically performing the server connections for you. This allows the installer to be run as a stand-alone application. Lucee is compatible with both Windows and Linux platforms.
When it comes to user support, Adobe has a dedicated support team that can be accessed via phone or through online tickets. Not only does Adobe provide direct support, but Adobe ColdFusion communities are also readily available to help assist struggling developers to troubleshoot. There are many testing tools built into CF and developed online testing tools that can be used to assist users.
Lucee also has a great support group although Lucee is more community-based. Members help each other to solve problems. If you are a member of Lucee Association Switzerland, you may find light technical support through the Association. For larger scale Lucee applications and troubleshooting, third-party commercial support services are available. Abode’s direct user support is still preferred in many circles as a better support solution.
Adobe routinely updates its ColdFusion software with hotfixes. Since ColdFusion 10, Adobe provides automatic updates to help support this. Adobe will not automatically install the updates, however. It will simply inform you of what new patch is available. Staying up-to-date with the latest patch is recommended however to minimize security concerns with outdated releases. Adobe does not automatically install new versions of ColdFusion either. They do however encourage users to migrate to the newest platforms available. Adobe intends to continue to release new versions of ColdFusion at a regular 2-year interval. Adobe ColdFusion 2018 is the latest version with Adobe Coldfusion 2020 version announced for this year.
When it comes to updates, Lucee’s processes are not as automated. Users must remain vigilant in verifying new patch releases and new versions. Lucee’s updates are not provided directly from Lucee Association Switzerland but rather through outside sources. Updates from the original Lucee 4.5 can only be done manually and from third party sites. In this arena, Adobe clearly beats Lucee. However, Lucee is a newer platform and perhaps future versions will involve automatic updates.
General Ease of Use
Both Adobe ColdFusion and Lucee are exceptionally easy to use due to CFML. CFML is simple to read and easy to learn. ColdFusion can now be written as a scripted language and it works very well with Java. Lucee does tend to simplify some of Adobe’s processes, however. Both Lucee and Adobe ColdFusion can be recommended for developers of all skill levels.
Adobe ColdFusion is synonymous with CFML. However, ColdFusion interacts with other programming languages as well. Released in July 2007, ColdFusion 8 natively supports .NET assemblies inside the CFML syntax. ColdFusion also support other side-server languages such as ActionScript and CFScript. CF in itself is a Java EE platform. ColdFusion code may be mixed with other Java classes and use Java libraries.
In Adobe ColdFusion, every single simple variable is stored as a java.lang.String. Numbers? Stored as a string! Booleans? Stored as a string! Dates? Well, actually Adobe does store these an actual date object if you create it with createDate(), so that's a win. Of course, JSON has no native date datatype so it doesn't help us here. The point is, booleans and numbers all lose information about what they used to be when Adobe CF stores them in memory. That means 5 and “5” are the same thing. Same with true and “true”. Even “yes” and true serialize are the same!! This causes problems when you need to output those values into a format where type matters (like JSON).
Brad goes on to give a segment of code to try on Trycf.com.
This will be the resulting Adobe 2016 Output with explanations.
This is the resulting Lucee 5 Output with explanation:
You can see that Adobe CF throws away information about your data types in such a way that it is required to later make a guess as to what the data is. It works in some case, but not in others. Lucee retains the original information about your numbers and booleans, so, later on, it doesn't NEED to guess. It just uses them as they are.
Users who need JSON support have a clear advantage when switching over to Lucee from Adobe ColdFusion.
The Lucee Docker images
The Lucee Docker images are now in a new
lucee/lucee repository with a build process that generates a number of different tagged images from a matrix of the Lucee version, Tomcat Version, OpenJDK version and optional bundled NGINX and optional Alpine base image.
Read more here
Security in Adobe ColdFusion and Lucee CFML
In 2013, Adobe had a string of security concerns with ColdFusion 8, 9, and 10. Since then, there have been limited security issues with Adobe ColdFusion. Adobe has done a much better job of staying on top of their security concerns and going public when problems do arise.
Lucee as a newer system has a less than lengthy track record when it comes to security issues. They are able to release responses within a day to an issue. However, the area that Lucee struggles in is not releasing the response but communicating the issue in the first place. It is more difficult for Lucee to contact their members than it is to release a fix. That could call for some security concerns.
Lucee 5.3 Pulls Ahead of ACF 2016, CF Security Good News and Vue.js > Angular
I am happy to share interesting State of CF survey 2020 partial results (full details in that link)
- Lucee 5.3+ is the most popular version this year with CF 2016 in second, just ahead of CF 2018.
- ColdBox was just beaten out by “Homegrown” as the most popular general framework, followed by FW/1, Fusebox and CFWheels
- Vue.js has come ahead of Angular since last year as the most popular JS framework. With React in third place.
- GitHub is the most popular source control, with Git based BitBucket and GitLab coming up behind. Non-Git solutions are way behind.
- Visual Studio Code overwhelmingly beat Sublime Text and Notepad++ as the most popular editor for CFers
- CommandBox, AWS and Container deployment has increased since last year but most CFers continue to use their own servers or ISP servers
- Hardly any CFers had hacked servers this year. Win!
- Favorite reasons to keep coding in CF: RAD, fast to learn, fun coding, great language features, existing CFML code base
Thanks to the hundreds of ColdFusion developers who have filled out The 2020 State of the CF Union survey already!
So, CFML Fan, What Is Your Choice? Adobe ColdFusion or Lucee CFML?
These factors are just a few points of comparison between Lucee and Adobe ColdFusion. Both platforms do well at making CFML a viable programming language. In conclusion, Lucee is a wonderful alternative for Adobe ColdFusion. It can be a much cheaper version of CFML for developers with tighter budgets. With Adobe constantly upgrading their service, ColdFusion is unlikely to be dethroned by Lucee in the immediate future. Yet through time and trial, Lucee could become the dominant force in the CFML world.
Do you use Lucee or Adobe ColdFusion? If Lucee, why did you make the switch? What are some of the clear differences you have experienced using Lucee over ColdFusion? What are your tips when migrating from Adobe CF to Lucee? Or do you still prefer CF over it?
Join us in the comments below.
Related: Lucee 6- Swansea Jack
Adobe ColdFusion Vision for the Next 10 Years
ColdFusion for the Next Decade – All about the Buzzworthy ColdFusion 2020 (Webinar by Adobe)
I was happy to catch Rakshith Naresh, Adobe ColdFusion Product Manager, and sit down and talk about the next 10 (and more!) years of ColdFusion. He gave an amazing talk at CF Summit East 2019, about cool new features of CF 2018 and what the future brings.
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.