One of the unique features of ColdFusion is that you can write the same CFML code in two different styles — Tag Syntax (traditional) and CFScript (modern). Both are officially supported by Adobe ColdFusion and Lucee, and both produce the same result.
This flexibility makes ColdFusion unique compared to many other programming languages. Whether you choose tags or script depends on the type of code you're writing and your team's coding style.
By the end of this lesson, you'll understand the differences, know when to use each approach, and be able to read both styles confidently.
Learning Objectives
After completing this lesson, you will be able to:
- Understand what CFScript and Tag Syntax are.
- Write the same code in both styles.
- Know the advantages and disadvantages of each.
- Decide when to use CFScript or Tag Syntax.
- Read existing ColdFusion applications with confidence.
What Is Tag Syntax?
Tag Syntax is the original way of writing ColdFusion code. It uses special tags that begin with cf, such as:
- <cfset>
- <cfoutput>
- <cfif>
- <cfloop>
- <cfquery>
If you've worked with HTML before, tag syntax will feel familiar because it looks very similar.
What Is CFScript?
CFScript is the modern scripting syntax introduced to make ColdFusion look more like languages such as Java, JavaScript, PHP, and C#. Instead of special tags, you write code using variables, functions, braces, and semicolons.
Both Produce the Same Result
Although the syntax is different, the output is identical.
Comparing the Syntax
| Task | Tag Syntax | CFScript |
|---|---|---|
| Create Variable | <cfset age = 25> | age = 25; |
| Display Output | <cfoutput>#age#</cfoutput> | writeOutput(age); |
| If Statement | <cfif> | if(){} |
| Loop | <cfloop> | for(){} |
| Function | <cffunction> | function(){} |
| Component | <cfcomponent> | component {} |
Example: Variables
Example: If Statement
Example: Loop
Mixing HTML with CFML
One reason tag syntax is still popular is that it mixes naturally with HTML.
This is easy to read because the HTML and ColdFusion output are clearly separated.
When Should You Use CFScript?
CFScript is recommended for:
- Business logic
- Functions
- Components (CFC)
- Loops
- Conditions
- Calculations
- REST APIs
- Large applications
Modern ColdFusion applications are primarily written in CFScript because it is cleaner, shorter, and easier to maintain.
When Should You Use Tag Syntax?
Tag Syntax is still useful for:
- HTML templates
- Email templates
- Simple output blocks
- Legacy applications
- Some built-in tags (cfquery, cfmail, cffile, etc.)
Many enterprise applications use both styles together.
Can You Mix Both?
Yes. ColdFusion allows both syntaxes in the same application.
However, avoid mixing both styles unnecessarily inside the same block of logic, as it can make the code harder to read.
Which One Is Faster?
There is no meaningful performance difference between CFScript and Tag Syntax. Both are compiled by the ColdFusion engine into Java bytecode before execution. Choose the style that makes your code easier to read and maintain.
Best Practices
- Prefer CFScript for new development.
- Use Tag Syntax where it improves readability.
- Keep your coding style consistent within a file.
- Don't switch between script and tags without a good reason.
- Follow your team's coding standards.
Common Beginner Mistakes
Forgetting semicolons
name = "John" is missing its semicolon in CFScript — it should be name = "John";
Forgetting <cfoutput>
Writing #name# directly on a tag-syntax page without wrapping it in <cfoutput> won't display the variable's value — it needs to be <cfoutput>#name#</cfoutput>.
Mixing styles excessively
Splitting a single if statement across a <cfscript> block, then a <cfoutput> block, then back into <cfscript> makes the logic hard to follow. Keep related logic together in one style.
Interview Questions
Which syntax is recommended for modern ColdFusion development?
CFScript.
Does CFScript replace Tag Syntax?
No. Both are officially supported and can be used together.
Which syntax is easier for HTML templates?
Tag Syntax.
Which syntax is better for application logic?
CFScript.
Can Adobe ColdFusion and Lucee run both syntaxes?
Yes.
Summary
In this lesson, you learned that ColdFusion supports two ways of writing CFML:
- Tag Syntax, which is HTML-like and ideal for templates.
- CFScript, which is a modern scripting style suited for application logic.
Both produce the same output, and both are fully supported by Adobe ColdFusion and Lucee. For new applications, CFScript is generally recommended, while Tag Syntax remains valuable for templates and many built-in ColdFusion features.
What's Next?
Now that you know how to write ColdFusion code, the next lesson explains where that code belongs — CFM vs. CFC. You'll learn what a .cfm file is, what a .cfc file is, when to use each one, how pages and components work together in real ColdFusion applications, and how modern ColdFusion projects are organized.