- What is CFML?
- How CFML works
- Custom tags in CFML
- Write modern ColdFusion with CFScript
- Is Modern ColdFusion a myth or a reality?
- What problems arise with using outdated CF?
- Moving from old code into the modernized CF
- Modernization is not a destination
- What are the main benefits when modernizing your software?
- Comparing Coldfusion and other languages
- Key points to consider when comparing Coldfusion with other languages
- ColdFusion makes your life easier and more productive
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.
This article answers your ColdFusion programming language-related questions. Choosing the right programming language is one of the few decisions you can make that will have a daily impact on your department’s life. The topics we tackle include:
- 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?
Elements such as:
- Data types
- Escape characters
…and many more are what makes CFML so unique. These enable you to create complex applications.
How CFML works
CFML is both a tag-based and a script based language. Most features can be coded either way.
CF developer and experts can definitely appreciate tags. CF tags are pretty much what makes our syntax so much better than other languages.
*Fun Fact: 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.
CF has a wide assortment of Data Output tags, such as Cfdocument. It allows you to create a PDF or Flashpaper output from a block of CFML and HTML text.
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!
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.
What’s more – files aren’t the only thing you can call as a custom tag. Templates can be used as well. If a template is called via custom tag, the attributes used to invoke it are available within an attributes scope. The variables for the calling page then can be found within the caller scope.
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.
Elements of CFML are available on the Adobe Coldfusion website.
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 provides a compact and efficient way to write ColdFusion logic. Typical uses of CFScript include the following:
Simplifying and speeding variable setting
Creating user-defined functions.”
Taken from the Adobe ColdFusion Page.
Here’s an example of the CFScript from Pete Freitag:
WriteOutput(“I like Apples”);
WriteOutput(“I like Oranges”);
WriteOutput(“I like fruit”);
And another example from cfscript:
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.
Yet so many people forget or actively neglect to keep their stuff up to date. Believe it or not, many companies still rely on a version of ColdFusion released in 2012! Why? Sometimes it’s simple forgetfulness. Others underestimate the importance of modernizing.
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.
Non-framework code, spaghetti code, duplicate code, or unused code (Deadwood)… it’s all the same. Efficient maintenance is a thing of the past, and code usefulness is gone.
How do you move from that legacy hell to the heaven of modern CFML with easier maintenance and deployment, fewer bugs, and streamlined code?
To those still holding back, here are a few reasons why modern CFML is heaven compared to legacy.
- Easier Maintenance – Simple and clean code structures help make everyday tasks a breeze.
- 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.
- Fewer Bugs – Finding and fixing bugs will be much easier. You’ll think you found your virtual can of insect spray!
- 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!
We’re now living in a new, more stable era for programming languages. No more of those crazy 90s. Today’s widely-used programming languages, including ColdFusion, will probably be around much longer than their ancestors.
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 is not. 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.
Why modernize in the first place? Modernization will help your business. Plain and simple. One of the first processes to modernization is to the cloud. Not just one cloud either. Studies have shown that smoother operation and deployments of your IT demands come from a hybrid cloud. This hybrid cloud can be made up of multiple public clouds, a private cloud, and possibly a legacy cloud comprised of a company’s legacy estate. This not only allows for smooth operations but also cuts down the cost of maintaining and operating private servers–both legacy and modern.
Aside from cloud computing, Agile methodologies and DevOps are helping modern companies to pick up the pace of their IT change. CIO.com explains DevOps as:
“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.”
Related: Real World Scenarios for Modern CFML
What are the main benefits when modernizing your software?
Conversations about upgrading usually follow the cost-benefit pattern that surrounds all expenditures.
Yet few compare the short term cost (the money you spend on the latest version of ColdFusion) versus the long term savings.
Here’s a table to help:
|Short-term costs||Long-term savings|
|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.
Comparing Coldfusion and other languages
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.
Key points to consider when comparing Coldfusion with other languages
- Syntax ease of use
- Cross platform and mobile development
- PDF and Document Support
- Operating System Limitations
- Object-Oriented Programming
These CVE Details reports specify the number of critical vulnerabilities in comparison with other languages.
- 5 Reasons Why Adobe ColdFusion is Better Than C#
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?
Why would you want to switch anyway?
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:
Your mind as a CIO naturally wanders to the technical aspects of using ColdFusion. You may worry about ColdFusion’s limitations. That’s normal. On a practical basis, your employees will mostly deal with ColdFusion in a direct way using a keyboard and screen. But from a holistic standpoint, using CF affects the more wishy-washy parts of work.
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.
A developer or member of the operations team fearing a switch to CFML is often fearing the unfamiliar. You’ll find, over time, that many of CFML’s naysayers are people who’ve never used the language. Or ditched it in a huff when something else was briefly en vogue. Most CFers have tried the language once, and stuck with it ever since.
Besides, any worries about taking on ColdFusion are silly. It’s one of the easier-to-learn programming languages around!
Related: Learn ColdFusion Fast
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.
ColdFusion makes your life easier and more productive
First, you do get super fast project turn around with Adobe ColdFusion. It specializes in rapid deployment, making your projects and updates a reality in no time. It does this through tools such as Docker, using virtual containers to let you write and test code almost simultaneously.
5 of my favorite features are:
- ColdFusion DevOps and Containers
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.
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.
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.
- Auto Lockdown
- Official Lockdown Guides
- Security Code Analyzer
- Maintain Consistent Server Architecture
- Clean up unused deadwood code
- Use CF Security Tools
- Going cloud
- Flexible Container Cloud Hosting
- Modern Testing Environment
There are multiple advantages in switching to ColdFusion as soon as possible. Here are a few just to get you started.
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.
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
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.
Adobe ColdFusion 2020, in the Cloud (Modernized CF 2020 For the Next Decade)
The progression from physical to virtual is apparent more and more each day. This is how Adobe sees ColdFusion 2020 progressing into a cloud and serverless “Nirvana”. In order to survive and thrive in the programming languages world Adobe ColdFusion 2020 needs to reach 3 goals:
Why is multi-cloud so important to enterprises and CIOs?
Depending on a single Cloud Provider Platform would mean that when the system is down, you're down as well.
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
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.