Review of the cf.objective 2014 conference by our Technical Director Andrew Dixon.
23/05/2014
Review of the cf.objective 2014 conference by our Technical Director Andrew Dixon.
Andrew Dixon, Technical Director
Share article
The 2014 cf.objective conference, held at the Radisson Blu hotel at the Mall of America, ran from 13th to 16th May and mso.net, Technical Director Andrew Dixon was there along with leading figures from the Coldfusion community world wide.
cf.objective is the largest ColdFusion conference in the world and this year had five tracks covering:
Architecture
Front-End, Mobile and CSS
Javascript
Security, System Administration, and i18n
Testing, Data, Tools, and Automation
As you can see from the above topic tracks, this years conference didn’t solely concentrate on ColdFusion but a more diverse range of web development topics, key to any ColdFusion developers success.
The conference was attended by approximately 300 delegates from all over the world and while the talks I attended were all excellent and provided excellent insight into a range of new topic areas, the biggest bonus of the conference was meeting people from the community and the conversations had in the halls, over breakfast, lunch and dinner and in the hotel bar before too much alcohol had been consumed!
Adobe and Railo
The main two ColdFusion server players, Adobe and Railo, both gave presentations on their latest releases, Adobe ColdFusion 11 and Railo 4.2 respectively, as well as giving some insight into their roadmap for the next major releases, Adobe ColdFusion 12 and Railo 5.
While Railo 4.2 was extremely well received by all, the same cannot be said for Adobe ColdFusion 11. The two companies have taken very different approaches to what type of features to concentrate on, with Railo picking a developer centric route and Adobe aiming clearly at the managers and senior executives that hold the purse strings. Given that cf.objective is a developer centric conference Adobe’s approach was never going to be well received but I was surprised by the level of animosity shown towards them, even from some of their biggest proponents.
The cfclient Issue
The biggest issue for most developers was the addition of a new tag, cfclient. This new tag is Adobe’s attempt to make the development of mobile apps easier for existing CF developers by allowing them to write code in CFML that will then get converted to JavaScript (JS) and used with the Adobe PhoneGap product, which allows for the creation of mobile apps using HTML, CSS and JS. The main reason for objection to this from most developers is that it doesn’t really make any sense. Any web developer worth their salt knows JS inside out and therefore doesn’t need the ability to write their code in CFML and have it converted to JS for them. Also, given that this is for the development of mobile apps, not mobile websites, then why has it been added to a server side product? Even if people did want this functionality, the only place it makes sense to be is on the developers side where they are compiling their mobile application. If Adobe really had to create this functionality, as apparently they were being asked for this feature by their buyers, then it would have made far more sense to have created it as a ColdFusion Builder plugin instead. I’m firmly with the general CFML developer community feeling that this feature in CF11 simply makes CFML look even more like an immature language for people who don’t really know what they are doing, instead of the incredibly powerful, robust and flexible language it really is.
Adobe ColdFusion 12
In the discussion from Adobe about their next major release they gave a list of features that will be included in the next release, these were:
High performing engine – Optimizations – compiler, bytecode and runtime.
Modular Nimble Engine – services as independent modules
Enterprise Class Package Manager – CLI, dependencies, public/private repository
Language revamp – performance, OOP, concurrency, extending lang
Language – improved logging, image manipulation, deploy anywhere WAR
Security
Existing feature enhancement
This list of features was well received by people at the conference, however a lot of people seemed to be concerned about Adobe’s ability to execute this. There was also concern from many about the amount of features in this list and the time scale required to deliver this.
Adobe have publicly stated that they want to move to a more frequent release cycle, however given this list of features, even their current two year release cycle would seem ambitious. Prolific ColdFusion blogger Adam Cameron suggested in a post on his blog that an “11.5” release, including just the modularisation of the CFML engine would be a better idea and help reduce the release cycle.
Railo 5
In the discussion from Railo CEO Gert Frenz he spoke at length about the next major version of Railo and invited comments from the audience around the proposed new features and asked the audience if there were any additional features they would like to see. From Railo’s side an overview of the Railo 5 features were:
Architectural changes
Improved extendibility
Syntax changes
Java interaction
Component enhancement
New keyword: static
Abstract and final components and functions
Inline components
New casters
Iterators
Operators
OSGi load JAR’s dynamically
New way to write extensions that will be convention based and all for auto deployment possible via a manifest file
Lambda functions
Further operators and operator overloading
New cache keyword ‘smart’ for Railo’s forthcoming SmartCache plugin.
Caching of more items including includes, HTTP calls, files, directories, web service calls and more
Railo SmartCache
In addition to all these changes Railo will also be creating a new plugin called SmartCache. This plugin will evaluate your application automatically when in production and suggest data that can be cached, how long it can be cached for, etc… You will then be able to create SmartCache rules based on this analysis which will automatically cache the data for either the time suggested or for however long you decide, all without changing a single line of code. This tool could be invaluable for improving the performance of legacy applications.
Railo Developer Tools
Railo are also working on some developer tools to help you analyse and improve you and your teams code. The first of these tools is Railo CodeMetrix which will be a code analysis tool. The tool will be for use in the development environment or for short period in a production environment as it will add an overhead of approximately 30% to requests. It will log details about each request, including how long each line of code takes to execute, the output from the request, which lines of code are executed and which are not, giving CFML a code coverage tool for the first time. Another feature will be that while viewing the output, you will be able to click on any part of that output and CodeMetrix will show you the exact line of CFML that produced it, which will be extremely helpful for debugging.
The second of these tools is Railo CodeRaven which will be a coding practices enforcement tool. Details of this tool were a little thin on the ground as it is currently in the very early stages of development, however it will allow you to define rules that will cause either an error or log a warning for particular coding practices, for example do not allow “select *” or do not allow the use of cfform, etc…
JavaScript, JavaScript everywhere…
My other main take away from cf.objective was the amount of presentations and general chatter there was around JavaScript. JavaScript has matured massively over the last three years or so and now is not just a small scripting language you can use in the client browser, but a range of client and server side environments that you could, if you so desired, use as your entire stack, as described in Adrian Pomilio’s presentation JavaScript – The Stack. In this presentation Adrian explained how you could use JavaScript for pretty much everything from serving web pages to creating highly interactive websites. He finished his presentation by flying a drone around the room, controlled from a web page using JavaScript on the frontend and JavaScript, via NodeJS, on the backend which sent the signals via wi-fi to the drone.
Until next time…
Given this was the first major conference I have attended outside the UK, I was massively impressed by the standard of the presentations and the friendliness of everyone there. There was so much to take on board in just three days that it was hard work, like they said “if your brain doesn’t hurt, you’re doing it wrong”.
Next years conference will once again be at the Radisson Blu Mall of America and runs from the 12th to 15th May 2015.
If you liked reading this article you may also like: