Nitin has posted 391 posts at DZone. View Full User Profile

Adam Lehman on the "ColdFusion Renaissance"

02.08.2010
| 20508 views |
  • submit to reddit

In this interview, recorded at CFinNC 2009, Dan Wilson speaks with ColdFusion Product Manager Adam Lehman on the rebirth of the ColdFusion platform. Evolving from its early days as a C++ product, to becoming a fully Java-based implementation for the enterprise, ColdFusion today commands a growing community of 800,000 developers. The language-become-platform is being touted by industry pundits not only as a productivity tool for Java but as a viable, standalone solution for building and integrating Rich Internet Applications within an SOA environment. 

A complete transcription of the interview has been provided below.

Dan Wilson:  Welcome folks, we are live at the CF in NC Conference. My name is Dan Wilson. I'll be your video host today. We're sitting with Adam Lehman, ColdFusion Product Manager, who's been very busy for the last few months getting ColdFusion 9 out the door. ColdFusion 9 released a couple of weeks ago at Adobe MAX. We're all very excited. Welcome, Adam.

Adam Lehman:  Thanks for having me.

Dan:  Tell us a little bit about yourself.

Adam:  So I'm the Product Manager of ColdFusion at Adobe. Also the Product Manager for a new product that we're working on called ColdFusion Builder. So, anything CF or ColdFusion related, I'm the guy. I've been with Adobe for about three years now. I started out as a CF Developer, well over a decade ago and ended up getting pulled into the "Mother ship" and being given the reigns of the server.

Dan:  It's a big honor, indeed.

Adam:  It is and lots of responsibility.

Dan:  I have to say, looking at your shirt, the most common‑asked question [appears to be]: "Is ColdFusion dead?"

Adam:  So ColdFusion is definitely not dead. If you need further proof of that, you can check out isColdFusiondead.com, where we have a lot of detailed information about that question. But no, it's a funny thing that we hear, you know, every couple of years ColdFusion shifted from companies, from starting at Allaire to Macromedia to Adobe and any time that sort of happens, there's always this "What's going to happen?" sort of thing.

But no, thankfully Adobe is really, really helping ColdFusion and it's really starting to blossom, what we're seeing is what we're calling like a "ColdFusion Renaissance." In the last few years, the ColdFusion community has almost tripled in size, going from about 250,000 developers about four or five years ago to about 800,000 developers today.

We're anticipating even getting close to a million developers worldwide, hopefully maybe by sometime next year. We've really increased how many companies are using ColdFusion, as well. So 75 of the top Fortune 100 companies are running ColdFusion. About 12,000 companies worldwide have ColdFusion installed for internal applications and public websites development.

And then finally Adobe's kind of reinvesting a lot now. As I mentioned earlier, we have a new product called ColdFusion Builder: an IDE specifically designed for ColdFusion development, but also for HTML, AJAX. The idea is that it will complement our Flash Builder product for building clients, that will enrich their apps with a nice server‑side tool. I mean you could put them both together in an Eclipse environment.

There's a lot going on with ColdFusion actually, right now but it's not just taking our word for it, you can talk to a lot of the analysts out there who are now recommending ColdFusion or some of the blog reports that are out there, too.

Dan:  So when you say "analysts" that sounds a little bit vague, forgive me for saying. Can you be more specific like: who are these analysts? Who's looking at ColdFusion?

Adam:  Actually, I've been pretty busy these last couple of weeks and over the last year talking to just such analysts in general about CF and making sure that they're aware of what's been going on with CF. Since we are an older product that's been around for, going on 14 years now, we're kind of being seen as a legacy, just because you've been around for so long. And so we've been talking to a lot of analysts from Adobe's perspective, about just updating them on what CF does, what sorts of problems it solves.

We've gotten a lot of good reports. Gartner recently posted a new product note on ColdFusion, basically recommending ColdFusion development in large enterprises, especially if you're looking for sort of dynamic languages in the JVM. ColdFusion has been doing that for about seven to eight years now.

Dan: That's a pretty big shift from earlier Gartner recommendations!

Adam:  It's true. Because you know, ColdFusion's gone through a lot of different phases. From being a C++ product to now being a fully‑implemented Java‑based product and how it fits into the enterprise. From starting into web scripting to now building more SOA style models, ColdFusion's changed quite a bit and so have opinions.

Dan:  So you just talked about dynamic language and the JVM. Can you say more about that? Isn't that a new thing people are doing these days?

Adam:  Yeah, so about six or seven years ago we were probably made fun of most of the time for being a dynamic language and loosely‑typed. Now it seems to be kind of "all the rage." I guess it's kind of helping us at the same time.

So ColdFusion, I think, might have been one of the original dynamically‑typed JVM's before it was very easy and built into the JVM to do. But the same sort of things that JRuby or Groovy are going after, ColdFusion's been doing for quite a long time.

Dan:  Interesting. So when I first looked at ColdFusion it was a way to script web pages. So really, you had what amounts to conditional blocks to build HTML pages. Is ColdFusion just another way to write an IF statement?

Adam:  So that's true, right? So ColdFusion was the first viable web application platform on the market, right there with CGI and Perl and then there was this giant leap forward with ColdFusion. Not many people realize this, Microsoft even tried to buy ColdFusion from Allaire back then to call it ASP.

Dan:  That's interesting.

Adam:  So things like ASP, JSP, PHP to a certain extent were actually heavily based off of CF but it was all based off that idea of generating web pages, you know, generating complex HTML. And ColdFusion is really key at that. It's really strong in sort of building that but now we've kind of moved, in the last four or five years, more towards sort of an SOA architecture with rich internet applications.

Whether we're building Flex applications or AJAX applications, ColdFusion is now really, really set up really easily to expose everything as a SOAP‑based web service or a resin‑based web service, open up everything through AMF, talk to different protocols, even through the Acrobat player, and stuff like that, so.

ColdFusion has really kind of expanded out there. It's not just about the language which is CFML, which is that idea of like we take this rapid application development language and we condense it down to Java bytecode, but it's also about all of the API's that ColdFusion offers.

Dan:  API's?

Adam:  API's? Different tags? There's about, I'd say 40 to 50 different third party libraries that go into making ColdFusion. So whether it's talking about Hibernate or Ehcache or DataDirect drivers, there's a lot of things that go into ColdFusion that you're just not going to find in other platforms because it's more than just a language. It's also a server, and a collection of these utilities.

Dan:  Yeah, you talked about tags, so most of us who looked at ColdFusion at one point in time coded with tags, which is really not what we're used to. Is that the way to go? Is ColdFusion all about tags?

Adam:  Well so, yeah, so tags are great when you're generating HTML and really that's where the language came from, because that's what we're doing. But as we start to build a little bit more modern applications, we want to write fully in script. So there's always been CF script as part of ColdFusion but now with ColdFusion nine we've really expanded CF script, so if you just want to write pure script all the time, so whether you're creating all of your objects or creating your service layer, you can do that purely in script.

Our script looks very, very similar to Java. It was heavily‑based off of Java but again, removing all the types. So you could almost say, it's somewhere in between Java and Groovy as far as the language goes.

Dan:  So Java without the types, dynamic language on the JVM. You guys were there first. If I can paraphrase, you're saying ColdFusion was the daddy of the mack daddy.

Adam:  Yeah. I mean, you could kind of say that for a lot of things in the web technology.

Dan:  And it's not dead.

Adam:  Yeah. We tend to introduce things in CF a little before their time, things like Flash Remoting and when people thought dynamic Flash‑based applications was crazy in 2001, a couple of years later, now it's like the next modern wave of the Internet. One of, I guess, the downsides of being ahead of the time is you kind of have to wait for everyone to catch up for us.

Dan:  So Adobe also has large investments in Flash and the new AIR technology. Where does ColdFusion fit into that scheme?

Adam:  So, actually, we're really well‑aligned. In fact, when we talk about the explosion of new developers that we're seeing, we see a lot of it coming from the rich internet application side, because ColdFusion has been kind of built specifically with RIAs in mind the last few years.

And so, we do a lot of integration with the Flash Player, obviously. So we have Flash Remoting built into ColdFusion. It's incredibly fast, probably faster than any of the other server‑side development languages you'll find but of course, we're cheating. We have control over the client, the protocol and the server.

Dan:  Right.

Adam:  So we've got integrated Flash Remoting. We've got some things that work with AIR to allow you to take your data online and off‑line, synchronize it pretty easily. But it's not just Flash technologies, too. What we do for Flex we also want to do for Ajax, because, obviously, ColdFusion developers are building all sorts of different RIAs.

So we have built‑in Ajax Remoting, or JavaScript Remoting as we call it, where you can basically call your ColdFusion services and we'll translate them over JSON into JavaScript as well. We have a lot of Ajax controls that we've built in using the popular Ext JS framework. So, Ext JS, jQuery... We could just drop names, but they all work very, very well with ColdFusion and actually come with it.

Dan:  So it sounds like there's an awful lot of good reasons to use ColdFusion but let's say I already have a business, and we have a large investment in Java or .NET. Does it make sense to try bringing in ColdFusion?

Adam:  Well, yeah. So we see a lot of Java guys coming into CF, mostly from a productivity perspective, right? Because if we're all getting down in the same Java bytecode at the end of the day, it's really how do you get there. And if you can write something in one line of CF that would take you 10 lines of Java, multiply that across a giant project, you're going to save a lot of time.

But that doesn't mean you have to completely abandon what you have already. In fact, you can call Java natively from CFML itself. So just when you use CFML in the tags to generate your front end, your HTML, your Ajax controls, but still use Spring or EJBs on the back end, or even call Groovy directly from CF, you can do that all inline.

But it's not just about Java either. It's also about .NET. So we try to play it pretty technology‑agnostic as far as what ColdFusion can connect to. We like to see ColdFusion as kind of an enterprise hub where we can just play around with any of the technologies that are there and bring it under one roof. And so, if you've got .NET assemblies and DLLs that you want to leverage in the same way, you can actually leverage that code.

Finally, one of the other things that we added in ColdFusion 9 was the new ColdFusion as a service, or the ColdFusion Server API, where we take a lot of the core functionality in ColdFusion, like the ability to work natively with PDFs or image manipulation, and we expose it automatically as SOAP‑based web services or Flash‑Remoting services.

So even if you're a Java developer, you don't want to write a line of CFML code, but you need to be able to watermark a PDF or you need to be able to convert HTML into a PDF or do some image manipulation, you can actually leverage the ColdFusion web services directly from Java without even having to get into the CFML side of it.

Dan:  Very interesting. So, another question on everyone's mind is: does ColdFusion have a cloud strategy?

Adam:  [laughs] So we're going completely off the record here. We've been researching a lot of the things of ColdFusion in the cloud for, actually, quite a long time now. It's almost been about 18 months since we first initially started our ColdFusion‑in‑the‑cloud project.

At MAX, we announced the first stage of a private beta for what we're doing around Amazon AMI. So our plan is to release some ColdFusion AMIs on Amazon, in partnership with Amazon and also give you an hourly rate to use ColdFusion. So instead of having the upfront cost of licenses, you'll be able to basically go and fire up an instance. Pricing is still to be determine, and we're running through a private beta now. But we really hope to actually have that available, from an infrastructure perspective, by the end of this year.

And then, starting early in 2010, we have another phase that we're going to roll out that I'm not allowed to talk about [laughs] and then a third phase later in 2010, closer to CF10 time frames.

Dan:  Fair enough, NDAs and all that.

Adam:  [laughs]

Dan:  So you've got a dynamic language on the JVM. You were there first. You've got enterprise integrations. You can talk to Java. You are Java. You can talk to .NET. You've got Hibernate, caching. It's a lot of stuff.

Adam:  Yes.

Dan:  What's next?

Adam:  Yeah, so we've got a couple things. So we're still working on a new IDE for ColdFusion. So that's ColdFusion Builder. It's out on labs.adobe.com. You can download beta two of that right now.

So, in the near term, we're going to wrap up ColdFusion Builder and hopefully release that. We're keeping that in sync with Flash Builder and Flex and some of the other technologies on the RIA, so we'll have a nice big release around that, around the tooling strategy. We'll roll out our cloud strategy sooner than later, at least the first couple phases of that, hopefully by the end of this year moving into next year.

Then we're really starting to look towards ColdFusion 10 and ColdFusion Builder 2. In fact, Adobe has us planning two or three versions out, so we've actually known what's kind of been going into 10 for a while and we also have some things that are going into 11 as well.

Dan:  Great. Tell us more. [laughs]

Adam:  [laughs] Yeah, so no comment. It's a little too early to actually start committing to some of the things that we're looking into CF10, other than, I guess, some more high‑level stuff. The codename is Link. For ColdFusion Builder 2, the codename is Storm.

From Link, you can take a lot from what's coming out of the name, about sort of bringing data together and the ideas behind some of the modern enterprise mesh‑up technologies. With Storm, we're focusing a little bit more on beyond just coding and getting more into working with data a little bit easier and trying to fill out some of the holes of what builds a full, integrated development environment, not just a sort of code‑editor experience.

Dan:  Interesting. So where does all this run? Where can I run ColdFusion?

Adam:  Because ColdFusion is 100% Java, we run within the JVM. We actually support a wide range of platforms, so whether you're on Windows, you're on Linux. We just added support for Ubuntu on top of Red Hat. We support some really, I'd hate to use the word, obscure enterprise stuff, like AIX, Solaris. All that's baked in there to ColdFusion. Full 64‑bit support as well, across all editions. So ColdFusion can pretty much run wherever you're trying to get it to run.

Dan:  So all this is really great stuff, Adam. We appreciate you sharing with us. Where can our viewers go for more information?

Adam:  So, for more information on ColdFusion 9, you can check out http://www.adobe.com/products/coldfusion/. For information on ColdFusion Builder, you can check out labs.adobe.com, amongst some other really cool stuff that we're working on. But there's also a really great ref‑card from DZone on ColdFusion, if you're just trying to jump in really quickly, that covers stuff from ORM to working with the web services. So, you should check that out.

Dan:  All right, Adam. We thank you for coming out.


Published at DZone with permission of its author, Nitin Bharti.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)