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