In particular, I want to highlight a new way (which you may have missed) where Adobe has been sharing info about the new release as a series of blog entries about each feature from CF team members. Some of these have examples (which have been missing sometimes in the past with discussions of new features). That said, and helpful though those are, there's not a single post linking to them all, so I'm offering that here in effect. There are also doc pages about each new feature, and I link to those also.
And there is still more info about the new release which is NOT covered in those blog posts (including pricing, upgrades, licensing, etc.), and I want to add those here.
Some may remember that I had done a series of posts back when CF2016 came out, and I'm condensing what I covered in a couple of those into this one. Hope it's helpful (and I will update it as I learn new information).
For the sake of those who don't want to read "all the blather" and want to just "get to the point", here are the sections below:
- Resources for finding what's new
- So what are the new features in CF2018?
- ColdFusion Performance Monitoring Toolset (PMT)
And though I had planned this all as one post, I have hit a snag where somehow I could not. So I
will have created a part 2 to include these additional sections:
- What about CFBuilder and the API Manager?
- Finding still more about what's new in CF2018
- Other info and resources on CF2018, like pricing, upgrades, licensing, trials, support timeframes
Resources for finding what's new
There are a few resources that introduce CF2018 and what's new, from pages in the docs, to product pages on the Adobe site, to the blog posts, and even a video.
So first up, see the "What's new in ColdFusion (2018 release)" page from the docs, which lists the major (and some minor) new features and which points to other doc pages for more on each of them. I'll list those new features below, with links to BOTH the docs AND the blog posts (since they tend to be different info).
As for ColdFusion Builder 2018, you can find more on its new features in its what's new in CFBuilder 2018. We'll discuss that and its new features later here.
Then about those blog posts, those are on the (relatively new) Adobe CF Community Portal, but there's no single way to link to them all. Some are in a category of cf2018, while others are in a "coldfusion 2018 category. But curiously many of the 20+ posts I found this past week do NOT have and category at all. (Indeed, oddly, some of the posts I found and link to below don't show up even when you click the "blog" link on the right of the portal.)
Among those posts, while there's no order for them, there was one that introduced the release: New ColdFusion Release Adds Performance Monitoring Toolset for Measuring, Monitoring and Managing High-Performing Web Apps. And despite the title, it does go on to list a few other new CF2018 features, not just those related to monitoring and performance. But then, as is often the case, there is still a LOT more to the release than is indicated by the few bullet points there.
There is also a CF2018 release notes document, but as for new features it points to the "what's new" page for more, but it does have some other info that I will share later here.
And if you visit the CF product family pages, you'll see more about each edition (Standard and Enteprise, as well as Builder), and then for each edition a link to more about that edition. Then on that page, a link to "see all features", such as that for CF Standard features and that for CF Enterprise features. Those each list new AND existing features., with the new ones labeled "(new)". And it turns out that THESE product feature pages are where Adobe has added links to the new blog posts (rather than the docs). That's a new approach.
Finally, there is a also a 2-minute video about the new release that some may find helpful.
Only one thing new that's Enterprise-only, it seems
After posting this entry, I got word directly from Rakshith Naresh, the CF Product Manager, confirming that there is just the one thing that is Enterprise-only. At first, I thought (and wrote here) that there was nothing that was Enterprise-only.
Before I list what's new, I want to point out something that's not really been promoted in the various blog posts or even the docs: almost all of what is new in CF2018 is available in both CF Standard and Enterprise. The only thing limited to CF Enterprise only is the new distributed caching feature. (To be clear, CF Standard DOES include ehcaching, as was added in CF9, and that CAN be distributed by configuration of the ehcache.xml file. This new feature refers to new functionality and NEW caching engines that only Enterprise supports. See the discussion of the new features below for more.)
So, perhaps of most importance to many, the new Performance Monitoring toolkit, the auto connector tuning, the code profiler, and the rest are all in both CF Standard AND Enterprise.
This distinction (about what is in Std vs Ent) was not obvious at first. Curiously (sadly, I'd say), there are features listed on the CF 2018 Enterprise "buying guide" page (which lists differences between CF2018 Enterprise and CF2016 Enterprise) which are NOT then listed also on the corresponding CF 2018 Standard "buying guide" page (comparing Standard in CF2018 to 2016), including the REPL, REST Playground, and some other features. That could lead some to wonder if those things are Enterprise-only. Rakshith has said they are not.
There is still another page, that seems most authoritative: the CF Buying Guide page, which just compares CF 2018 Enterprise to CF2018 Standard, DOES indeed list those things as being in BOTH editions, and doesn't list ANYTHING new in 2018 that is Enterprise-only. But sadly it does NOT list (at all) the distributed cache feature (which the Buying Guide for Enterprise does list).
Again, though, Rakshith has confirmed that THAT is the only thing that IS Enterprise-only. (And I hope they may correct the confusion in those documents.)
So what are the new features in CF2018?
So, now let's cover what's new. In listing them, I will extract (where available) a paragraph of introduction from those aforementioned "CF product feature" pages, including also the link to the blog posts that they offered, and then I will also offer the links to the docs offered in the "what's new" page.
First up are the many language enhancements, and then after that things applying more generally to CF and administration.
"Now enjoy all the CFML features you've been asking for. Interact with external systems seamlessly with support for null, preservation of data types, and a more intuitive way of creating Java objects. Slash coding effort by manipulating arrays and queries easily. Format DateTime with a single function and much more." (blog post, which is a broken link for now)
There's a problem here, with the "Read more" link to the blog post offered in the product feature page. It goes to a page which still fails a week later. Perhaps it was a post someone was supposed to offer but did not. The good news is that I will link below to a few more blog posts which appeared and that are NOT linked to from the product feature page. Perhaps someone was to or will create a post pointing to those others about language features. If/when they do, I will update this to point to that.
Here are the other language features, for which there are blog posts or doc links from the what's new page:
- Enhanced Support For New Operator: (blog post, docs)
- Null support in ColdFusion 2018: (blog post, docs)
- Closures in ColdFusion Tags: (blog post, docs)
- Member Functions introduced in ColdFusion (2018 release): (blog post, docs)
- Arrays and String enhancements in ColdFusion 2018: (blog post, and docs on array slicing, typed arrays, datatype preservation, string literals, negative indexes for string functions)
- Abstract Classes and methods: (blog post, docs)
- Covariants, and Final Components/Methods/variables (blog post, docs on covariance, final)
- Default Function In Interface: (blog post, docs)
- Writing CFMs without Semicolons: (blog post, docs)
- Named Parameters in ColdFusion: (blog post, docs)
- StructIsOrdered: (docs)
You may have noticed that the last item there has no link to a blog post. It's the only thing where I couldn't find a corresponding blog post for it.
Asynchronous programming, using Futures
"Boost the performance of your principal application by offloading resource-intensive code segments to a secondary thread. Simply use the RUNASYNC function to execute code without the overhead of managing multiple threads. Once the result is ready to be consumed, you will receive a notification." (Blog post, docs)
CLI and Read-Eval-Print Loop (REPL)
"Work with files, databases, and email, or invoke web services, by executing CFM via the command line. Now execute the admin API from the CLI to script your ColdFusion server settings. Test-drive or learn CFML with REPL support in CLI. " (blog post, docs)
The rest of the enhancements go beyond CFML language enhancements.
"Now implement lockdown of your production server with a single click. All steps in the lockdown guide will be systematically followed, ensuring that security measures are fail-safe and in compliance. Post-lockdown, the system will continue to be monitored for potential breaches." (blog post, docs)
Note that there's no mention there of where to download the Auto Lockdown installer. It's available on the CF Support Center Downloads page.
"Improve performance and enhance scalability by leveraging built-in support for three popular industry engines: JCS, Memcached, and Redis. Also plug in your own caching engine by implementing a simple CFML interface." (blog post, docs)
Related to this also is:
Modern admin UI
"Enjoy a sleek, new responsive UI built on single web page architecture. Carry out all admin tasks faster with easier access to all the ColdFusion settings -- just search for what you need." (blog post)
The enhancements to REST support in CF2018 could be easily missed, if you relied only on the product features page and its mention only of the REST Playground feature (and the blog post on that). There are in fact several enhancements related to rest.
First, here is the info in the REST Playground feature:
"Try out your ColdFusion REST services in the new REST Playground. Use the REST Playground to test, develop, and document web services." (blog post/, docs)
But the docs discuss several more REST-specific enhancements:
- Ability to change CF REST path from "REST": (docs)
- Auto registration of REST applications: (docs)
- Auto refresh of REST CFCs: (docs)
- Language changes related to REST: (docs)
- Support for PATCH verb: (docs)
- Ability to disable "developer profile": (docs)
About that last feature (change), while it was enabled for the sake of it being especially needed due to the implementation of the REST Playground feature, it is one that could be considered a hidden gem, as it could be helpful to any CF user, not just one using the REST Playground. It might easily be missed by someone who had no reason to be looking at the REST enhancements docs.
Now, we with most of the CF2018 enhancements covered, we can move on to the PMT.
ColdFusion Performance Monitoring Toolset (PMT)
Though I didn't list it first above in the listing of new features, the Performance Monitoring Toolset (PMT) is indeed the most substantial change in CF2018, it's comprised of a number of "features" (and blog posts), and so deserving of its own section here. Indeed, the docs also have an entire separate section on the feature set.
The PMT replaces the CF Enterprise Server Monitor which had been introduced in CF8 and which is no longer available in CF2018.
Here first are the topics that were listed in the "product features" page listing of new features, but note that these are followed by still more PMT features below, so perhaps start with the doc link above:
"Flag performance issues and isolate problem areas so that you can initiate corrective action much faster. Know the average response time and throughput across the cluster, or specific to a node, application, or page, in real time. The information will also be automatically archived for historical analysis." (blog post)
That's another curious blog post link: the URL ends up redirecting to Mystery of Health Score Performance Monitoring Toolset, which like the rest here is really just one aspect of the PMT. Again, I wonder if perhaps there was to be a single page listing all the blog posts on the PMT. Until then, I offer this section to gather them up.
"Make sure your database does not act as a drag on application performance. Monitor all database queries, transactions, and query cache, visually, and get pre-determined or customized alerts to pro-actively take preventive or corrective action." (blog post, docs)
External Services Monitor
"Zero in on external factors such as web services, file system, mail server, LDAP, Microsoft SharePoint, or transfer protocols, that could be slowing down application performance. Ensure that all the components of your IT infrastructure are working in sync." (blog post, docs)
"Swiftly identify and resolve complex performance issues buried deep in your code. Get the detailed information required to pinpoint the root cause of bottlenecks, and troubleshoot applications more effectively." (blog post, docs)
Automatic connector tuning
"Ensure that your websites are always up and running. Eliminate 503 Service Unavailable errors by allowing the Performance Monitoring Toolkit to dynamically adjust connector settings based on incoming traffic." (blog post, docs and another docs mention)
One other observation/concern for Adobe: this is listed on the feature pages as "connecter" [sic]. I have shared that and other challenge I've observed with Adobe folks directly.
Finally, like with the CF 2018 language features I'd listed above, I found still more blog posts (on the CF blog) regarding new features within the PMT:
- Installing the PMT (docs), though again like the Lockdown installer, there's no mention in the blog posts of where to download the PMT, which is available in that CF Support Center Downloads page.
- Auto Discovery: (blog post, docs)
- Topology: Bird's eye view of ColdFusion Deployment: (blog post, docs)
- CF Server Section: (blog post)
- Active request monitoring: (docs)
- CF Metrics: (docs)
- Application monitoring (docs)
- Incoming Services: (blog post, docs). Note that "external services" are covered in the list of PMT features above.)
- Thread Dump Analysis: (blog post, docs)
- Connecting the dots using JVM Metrics: (blog post, docs)
- Health Score: (blog post, docs)
- Alerts and Notification: (blog post, docs)
- Monitoring ColdFusion Servers (a post which, despite its title, really focuses on an aspect of the PMT called "global filters"): (blog post)
- Configuring PMT settings(docs)
Between these blog posts and the docs, it's great to see so much being shared about the PMT, to get folks started, especially compared to when the CF Server Monitor (CFSM) came out in CF8. There was very little on it--such that I did a 4-part series of articles on it that remains on the Adobe site. (Oh for that dark hair I had, even if little of it!)
Still, I see from my exploration of the PMT that there is a lot about it that is NOT spelled out clearly in the docs (or blog posts), so perhaps I may in time do some deeper discussion of that.
What about the PMT and FusionReactor?
While I'm here and writing about the topic of the new PMT, I'm sure some readers are wondering what I think about this as compared to FusionReactor, my favorite CF server monitor. That really deserves its own blog post, but I will say a few things.
First, there's no reason someone can't run both FR and the CF PMT, just like they could run both FR and the CFSM on a given CF instance.
And of course, just as the CFSM and FR had similarities and differences (many more in favor of FR, in my opinion), so too will that be with the PMT--and out of the box there are things that each does which the other doesn't, so there will remain a clear place for each for those who prefer certain features. Also, it's very early days. Let's see what people think as they use it. Plenty of people ran and preferred using FR to the CFSM, even though the latter was included in CF.
Finally, we should consider also that only a very small percentage of CF users will move to CF2018 immediately, or even in the next year. So let's see how things shake out regarding the CF PMT, and how it's received and perceived, before making any prognostications about how it will compare to or affect (let alone supplant) FR. :-)
More to come in part 2
Again, that's it for "what's new" but there is more to know about CF2018, and I
will now share the rest in a part 2.
- What about CFBuilder and the API Manager?
- Finding still more about what's new in CF2018
- Other info and resources on CF2018, like pricing, upgrades, licensing, trials, support timeframes
Got a beef?
For all the enthusiasm I may be seeming to show about CF 2018 (ok, sharing of info without showing any editorial antagonism--which counts for being a sycophant these days, it seems), I know that there are some who will take the opposite stance, or at least may be underwhelmed or perhaps even bummed about something new or missing or different. (I've already seen it in the community.) I get it. I'm not saying that that CF2018 (or Adobe or the CF Team) is perfect, not at all.
Like many, I don't always agree with the decisions about the pricing or what features remain Enterprise-only (like the Security Analyzer from CF2016), etc. But honestly, this is not the place to discuss or debate those. I'm just the messenger. :-) Add your comments to the Adobe blog posts.
And some may want to lament that some long-standing feature request or bug still remains unresolved in CF2018. Again I get it, though that's not unique to CF. They have to get the thing out the door at some point, and as they say, you can't please everyone. I leave it to time and community experience to weigh the value and quality of these newly added features.
Indeed, some may want to make hay about the couple of mistakes I point out above, as an excuse to bash Adobe. That would be easy, but I will cut them some slack. Who among us hasn't pushed code or wrote a blog post (or tweet or whatever) that we realized only afterward had a mistake? I'm sure there are different people involved in the process, and anyone along the way could have dropped a ball, and perhaps others didn't notice it yet. I have found that such problems do get resolved in time. Indeed, I share the observations here in case someone there will see them, but also so that in the meantime my readers can know about the potholes before tripping over them (and to save them feeling a need to report them somewhere, though do feel free to do so).
Finally, some will never be satisfied with Adobe or CF. Indeed, they may have left CF (for another CFML engine like Lucee, or another platform entirely). Yet somehow those people seem to crop up in CF community resources, bashing it and basically cast all who "still" use CF as knuckle-headed neanderthals. Kind of like what's going on in the general society, as people take up their sides and cast the others as evil or pitiful wretches. I don't get it. I certainly don't want to be forced to take part in it here.
So bottom line: please don't use my blog comment feature here for snarky comments, or to spew venom and wrath against Adobe or CF or those who use it, or to do nothing but kvetch and complain. You've got the Adobe blog links above. Take your protest march and signs (or torches) there. :-) Seriously, I reserve the right to delete any comments that I think flat ignore my request here. But I always welcome reasonable discussion, even if it may be mixed with concerns.
But really, there's no need here to bring up how you feel (or read) that CF is dying, or why it sucks, or why it's crazy