Adobe ColdFusion Comprehensive Guide (More Powerful, More Modernized, More Alive)

Michaela Light
16 min readOct 11, 2019

Programming in CFML has become cool.

It used to be reserved for the top 1% of the crowd and for the government. Not anymore.

As the CIO of a top company, you have a responsibility to use the top-notch resources available out there. That’s Adobe ColdFusion, without a doubt.

  • What Makes ColdFusion so alive and vibrant?
  • Is ColdFusion secure?
  • Is ColdFusion fast?
  • How is ColdFusion evolving with the times?
  • The benefits of modernizing your ColdFusion
  • I’m thinking about switching to ColdFusion but…
  • How ColdFusion differs from other languages
  • What the future of ColdFusion looks like
  • How will switching to ColdFusion make your life easier and more productive?

What is CFML?

Adobe ColdFusion was designed to be timeless. It is a development platform which uses CFML to build modern web apps quickly. ColdFusion Markup Language (CFML), often known as “a language within a language,” has CFScript, which enables you to use a syntax like JavaScript for many operations.

Elements such as:

…and many more are what makes CFML so unique. These enable you to create complex applications.

How CFML works

CF developer and experts can definitely appreciate tags. CF tags are pretty much what makes our syntax so much better than other languages.

Did you know that by definition CFML isn’t a true markup language? It’s actually more of a scripting language! Some consider ColdFusion to be a kind of “glue language”-a subset of scripting languages that helps to connect various software components.

But that’s not to say CFML and markup languages don’t have their similarities.

Tags are used to tell the CF server that it “must process the information.” They have the same format as HTML tags and are enclosed in angle brackets with zero or more named attributes.

Hello #YourName#!

What about CF’s debugging tags? Tags such as cfdump can be extremely beneficial. This particular tag allows you to get the element, variables, and values of most types of ColdFusion objects.

And these are just a few of the many. But that’s not all!

Custom tags in CFML

Built-in tags are great but what if you could create and use custom tags? Well, with ColdFusion, you can!

Custom tags are an awesome language extension provided with CF. These tags work by being regular CF files that can be invoked just like tags. The additional advantage here is that you can also use all built-in tags.

Normally, these custom tags are affixed with the standard cf prefix as the native tags. This allows for an easy introduction into your coding. Since some of you don’t know how to code in Java, using CFML is not a challenge. Tags that are written in CFML do not require you to know Java programming language.

So, in summary:

  • Tags are easy to use.
  • Tags offer TONS of functionality.
  • CF has about 100 built-in tags, each with their own function. For example, Cfcodument creates a PDF. When deployed and combined correctly, they make coding much faster, more efficient, and cleaner.

Write modern ColdFusion with CFScript

Although you can use both Tag and CFScript, keep in mind at all times to stay consistent and stick to one.

CFScript is a language within a language. It is a scripting language that is like JavaScript but is simpler to use. Also, unlike JavaScript, CFScript only runs on the ColdFusion server; it does not run on the client system. CFScript code can use all the ColdFusion functions and expressions, and has access to all ColdFusion variables that are available within its scope.

CFScript provides a compact and efficient way to write ColdFusion logic. Typical uses of CFScript include the following: Simplifying and speeding variable setting Building compact JavaScript-like flow control structures

Here’s an example of the CFScript from Pete Freitag :

case “apple”:

case “orange”:

Is Modern ColdFusion a myth or a reality?

Modernizing is crucial. In every business, sports, and in life in general. It’s only common sense that it should be normal for ColdFusion users as well, but it’s not. I still come across numerous problems in various companies, where CIOs don’t take into consideration that they’re in the far, far away legacy land, where bugs and hackers thrive the most.

When I ask them why, they all give the same reason: “It’s expensive.” But they’re missing out on a lot of improvements.

ColdFusion is constantly evolving to include a host of new security tools and modernized features. These improvements keep pace with and often lead the rest of the tech world.

It’d make sense to stick with ColdFusion. Every new version is a renewal of the return on investment first made when a company bought CF. Moving over to a completely different language would cost much more than modernizing.

What problems arise with using outdated CF?

Keeping your applications and hardware up to date seems like a no-brainer. In some cases, the whole process is automated-running in the background whenever necessary.

A lot of the time, firms or executives feel burdened by the cost of an upgrade, thinking what they already have is good enough. Well, with ColdFusion, it’s worth shelling out the extra cash.

By neglecting to modernize, you:

  • Miss out on new tools and innovations which keep CFML ahead of other languages.
  • Leave your company vulnerable to security problems which are fixed with new updates. Most CF users who are hacked admit it’s because they used software which wasn’t patched or had vulnerable code, according to the State of the CF Union 2019 .
  • Add to the technical debt your company has to overcome, as old code piles on until they become a tangled mess.

People who neglect to update their ColdFusion face all of these headaches… and then blame the platform! It’s like neglecting to maintain your car then blaming the vehicle when it inevitably breaks down.

If you ever hear the misguided notion that ColdFusion is old, outdated, or dying, you may be speaking to someone who hasn’t upgraded their CF in years.

Moving from old code into the modernized CF

Everyone who has seen the hell of old legacy code in ColdFusion applications will know what I am talking about.

How do you move from that legacy hell to the heaven of modern CFML with easier maintenance and deployment, fewer bugs, and streamlined code?

  1. Easier Maintenance — Simple and clean code structures help make everyday tasks a breeze.
  2. Rapid Deployment — Everyone wants to deploy changes and make future requirement changes to your application quickly and easily. When your code is solid, nothing is keeping you from making quick work of your tasks.
  3. Fewer Bugs — Finding and fixing bugs will be much easier. You’ll think you found your virtual can of insect spray!
  4. Modern, Responsive Front-End — It works on both mobile and desktop browsers seamlessly.

I am going to assume that by now it is obsolete to talk further about why you should do this.

The benefits you will receive in ease of maintenance and deployment, along with fewer bugs will be refreshing. The money you save in the long run will more than make up for the little you spend upgrading your applications. You will wonder why you didn’t make the change long ago!

Picking the right language from the beginning has become more critical than ever. When choosing the best language for yourself, ask yourself these questions:

  • Is it modern?
  • Does it evolve with the times?
  • Does it get consistently updated?
  • Will you get the benefit of a supportive community?
  • Is it secure?

With ColdFusion, the answer to all those questions is an easy “yes!”

Modernization is not a destination

To explain IT modernization, you need to understand what IT modernization Modernization is not a destination. It is not an achievable concrete goal. IT modernization is a never-ending journey.

Modernization is more than just updating your servers and versions-although those are important to do. It involves changes in your technologies, employees, processes, talents, and strategies. There are many reasons why companies don’t modernize. Lack of resources. The time required for new training. Yet, the number one reason CIOs and companies don’t modernize is fear of change.

Does that mean you shouldn’t take the first step though? Hell no.

Software and IT technologies will not slow down for you or your business. Do not slow down for them either.

Most people, in general, choose to stay in their comfort zones. Why budge if what you have is still working? Besides, learning something new without knowing the benefits can be off-putting. But it’s worth investigating. ColdFusion Conferences, such as the 2018 CF Summit or CF Camp in Munich are great opportunities to learn more about the modernization journey you should take with your CFML.

“DevOps uses cross-functional teams aligned by business services. The teams are responsible for the entire stack that was delivered in shared services. They are persistent teams, staying with the firm throughout its transformation journey, rather than moving on to other projects. DevOps teams are also located in close proximity with the business teams to enhance collaboration and increase speed. Unlike shared services units, which focus on low costs per function, DevOps focuses on business impact at speed. Consequently, as companies take the DevOps journey, they use dramatically fewer resources to deliver services.”

What are the main benefits when modernizing your software?

Conversations about upgrading usually follow the cost-benefit pattern that surrounds all expenditures.

Here’s a table to help:

The latest version of ColdFusion, about $2,500 — $9,500 depending on what edition you purchase

Full-on support from Adobe (upon request)

A couple of minor , relatively painless adjustments to existing codes

The latest patches and security updates, so your company doesn’t worry about hacks

Time spent letting staff learn all of CF’s new features and tricks

Less legacy code and technical debt

Latest solutions and tools which your team would otherwise have to write themselves

Less time and money spent on maintaining old, outdated code

Performance and maintenance features which shortens the amount of time you spend tuning your code

These are just some of the pros and cons of upgrading to the latest version of ColdFusion.

Ditching ColdFusion and switching to another programming language won’t help. Applications don’t switch over to another programming language easily.

By my estimates, a company could spend close to six-digits, perhaps even crossing the $1 million threshold, if it decided to switch all several years-worth of code from ColdFusion to another language.

Some Adobe ColdFusion facts and stats

When compared to other programming languages, CF comes across as a veritable digital fortress. With amazing built-in security capabilities and experts such as Freitag leading the charge, ColdFusion will continue to remain second-to-none in this area.

These CVE Details reports specify the number of critical vulnerabilities in comparison with other languages.

It’s funny how a language as strong and secure as ColdFusion gets pushed aside in favor of other languages. What do you think the number one cause of this phenomenon is?

You’re considering the switch to CF but are wondering, “What will I gain?” Your company may be using PHP or Java with just-fine results. Why bother changing?

Your IT department could also work better, and ColdFusion allows that in several ways.

Switching an entire programming language-the essential architecture-of your company’s app is a big shift. Its demands a sea change in your team’s common language, mindset, and workflow. Also, it’s something of a pain if done wrong.

When choosing a programming language for your next project, consider these factors:

ColdFusion is still alive!

Don’t mind the naysayers. They’re hung up on the few misusers and abusers of ColdFusion, who blame the programming language for their own negligence. They either accumulate too much technical debt and decide it’s better to scrap everything. Or they do not take advantage of containers to test their code before letting it out into the wild. But the stragglers may be the worst.

A lot of developers and CIOs, for various reasons, do not upgrade to newer versions and miss out on improvements. They’re letting zombified ColdFusion programming language wander the tech world, dragging down the perception of ColdFusion, and leaving it open to vulnerabilities fixed in later updates.

Coldfusion is the perfect tool for creating a dynamic website, thus creating the best advantage for its users. It’s considered an innovative tool that can provide maximum results for clients; whether it’s a small business or a huge company.

Adobe Coldfusion can assure a higher value and meet any performance demands as any other programming language out there. The fact that the majority of US Federal services still use ColdFusion as well as Pepsico, BMW, Apple, and other Fortune 500 companies internally, tells a lot.

5 of my favorite features are:

  1. Maintenance
  2. Scalability
  3. Security
  4. Reliability
  5. RAD
  6. ColdFusion DevOps and Containers

Maintenance

CF is less prone to bugs. Monitoring tools built into CF can detect failures, performance, and security issues before they’re released out “into the wild.” It’s a virtually self-correcting code.

Scalability

By growing your business, there are some obstacles on the way. Adobe ColdFusion won’t be one of them. Performance tuning and load testing at regular intervals will make sure your app and servers can handle that growth, letting your product updates and new ideas quickly become money-makers.

Leading an IT operation is uniquely problematic: too often, you can fall victim to your own success. And your popularity could lead to your downfall.
It seems ideal: being so popular, people are breaking down doors to get to your service or app. Yet high demand for your outrageously awesome product or service causes a spike in traffic and can crash the whole application.
ColdFusion can deal with your popularity. (Don’t worry, it won’t get jealous.)
Scaling your app and server infrastructure to handle your popularity is far easier with ColdFusion. The CF programming language’s ease and ability to evolve means your IT department can scale up an app or database faster, and with fewer errors. By developing good habits within your IT department, similar to the reliability tips listed above, you can make sure your company’s growth and popularity won’t cost it a pretty penny.

Security

Keeping a tight grip on security measures is pivotal to keeping CF alive. Nobody wants to use a very insecure development platform. With the modernization of Adobe ColdFusion, we are witnessing some major improvements in many fields. Security is just one of many. Auto Lockdown features and containerization are two examples out of many.

Security concerns are an important part of any programming language. No platform is 100% secure. But there are many tools and best practices out there to help you be as secure as possible.

With the release of ColdFusion 2018 came a new wave of security improvements.

  1. Auto Lockdown
  2. Official Lockdown Guides
  3. Security Code Analyzer
  4. Maintain Consistent Server Architecture
  5. Clean up unused deadwood code
  6. Use CF Security Tools
  7. Reliability
  8. Scalability
  9. Containerization
  10. Going cloud
  11. Flexible Container Cloud Hosting
  12. Modern Testing Environment

Related: Top 5 Security Issues Solved with Adobe ColdFusion 2018

There are multiple advantages in switching to ColdFusion as soon as possible. Here are a few just to get you started.

Reliability

It’s every CIOs worst nightmare: the unexpected. When we talk about reliability, we’re really saying, “No surprises, please!”
This goes beyond the usual daily catastrophes. Like the key employee who gets poached by a competitor. Or the new orders from up high. Cutbacks, expansions, reorganizations. With all the headaches you face, at least a line of code should work as expected. Right?
Reliability is the cornerstone for all of ColdFusion’s features. One of its biggest draws is ensuring it can handle much of what you’ll throw at it. CF includes many tools, with error handling stops, clustering, and regular updates, which prevents your code from toppling onto itself. These stopgaps ensure your company’s ambitions won’t get the best of you. ColdFusion will let you push it to the max, but will also warn you when you’re overdoing it.
These tools, combined with basic IT common sense such as defensive coding, load testing, and beefed up server specs will make sure your ColdFusion server withstands long, tough stretches of high demand. So you can worry about more important things. Like what to do when your app is more popular than expected.

RAD

The time it takes to transform an idea into a working, testable beta version is vital to any IT operation’s success. The difference between six weeks and six months for an application to emerge could mean the difference between your service coming to market, or a competitor jumping ahead of you in line. But don’t worry, ColdFusion’s got your back.

Rapid Application Development, or RAD, is one of ColdFusion’s key strengths. CF uses elegant, easy-to-learn code to help a developer turn an idea into reality faster than he or she could with other languages. Readymade lines of code mean your developers won’t waste precious time creating something already exists. This means fewer keystrokes wasted on commonly-used code.

Other languages require multiple lines of coding made from scratch. It’s like a plumber having to forge his own wrench. CFML comes ready-to-use like a well-supplied toolbox. It uses simple tags to trigger existing lines of code for common commands. Programming in CFML means you write less code, yet achieve the same result.
Don’t confuse this as a cookie-cutter approach, though! ColdFusion still has all the room and freedom for customization you have with any other code. Think of it more like an autocomplete tool built into a programming language. You don’t necessarily have to use the suggestions provided, but they can make life easier.
This RAD approach makes developing your app quicker and easier. From inception to development to testing. With ColdFusion, you’ll be releasing your app out into the wild much sooner. No other programming language — not Java or PHP — can beat it.

ColdFusion DevOps and Containers

Let’s say you’ve got a vision for an app, and two disparate teams — development and operations — set on making it a reality. The old fashioned method would be to send each team to work in a vacuum, then they’d come together and turn the two resulting halves of the project into a Frankenstein’s monster of an app. It’d work, sure. But, boy was it ugly.
Wait, there’s a better way. At least with ColdFusion. The DevOps model will become a standard within the IT industry, and Adobe ColdFusion fits it like a well-tailored suit.
This model allows development and operations teams to work in tandem when creating a new app. ColdFusion essentially has labs where lines of code can be tested under real-world conditions. Sounds pretty neat, right? It’s called “containerization.”
Containerization helps speed along the development process by running your application in virtual “containers,” where you can watch bits and pieces behave on their own and interact with others. Tweaks can be made quickly, and bugs show their ugly faces in an environment where they can be squashed and discarded well away from your customers. It’s a perfect way to get all the tougher, rougher parts of app development done in a safe environment. Besides, you want to find the weaknesses in your code before your users do, right?

One of the best parts about using ColdFusion (or Lucee for that matter) is the ease of use. CFML is a language that is capable of many things, but it’s simple to use. Ever stop and wonder why?

It’s because of a state-of-the-art tools and third-party support integration. They are:

  • Containerization Tools
  • Source Control Tools
  • Benefits of Using Git
  • Code Tools and IDEs
  • Code Reuse
  • Monitoring Tools
  • Caching Solutions
  • Build REST APIs and Microservices
  • ColdBox
  • CommandBox

I wrote in-depth reviews of these tools in another blog post and you can read it here.

How do I get my hands on the latest version of Adobe ColdFusion?

Adobe ColdFusion has announced the 2020 version. For now, CF 2018 is the most updated version and something you need to get ASAP, if you haven’t already.

Meet the Adobe ColdFusion family (2018 release)

You get to choose which one works best for you.

Adobe ColdFusion Enterprise and Adobe ColdFusion Standard. Make sure to decide based on functionality and long-term costs planing, instead of only calculating “what’s it gonna cost me to buy it?”.

There’s a wide range of options that Adobe offers in ColdFusion Enterprise only, and not in the Standard edition.

Follow the link to Adobe ColdFusion Family Bying Guide for the full specification

How do I get my Adobe ColdFusion?

Adobe ColdFusion Standard costs US$2,499.00 per full license.

Follow this link to purchase yours.

Adobe ColdFusion Enterprise Edition costs US$9,499.00 per full license.

Follow this link to purchase yours

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

ColdFusion Alive Best Practices Checklist

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.

Originally published at https://teratech.com on October 11, 2019.

--

--

Michaela Light

ColdFusion development, security and optimization. CEO at TeraTech. Host of CF Alive podcast.