ColdFusion Roadshow Notes: Where is ColdFusion Headed?, Rakshith Naresh

April 14, 2017

CF is 21 years young
double-digit growth
between 2014 (cf11) and 2016 (cf2016), we saw “double digit growth” in CF
adding new customers year over year (consistent over the last few years)
these are customers who have NEVER bought CF before

70% of existing dev’s are building new apps with CF
86% external facing apps using CF

not just being used for Intranet apps any more

26% ONLY use ColdFusion

on the flip-side 74% use multiple techs - PHP and .net are the most common other things in use w/ CF

Cloud is gaining traction
most adoption is on AWS followed by Rackspace and Azure

76% Rate ColdFusion as “critical” in their technology stack

What’s coming up in new CF
Aether and Aether +1 (next 2 versions of ColdFusion)

Performance
Security
language
pdf
easier upgrades from 1 version to another
making API manager even stronger

performance -
happens at 3 levels
web server (is my connector tuned?)
app server + database (is my jvm tuned? etc)
cf application code itself (my app’s bad code is the bottle neck.)

connector tuning is an issue
today: it’s very much a “blind game”, try a few params and see what works but dot know if it’s the correct, most optimal set of params for your server
new tool will be smart enough to auto-tune the connector so there is less guessing

server monitor
haven’t been doing much w/ this lately
planning to bring this back and revamp the UI (currently it’s an old Flex app)
will becoming a dashboard to figure out health of apps, prod servers, etc.

code profiler
figure out bottlenecks in code
integrates w/ CF Builder

will continue to improve runtime performance of CF engine itself

supporting a distributed cache
today’s ehcache is not truly distributed
adding “true” support for distributed cache
- query, template, etc, will be truly a distributed setup

more async programming

scure tooling
tool to lock down CF
built-in web application firewall

(all these things are planned for the next TWO versions of CF, not just Aether but Aether + 1)

Object Oriented Programming —
leverage OOP design patters, project CFMLon par with other OOP languages
static compoent/ function
abstract and final
covariant return types and arguments
types
default functions in interfaces
same argument name restriction between implementing CFC and interface
every expression in CFML as an object

Covariance -
base class
any function getname( any id )

can be overridden by

child class
string function getname( numeric id )

cfscript 2.0

info = cfdbinfo( “tables” )

version 1:

cfdeinfo( type=“tables”, name=“info”);

Support for Null keyword!

multithreaded / async programming

var future = new Future( “https://google.com/“, function( args )
{
cfhttp( method=“get”, result=“result”) …
}
return result
}

REST improvements
make REST CFCs load dynamically
do away w/ REST service registration in administrator
loaded dynamically during development so you don’t have to refresh in CF admin
currently lack of error handling is an issue, looking to improve this as well

Next rev will be named ‘CF 2018’

PDFs
suport newer spec
Chrome based powerful HTML to PDF engine

upgrade solutions
looking to do “in place upgrade” ala desktop apps like MS Outlook
that’s the “aim” — can we just refresh the runtime and upgrade it to CF 2018?
can we do this in a cluster setup too?
that’s the end goal
Support for Docker too

API Manager Directions
performance / scalability
security
API design
- data transformation
analytics
- how well are your dev’s engaged w/ your API

SaaS based models
built-in cloud connectors