Pages

Thursday, August 16, 2018

Considering your CF Engine

One of the things I've been thinking about as of late is exactly which flavor of ColdFusion I should be using for my startup.  These days, the options are pretty much Adobe ColdFusion or Lucee Server.  There is also the OpenBD CFML engine, but as far as I can tell, development is no longer active on it, which is a shame.  From its start in the BlueDragon days, OpenBD was a pretty reliable alternative when no other existed.

When it comes to deciding on which server will provide the sort of use I'm looking in a business, the following are my major consideration:

  • Price
  • Support
  • Scalability
  • Future Proofing
Price

When it comes to Adobe ColdFusion, price has been a major issue for some time now.  As a developer, many of us look for options that we can practice with and implement on our own.  This is a big reason why open source software is a big draw.  Unfortunately, Adobe ColdFusion has a pricing structure that was never a great incentive to developers who can't look past price when it comes to learning a platform.  From a business standpoint, this is also an issue, but not one that should disqualify ACF right out of the gate.  The two tiers of ACF are the standard edition ($1,499) and the enterprise edition ($8,499).  For a small business that is software focused, the standard edition's price tag is actually not that bad.  Just like many things you buy for a startup, the ACF platform is an investment.  For the price of two usable laptop computers, you have access to rapid app development, a huge library of tools from report generation to .NET integration and more.  The enterprise edition is even better if you have to handle multiple instances.

Lucee server is an option that is much nicer to the pocket book, at least on the face of it.  Lucee is an open source CFML engine, and a very good one at that.  As an fork of the Railo CFML engine, it has been actively developed for a number of years and has grown a knowledgeable community who not only embrace the open source software approach, but who seek to move the applications forward into the realm of modern development practices in a way that a  larger corporation can take time to do.  Also, as an open source project, you're able to adjust the software as needed if it came down to that, but thankfully the development is on-going and I've seen new features come up with each version that make Lucee very attractive.

Support

Adobe ColdFusion is, obviously, an Adobe product.  This is one of the big draws that have helped it over the years when it comes down to selecting a product partner.  With each new version, which have a release cycle of about two year per, a generous support period of around 7 years is not unusual.  This is great news for a startup, especially since it means that there will be someone to call on and active patching and updates to accommodate growth.

Lucee does have a level of support as well, though it is not as formal as ACF.  With tons of group posts and slack channels to engage with current developers, answers and help with Lucee and realted issues are usually pretty close by.  From a developer perspective, that's great, though from a startup perspective, the unpredictable nature of support can be a turn off.  In the end, though, a good CF developer can find the solution at a cost of additional time.  Then again, support from a major corporation is no guarantee that you'll get your product up and running more quickly either.

Scalability

When it comes to scalability, I'd have to say that Adobe ColdFusion and Lucee Server are on similar levels for a startup.  If you use ACF standard edition, you get the engine and integration with the Apache Tomcat app server right out of the box.  With Lucee, you get the engine and a host of available open source options for the application server at your disposal.  From Apache Tomcat to Wildfly to JBoss, there are plenty of scalable Java app servers you can choose from.  All you have to do is deploy your Lucee WAR file onto your application server and you're good to go.

Future Proofing

As a startup, one of the things you should consider is how your software platform will be working years from now.  One thing to remembers is that changing your platform after it has been doing its job for a couple years is no small task.  If you choose a software solution, particularly a custom solution, you'll need to remember that the cost to switch is far more involved than the cost of the software.  From development time to possible customer disruption, you'll encounter a lot more than you can actually plan for right out of the gate.  So, making sure your software is going to stick around a while is important.  As mentioned before, Adobe ColdFusion has had a release cycle of a couple years, and with that comes support.  At this time, Adobe CF hasn't slowed development of their platform, though they have plenty of room to grow to keep up with the latest developer architecture and buzzwords.  From a startup standpoint, ACF is pretty future proof, at least for the foreseeable future.

Lucee Server, is an open source project.  Unfortunately, Lucee came about as a forked project due to a number of issues with Railo.  For all intents and purposes, Railo is dead, so if you had started with that brand, you'll have had to change to Lucee.  The good news is that Lucee was all Railo under the hood, so transitioning wasn't too bad at all.  The only reason I bring this up is that it may give pause to think that this line of CFML engine was once in trouble.  Today, from a startup standpoint, I don't believe it's on any sort of similar course that should prevent the use of Lucee, but as with any open source project, it'll be something to consider.

In Conclusion

These issues are all ones that have been rattling around in my mind as I consider the options available for my startup.  Both servers have made great strides in the last couple of years to change CFML from the "dying" language is was to a modern platform that is not only comparable to stacks like .net or node.js, but can beat them in many areas, especially as a mature technology. Personally, I've had experience enough with both technologies to know that great effort has been put forward to keep them very compatible, but there are differences that you'll have to test for if you plan to start on one platform and move to the other.  Consequently, that is my startup plan at this point.  Startup with Lucee and move on to the powerful REST and containerization options that Adobe is cooking up for this version and the future ones. 

No comments:

Post a Comment