[Looking for Charlie's main web site?]

What's new in CF2018, part 2 (finding still more info and resources about CF2018)

Note: This blog post is from 2018. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
This is a continuation of my previous blog post, Part 1 about What's new in CF2018.

In that first part, I had covered these topics:

In this part, I will continue with these topics:

Finding still more about what's new in CF2018

There's still more you can learn about CF2018 than the foundational resources I pointed to in the first part.

Bugs fixed, known issues

First up, you should understand any known issues in 2018 as well as what bugs were fixed in 2018 (that may have troubled you in earlier releases.)

Going back to the "what's new in CF2018" document (mentioned in my part 1), that also links to a couple of other lists of info that you should know about:

Those links are in fact to sections within the "CF2018 release notes" page that I did refer to at the outset of the first post. Still, some folks may not read these resources and I wanted you to know of the above, just in case it may be helpful.

Available CF2018 Whitepapers

And there's still more info about the release, besides the blog posts and docs, in the whitepapers, that Adobe comes out with each release, and which have been updated (at least partially) for CF2018.

If you visit the CF product family pages mentioned, such as the one for CF Standard, you will find at the bottom these links:

Sadly, I find that (as of today at least--and a check on Nov 21, 2018) only the Performance whitepaper is updated for 2018. (Update: the Lockdown Guide was indeed updated in August 2018, and now discusses lockdown by way of the AutoLockdown tool, and more.) The next 2 are the same as was offered for CF2016, despite having 2018 in the file name. Maybe that will change in time. And finally the Roadmap does not seem different to that shared last year, but it may still be valuable for some.

What's Deprecated/obsoleted? Migration concerns

As in previous releases, some things are deprecated anew in CF2018 (some things were deprecated/obsoleted in CF2016, either initially or per an updated installer in late 2016). But to be clear, no language features are obsoleted in CF2018, only the CF Enterprise Server Monitor.

For more on what's deprecated/obsoleted in CF2018, as well as CF2016 and earlier, see this page in the docs. This can be valuable as you may plan a migration to CF2018, whether from CF2016 or earlier. (Keep in mind that something obsoleted *IN* CF2016 would remain obsoleted in CF2018, so you need to look at what may have been obsoleted in CF2016 and earlier.)

As you assess that list, do keep in mind that "deprecated" does not mean "it won't work, so don't try to update to CF2018 if you need it". It means "beware that future releases may no longer support it". And they also list things that are perhaps BOTH deprecated AND "unsupported" (no longer supported, meaning no new updates.)

Only something listed as obsoleted (or "removed", per that doc) is actually GONE in CF2018. And again the good news (for most) is that the only thing REMOVED in CF2018 (per that doc) is the CF Server Monitor, which was replaced with the PMT. There seem to be NO language features removed in CF2018.

That said, if you were running CF2016 per the original installer, as opposed to that one from late 2016, then you may well trip over its removal of the things that rely on the YUI toolkit (and portlets). See the bottom of that deprecated features page for more and to "get them back" if needed. (This applies also if moving to CF2018 from CF11 or earlier.)

You'll see that there are a few new things that are listed now as deprecated in CF2018 (that you should move to stop using but still can), as well as some things that are now "unsupported" that were deprecated but supported in earlier releases. (The ones that are "unsupported" may concern some, as it could mean that while the feature may "work" in CF2018, so as not to prevent migration, something about that feature could break in CF2018 or need a security update, but none will be offered--for those things now listed as "unsupported" in 2018.)

I might do a dedicated blog post, to draw this all out, for those who may never notice the page in the docs. As it's early days and that list may change over time, I won't even simple list them here, but do check out that page, more to begin preparing for what may happen in the future, when things listed as "deprecated" in CF2018 may later be "removed", or if some things marked as "deprecated" and "unsupported" (now) may concern you as CF2018 evolves over time.

More new features may be found over time

Before moving on to other topics, I should note that there may well be still more that's "new in 2018" that is NOT indicated in the blog posts I pointed to in part 1, nor that CF product "features" page, nor the docs as linked to from the what's new page.

In fact, about the performance whitepaper mentioned above, I found mention of some additional "changes" in CF 2018 that are not in those other resources (at least that I've seen).

Over time the community (and I) will "suss those out" and create resources on them, and I'll cover them in my traditional "Hidden Gems" talk, which I will be presenting at CF Summit 2018 (where I am also already scheduled to give a one-day workshop, with mine being on troubleshooting common CF problems) and at CF Camp in November.

Other observations about the recent CF blog posts on new features

And one last comment on the blog posts in general, which I mentioned in part 1: as I viewed the "blog" category on the Portal site, I found that several pointed to above did not appear in the "blog" category listing of posts: the ones on the REPL, semicolons, named parameters, and caching, the part 1 on oop, as well as those on the code profiler and DB discovery features of the PMT, etc.

That means someone "browsing" by the "blog" category, even though if you visit each post you will see it clearly shows being categorized as "blog" and having a date aroud July 12 . Odd. Again, I have shared that with Adobe and will remove this comment if that is fixed. (It's a minor point, granted. But I figured I'd point it out for whoever it may help.)

Other info and resources on CF2018, like pricing, upgrades, licensing, trials, support timeframes

Before closing out the discussion of "what's new in CF2018", some will certainly wonder about some other things about the new release that are not mentioned in any of those blog posts, though of course they are discussed elsewhere on the CF product pages.


First up, the pricing: CF 2018 Standard retails for $2499, and Enterprise for $9499. Those familiar with the retail pricing for CF2016 will see that that is an increase, of $1000 for each edition (so a much greater percentage increase in Standard, by almost half). I was surprised as any by the increase. But don't take my word for it: you can see these prices at the bottom of the CF product pages, like that on CF Standard.

Upgrade pricing/path

And what about upgrades pricing (for those not on maintenance)? Well, besides the price shown there, when you click the "buy now" link, you see on the next page a dropdown with both that base ("full license") price and the "license upgrade" price. Those prices are $1249 (Std) and $4749 (Ent). And CFBuilder 2018 upgrades are only $49, while the retail purchase price is $299.

From what versions of CF can you get that upgrade price for CF2018? That page doesn't say. But there was a blog post in May about the "upgrade path" from to CF2018, written by CF Product Manager, Rakshith Naresh, that indicated that only those on CF2016 could buy an upgrade license to CF2018. It also encouraged people to buy CF2016 (if on an earlier version) to be able to get that upgrade price to 2018. I've not heard of any change in that stance, but if anyone knows better, please do let me know. (He also said "For ColdFusion Builder, you will be able to upgrade from 3 or 2016 to 2018.")

But again, as Rakshith clarified in that May blog post, "this [upgrade pricing] does not apply to anyone who has a maintenance contract for ColdFusion with Adobe", by which I read that he means you get the upgrade free if you have CF maintenance.

Bottom line: it appears that if you did not upgrade to CF2016 (and were not paying for maintenance), you will not be able to get an upgrade discount in moving to CF2018. (While that stings, see below for info on reseller discounts if you do end up having to pay for a full license.)

Can I buy CF2016, now that CF2018 has been released?

As in the past, Adobe has stopped selling the previous release as soon as the new release comes out. You can no longer find any reference to buying CF2016 on the pages for buying ColdFusion.

Back in the CF2016 timeframe, they did come out with a blog post explaining how one would then be able to buy CF2016 and "backwards license" it to CF11, and my understanding (from some comments on the CF blog this past week) that the the same situation applies. (Again, see below about the possibility of buying that at a reseller discount, to take the sting out of the purchase price.)

I had also asked how someone wanting CF2016 but buying only one or a couple of licenses would go about buying through the "volume licensing program" discussed in that blog post. I also asked whether someone buying CF2018 from a reseller could "backwards license" it to CF2016.

I got this reply:

You can buy CF2018 from a re-seller and email us the order details at [email protected] to get CF2016 keys. The licenses purchased from adobe.com are treated as 'retail' and are not eligible for backward licensing." [emphasis mine]

So that really seems to favor buying CF from a reseller, not the Adobe site, if you are on CF11 or below and wanting to run CF2016, where you have to buy CF2018 and "backwards-license" it to CF2016.

CF reseller discounts

So as that last comment shows, there can be benefits to buying CF from a reseller: and perhaps the best reason is that CF resellers typically sell CF at a discount compared to Adobe's site.

And the folks who make FusionReactor (Intergral) are just such a CF reseller. They even have a dedicated site for reselling CF,at buy-adobe-software.com, offering Standard or Enterprise, with such discounts, including on upgrade licenses.

And they do already have CF2018 pricing up, with an indication that upgrades are "from 1 version back" (which I understand them to be offering language that Adobe has given them, so it seems to confirm that "upgrade pricing" will be offered for those on CF2016. Again, see the comment in the last section from Adobe on how someone buying CF2018 from a reseller can have it converted )

But they did let me know that Adobe would at least honor any quotes for CF 2016 which had Intergral had offered within 30 days prior to the release (and which fits with what Adobe had said in the blog post above about the "upgrade path".)

How long will CF 2018 (and 2016 and 11) be supported?

As we discuss pricing matters, surely someone will wonder just how long updates will be made to CF2018, as well as 2016 and 11 (public support/updates for CF10 stopped in 2017).

Adobe has previously announced that CF11 support (public updates) will continue into 2019 (with extended support into 2021), with 2016 supported into 2021 (and extended support to 2022) . You can find a table of all Adobe product support dates, here. That doesn't currently list CF 2018, but you can also find the dates listed in the roadmap whitepaper (see above), where it indicates 2018 to be supported to 2023 (and 2025 for extended). It also seems to indicate CF2016 extended support going to 2023, rather than 2022 as shown in the Adobe page just mentioned, but I asked Rakshith and he confirmed that the graph is wrong and will be corrected at some point.


What about licensing? Any changes of significance about things like cores or vm's? There seems no change about that from CF2016. You can read the CF EULA your self. There are only modest differences from the CF2016 one. You can find it, and more about reading the CF EULAs in general, in a a blog post I did (on the CF portal) some months ago, which may still benefit some readers here. There are indeed interesting things to read there about dev and staging vs prod, as well as differences between Standard and Enterprise regarding how many cores or VMs can be supported per license, etc.

Getting the trial

Finally, what about getting get the trial? or finding out still more about CF2018? No change there. That can be done via the product page, which can still be reached by the simple-to-remember url, coldfusion.com. As before, you do need to provide (or create) an Adobe account and login, then you need to fill in a brief form of information about yourself and your company. (That's even more annoying in 2018.)

And on the page shown after that, where you would download CF2018, it then offers also the link to download the PMT and Auto Lockdown installers (for multiple operating systems). But as I mentioned in part 1, those are also available on the CF Support Center Downloads page.

Update: That downloads page also offers links to the API Manager and Silent install files, as was indicated in an Adobe blog post that came out a few days after I posted this entry.

So with all that, take the ball and run with it, checking out CF2018 to take it for a spin.

What about CFBuilder and the API Manager?

Before closing, it's worth noting that separate from CF itself, there are also of course CF Builder 2018 and the CF API Manager, and they have updates also (with the API Manager updates being a bit delayed).

What's new in CFBuilder 2018?

There are indeed changes to CFBuilder, most notably:

  • enhanced support for accessing code on remote systems (via FTP, SFTP, SSH, and more)
  • integration with the new PMT and its profiler
  • support for Eclipse Oxygen (and it comes on that, in the Standalone edition)
  • as well as a switch from PhoneGap to Cordova (for mobile development)

For more, see what's new in CFBuilder 2018.

(Curiously, these new features above are NOT listed at the CFBuilder product page, where indeed the "new features" shown there are not new at all. Hopefully someone will sort that out in time.

It'll be nice if the included FTP support satisfies people who have missed that since it was removed from CFBuilder 3 (when the underlying Aptana plugin was replaced, and only a subset of its functionality was added back). Hopefully this new support will supplant people needing to consider alternatives like the RSE (Remote System Explorer) Eclipse plugin.

Finally, as for CFBuilder 2018, note that there are some "known issues", which are discussed in the doc of that name for CF, discussed above in the section, "Finding still more about what's new in CF2018".

What about the API Manager?

As some know, CF2016 introduced another product called the API Manager. And though not technically written in CFML or relying on ColdFusion, it was released concurrently with CF2016 (and packaged with CF Enterprise).

From what I understand (from a discussion in the prerelease), updates to the API Manager are planned but the new version is not available yet and is due to be released sometimes later, now that CF2018 has been released. I've not heard any more yet, though.

That said, the "CF Enterprise product features" page (which I mentioned in part 1) does indicate 3 features coming in that update: Multitenancy support, Policy management, and Threat protection, including a brief video on those.

Got a beef?

Let me close by repeating what I ended with at the end of the last post (please reread that last section there, before commenting here.)

These posts are about finding what's new in CF2018. I really don't want to see or discuss old, tired arguments, debates, complaints, etc. about CF in general (features, pricing, oustanding bugs, etc.), or about Adobe (how they're managing or marketing CF, or failing to, etc.), or about the CF market (how hard it is to find people, how some people have left CF, how no one you know uses it, etc.) I just don't want to have that re-hashed here. At all. It's not the place. Take such comments to the Adobe blog posts about CF2018 that I pointed to in Part 1.

I do of course welcome your additions, corrections, or encouragement on the topic of the post, finding more about what's new in CF2018.

For more content like this from Charlie Arehart: Need more help with problems?
  • If you may prefer direct help, rather than digging around here/elsewhere or via comments, he can help via his online consulting services
  • See that page for more on how he can help a) over the web, safely and securely, b) usually very quickly, c) teaching you along the way, and d) with satisfaction guaranteed
Given your comment about needing an Adobe account to download a trial, it is probably worth mentioning that anyone using CommandBox can fire up an instance of CF2018 without jumping through any such hoops, simply by typing:

box start cfengine=adobe@2018
Yes, thanks Sean. :-)
Noticed that NULL is now a reserved keyword. In my travels as a freelancer, I have seen this many times:
myVar = 'null';
Sounds like that might blow up now if NULL support is enabled. I do want to test that, but haven't had time yet.
# Posted By Mark Gregory | 7/20/18 3:19 PM
But Mark, you show it as being a string, so that would not conflict. Did you mean something else?
To be clear, the issue about it being now reserved means that if you did THIS it would conflict:


That would create a variable named null, which would conflict with null now being a keyword. You can't have a variable named null. That's clarified in both the the docs page, which says:

> NULL is a reserved keyword. For example, null = "my new null value" is invalid.
> You cannot create variables named null.

And in the blog post:

"Note: Null is a reserved keyword in ColdFusion. You will not be allowed to create a variable named “null” in your application."
I was looking at this page:

Given that historically things like "True" and True evaluated the same, my first instinct was that "NULL" and NULL would be treated the same as well.

Looking again though, I think you are correct that the string NULL doesn't get treated the same, or at least that is the intent, so we may be okay. I will download 2018 at some point and test it.
# Posted By Mark Gregory | 7/20/18 3:33 PM
Yep, and to be clear, that doc page is he one I was quoting from. I'd be willing to bet you will have no trouble. But if you do, and you want to report back here. Do. But then also, see how I linked in the part 1 post to the Adobe blog post on Null. You could share feedback there as well (and more likely have it seen by Adobe). Cheers.
It is important to note that NULL only becomes a reserved word _if you enable the new NULL support feature_.

Otherwise, NULL is treated just like in CF2016 and earlier.

The reason this is an OPTION and is not the default is that Adobe (and various folks who've tested this feature) believe it may break some code.

I think it is a great option for new code (and I would expect framework authors to quickly ensure their code works with CF2018 both with NULL support and -- the default -- without it) but it may cause problems for existing code.

Note: NULL support changes the behavior of how null columns are handled in cfquery and various other language constructs.
Great point, Sean. And FWIW, it can be enabled either globally (in teh CF admin) or on a per-app basis. Again, folks can see the docs for more.
I've run into a couple more reserved words: abstract and function. In my case, the code referring to them was in coldspring, which was embedded in the canvas wiki app (which could have an old version of coldspring).

But I leave this as a heads-up for anyone else who may hit this. In my case, I just changed the code to name the refs to function to function2, and abstract to abstract2. In each case, they were in specific methods in a CFC (which were VARed at the outset of the method), so I just made sure all refs to those vars got renamed in that method.
I have this code to identify how my current running code was called
<cfset callStack = callStackGet()>
<cfloop from="1" to="#ArrayLen(callStack)#" index="i">
<cfset csMethod = callStack[i].Function>

This fails in ColdFusion 2018 because of Adobe's own function member in the return value of callStackGet.
# Posted By Bernhard Döbler | 3/14/19 4:28 PM
Sure, Bernhard. But that would be true of any new function CF would add, right? It's not unique to that function or to CF2018.
Copyright ©2024 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting