It uses AIR 3.0 and takes advantage of new features like StageVideo in combination with OSMF to enable HD video playback, StageText, captive runtime, and StageWebView for the social media integration. And to boot, Ben Forta presented it during the MAX 2011 keynote.

I’ve spoken a few times about my quest for a simpler toolchain, but to keep current with new technologies at the same time. This is not language face-off, but a reflection on where the industry is headed and the new problems we need to solve in the near future.

ColdFusion, my good friend

I’ve been working with ColdFusion (CFML) as my primary development platform now for about 10 years, and I’ve helped to build many successful sites/engines using CFML like Meno Yearbooks & Raileasy.

I also purposely say CFML now and not ColdFusion since the offering from Railo is frankly just amazing and I now find myself biased towards using Railo above ColdFusion when choosing a platform lately. I also find myself wondering if ColdFusion will become “Apache ColdFusion” in a few years time as awaits of Flex (for better or worse).

And of the alternatives?

I tried to get into Ruby on Rails, but I just couldn’t. I really liked the idea, but really disliked the syntax. Python was great, but just like Ruby it didn’t really solve any problems that I couldn’t solve at least or almost as fast in ColdFusion. I also had the displeasure recently of playing with Perl and Catalyst, which instantly reminded me why I stopped using Perl back in ’97.

However this week I have stumbled upon Node.js, and am having a great time with it. It is still young I grant you, but there is something very special about the problems that Node can solve that holds great promise. Just like Rails finally brought Ruby into the limelight, I think that Node is upon the same cusp (I played with Ruby with a colleague @ Tiscali back in 2001 & and it was novel then, but “had a funny syntax”).

Application servers are fat

This brings me to the thing that has really been bugging me the most about application servers like ColdFusion over this last year. They were great for what they did and solved massive problems that we faced in web development around 2000. We needed to build mostly table based, functional websites without being able to assume Javascript would be 100% available. We had the browser wars where we had to design cross platform and the server did the bulk of the markup.

But fast forward to today and we have a different environment. Everyone is toeing the HTML5/CSS3/Javascript line, which Adobe conceded in such spectacular fashion recently. Hell, even Microsoft have thrown in the towel on Silverlight. The arms race now is about the best HTML5 support and fastest Javascript engine, it isn’t about markup any longer it is mainly about pumping data around.

It’s all about the data baby

ColdFusion can quite competently act as a middleware for data centric apps, but if we are honest it’s main forte is building HTML sites. But the fact is that we are moving more and more towards a point where the app server sends a initial large HTML payload and then thereafter sending smaller JSON/AJAX packets around or loading partials directly into DIVs with JQuery and the like.

ColdFusion is great, but I am thinking more and more lately that it is totally overkill for what I am trying to do. That is to build optimized fast mobile applications that suck lots of small amounts of information down, be that JSON or HTML.

To enable the rich experiences that our clients are demanding now we will inevitably (especially on the mobile side) go down the thin client type approach rather than HTML heavy payloads.

I think that Node.js will fit the bill of being a light and nimble middleware for data.
ColdFusion was the middleware that got the data from the database, rendered HTML and threw it at the browser. Node just throws the data, the browser can do the rest.

Yay, another silver bullet

Well of course it goes without saying that Node isn’t suitable for everything, but I do think that it helps solve a problem that we will encounter more and more in our professional lives.

Yesterday, the jQuery Mobile Team announced the official release of jQuery Mobile 1.0.

I have been working with jQuery Mobile since it hit beta, and in the time since it has certainly evolved into a mature platform for Mobile Web Applications. It will certainly be in my toolbox and is easier to use than Sencha Touch for smaller projects.

Given the continued rapid maturation of HTML5, I was very interested in seeing what was going to be said about Adobes direction with Flash as a platform at MAX2011. In my view the overriding message from watching the keynotes was that Flash was being put out to pasture and being retargeted in two ways:

Focus on 3D graphics and hardware acceleration mainly for gaming.

Mobile, mobile, mobile – AIR with native extensions.

Therefore I expected that what could be expected was more tooling, and the continued extension of AIR but mostly on the mobile packaging side.

What I did not expect was for Adobe to slash staff so aggressively and shut down the Flash mobile development. I didn’t expect this, but for Adobe this is the right move although many will not see it that way.

Adobe has been overwhelmingly a creative tool company and not really a software language/programming company. When Adobe acquired Macromedia it was of little doubt that one of the prime motivators was getting their hands on Flash, however Flash is now getting to the end of its lifecycle and although still 100% relevant today, it will become less so from now on in. This is simply because HTML5 and the frameworks around it are finally gaining maturity and one final important fact: “Mobile is where the money is now”.

Mobile web is now a massive growth market, and there is a simple truth that almost all modern handsets support a great deal of HTML5 plus have a good & fast Javascript engine, however Flash is currently available on no more than 50% of handsets, and that figure was not going to be going up. Sure you can put a AIR app on almost every mobile handset as a native app, but a native app is not a website/app so that advantage (type in the URL and viola) is lost.

The ultimate demise of Flash on mobile was guaranteed when Microsoft made their Windows 8 Developer Preview available and stated that their tablet OS would not support Flash or indeed any plugins. This would essentially leave Flash mobile working on only Android and Playbook, which would mean that Flash on mobile devices would likely never achieve over 50% market penetration. RIM have stated that they will continue to build their own version of Flash player for their Playbook tablet browser (and presumably Blackberry handsets), but frankly RIM are in the midst of their own death spiral and I don’t expect them to last long now.

So, what to conclude?
Essentially this is a very unpopular choice, but one that is required for the long term health of Adobe. Flash battled it out with Microsofts Silverlight, but in the long run they are both becoming surplus to requirements. Flash for video and DRM’d content will continue for many years to come, but Flash my dear friend, your days are now numbered.

But, this then begs the question – “What about Flex & ColdFusion?”. This is good question, and my feeling is that Adobe will continue development for the time being, I think it will take resources away from programming/development. ColdFusion future is assured via projects like Railo and BlueDragon, but as for Flex – I hope it sticks around, but I’m having a hard time believing it.