Simon Horwith: Today I'm speaking with Ben Forta, the technical evangelist for Adobe. The first thing I have to ask you is - the acquisition has happened, Adobe is now controlling ColdFusion and has taken over everything that Macromedia was doing, and this is my first chance to really speak with you since that happened - what is going on in the ColdFusion world? How has the acquisition gone for the ColdFusion team and yourself and what's in store for us in the near future?

View this interview on SYS-CON.TV
Ben Forta: Thus far, not a whole lot has changed. Before the acquisition we were hard at work on ColdFusion Scorpio. We first mentioned it over a year ago, the next major version of ColdFusion. That work began pre-acquisition and it's ongoing. We're still working through the specs and futures and what the price should be. Independent of that, also pre-acquisition, we started work on the Mystic bits, which is the update of the ColdFusion 7.01 full Flex integration. That work is still happening. As far as the short-term implications and the data impact of ColdFusion immediately, not a whole lot. It's still pretty much the same team doing exactly what they did before with the same immediate goal and longer-term goal.
Beyond that it starts to get very interesting. You're starting to really see the beginnings of integration between products, so ColdFusion and Flex are obviously extremely important, but once you're beyond that then there are things ColdFusion developers have been asking for awhile that Adobe's in a really great position to help with, such as improving PDF generation and some of the imaging functionality people ask for. These are things that are Adobe's area of expertise and they're definitely the ones to help us build this stuff. Just looking at the future of ColdFusion, there's definitely a lot of Adobe expertise that needs to make its way into ColdFusion.
Beyond that, there are other parts we have to start thinking about integrating with, so some of the lifecycle servers, for example, it might make sense to provide some ColdFusion functionality to them and to expose some of that functionality back to CF. While we are building the next releases of the product, we are looking at the wider array of product offerings now, technologies, and trying to figure out what the right mix is and how we can add value everywhere. The end result is a much better product and a better set of services and solutions for customers.
SH: Can't wait to see that. You mentioned Flex, and I know that currently you're on the road meeting with user groups to talk about Flex 2.0 and Flex Builder 2.0. For the benefit of our viewers who aren't familiar with it, could you briefly describe what the major differences between Flex 2.0 and Flex 1.5 are and maybe even just quickly introduce what Flex is, so if there's anybody out there who hasn't seen this yet...
BF: Oh, wow. You want me to take the full couple hour presentation and turn it into a 30-second sound bite, great.
Let's talk about Flex currently; Flex is like solving a very specific problem. The Flash player, the Flash platform, is a very capable platform for delivering and employing rich, engaging experiences. It's primarily used for design work and has been for a long time, but it's actually capable of a lot more. It's capable of being a front end for applications, for business apps, and for being the client-side of a real application, talking to real back-end data beyond the design-centric applications that you often see in Flash. While the platform is capable of doing that, the experience, the process of building those apps has been complex or difficult for most coders and developers, the way they think about building apps. The Flash IDE is something that designers are far more comfortable with than coders, and while there were changes made in the last few versions of Flash, particularly in Flash 2004, to make Flash a better tool for coders, it still is something that designers are a lot more comfortable with than those who also write code for a living. The tool itself, the way to build apps, how the application is put together, the way code is embedded in the app, this entire process and tooling is something that is a little foreign to coders.
Flex is a whole different way of thinking about building Flash applications. Instead of starting with a stage, a graphical stage that you drop elements on and a timeline that you script around, simply start the code. You have tags, script, and a server. Create these files using a tag-based markup language called MXML and use ActionScript as a script language in conjunction with that, and what you end up creating is a SWF. It's a Flash binary that runs in the player just as if you had created it in the Flash IDE, but the way you get there is totally different. It's all code based. It's designed for a different type of developer, a different type of application, and it's ideally suited for the types of apps that coders would build, although it's entirely possible to still build apps like that in Flash. That's what Flex is right now.
The current shipping version of Flex is Flex 1.5, and the products have been well-publicized successes. Obviously the highest profile one is the Yahoo Maps beta, which is running on Flex, an extremely powerful application and very responsive, a very engaging experience, and is really, as I said, a benchmark for what Flex apps should be.
However, there were some limitations around Flex 1 that made it perhaps less than attractive for some developers, particularly ColdFusion developers. The objections that we primarily hear form three categories. One is pricing; Flex 1 is a server product and it's priced as such. When you look at the demographic of who the ColdFusion developers are, the type of apps they're building, the budgets those apps have, perhaps the price point is too high for them.
Number two is the whole deployment model. When you build an app in Flex 1, you need to deploy the Flex server on a J2EE server, and the majority of ColdFusion developers avoid J2EE servers. Even those who have ColdFusion Enterprise will be exposed to the J2EE server, but they don't use it for the most part, and so they use a simpler deployment model. Number three is the tooling, which is simply an easy way to build the apps in general. All of those are addressed by Flex 2 and there's a lot more to Flex 2 than just that but, at least through the feedback we're getting from ColdFusion developers, what they like about Flex 2 is that these three issues have been addressed. One is the pricing. We haven't released final pricing yet but we have publicly stated that the Flex Builder tool will sell for under a $1,000 per developer seat, so it's priced at a price point that's a lot more appealing to ColdFusion developers.
In addition, you will now be able to build applications with the tool, with the IDE of a Flex Builder, and build the app, compile it, generate a SWF, and then deploy that SWF like any other asset on your server. As you deploy your HTML files and your CFM files and GIFs, JPEGs, and CSS files, you also deploy your SWF files in the server and they get served by the HTTP server like any other pages; you don't need these services running on the server that you did previously so it's a far simpler deployment.
There are additional services, the Flex Enterprise services, and these are covered in detail in the user group presentations. These are additional functionality, messaging, and data services, and many developers will want to leverage that functionality, but for those who want to build basic applications, applications that talk to back ends, perhaps to ColdFusion via Flash remoting or via SOAP, and get the results back again, that would be possible using Flex Builder without needing to deploy services in the server. This makes the whole deployment a lot easier as well. Third is the new tool. Flex Builder is a tool that is really designed for coders. It's built on Eclipse, which has proven itself as a coder's platform, a coder's IDE, and so the combination of these three things really make Flex 2 very compelling to ColdFusion developers, and that's just a small part of what Flex 2 is about. There's a new ActionScript language; there's dramatically improved performance; there are enhancements to all the controls to it, there's a whole lot to it.
SH: You mentioned that Flex can be very appealing to ColdFusion developers. Typically when you go out on the road, which you do almost every year doing a user group tour, it's almost always coinciding with a major release, typically in the ColdFusion product. This tour you're going around and telling everybody about Flex 2.0 and Flex Builder 2. Are ColdFusion developers the target audience for your presentations and for the product itself? Care to talk just a little bit about who the real target audience is here for Flex 2.0?
BF: Flex 2 is not targeted solely at ColdFusion developers. It's being targeted at developers in general. ColdFusion developers are a very important part of that demographic because they're building apps that Flex can help solve real problems for and improve, and the integration between the two is so clean and so seamless that it just becomes another tool that they can work with; the end result is something vastly superior what they have right now. I think the ColdFusion user base is an important part of who Flex is for but it's not only for the ColdFusion developers. We have really ambitious numbers as to how we expect to grow Flex Builder use and that's going to be far bigger than just the ColdFusion audience, so it appeals to Java developers, to .NET developers, to PHP developers, and it should. The products, Flex and ColdFusion, shouldn't be dependent on each other. They have to be independently successful, but when you use the two together, you end up with something better than the sum of their parts. That's Flex in general.
As far as the user groups, yes, most of the prior tools have been around ColdFusion releases and this is a little different in that it's not around a ColdFusion release; it's more around Flex 2, which will have ColdFusion data associated with it, but the intent here is to expose the ColdFusion community to Flex. Many of them saw Flex 1 in the past, and some tried it with varying degrees of success. I really want them to take a look at Flex again, because Flex 2 is radically different from what they're used to and based on responses thus far they're really excited about it. We're now a week into the tour and I'm getting all sorts of feedback and comments that people are already downloading Flex Builder, they're already trying it, they're already building the sample apps and have been very successful with it, which was a little harder for them to do in the Flex 1 era. The initial feedback from the ColdFusion community and those who attended the groups is very good, but you're right, it is also attracting a slightly wider audience. I did a presentation in Philadelphia last night and there were attendees who were Flash developers, who were using Flash in talking to PHP with no ColdFusion experience at all, so it definitely has a wider reach.
SH: You mentioned that Flex Builder 2 is built on Eclipse and you're aware that there is also a CFEclipse project out there that offers ColdFusion developers a good Eclipse-based environment that's different for ColdFusion developing and, obviously, Java developers and other developers have been using Eclipse as well. What does this mean? Do you think that Adobe is going to begin promoting Eclipse as the recommended development platform for both ColdFusion and Flex development? I know Macromedia joined the advisory panel for CFEclipse. Are we looking at having one unified tool for doing all of our hard-core development?
BF: Eclipse is definitely the IDE for Flex development and there are other initiatives in the company using Eclipse in other ways, too. So yes, you're going to see a lot of momentum around Eclipse. But with ColdFusion specifically, I think we've taken this dual approach to it, and for many developers Dreamweaver is still a good IDE for ColdFusion developers, especially for those who are beginners or just starting off, who are already very comfortable with Dreamweaver, or are doing a lot of HTML work or a lot CSS work, in addition to ColdFusion. Dreamweaver in the early days didn't have as sophisticated support for ColdFusion as it would have liked, but it has gotten better, and in fact it's gotten really good. The CFC support, for example, in Dreamweaver is superb, and the integrated debugging is very, very good. Even the wizards extensions we wrote, where you can, for example, add data sources to ColdFusion directly to Dreamweaver. There are some very important features within Dreamweaver that have made it a very compelling tool for some ColdFusion developers, but it isn't for all developers and we recognize that.
I don't think there was ever the intent that Dreamweaver would replace the old ColdFusion Studio, which some people still use. That's why every time you bought a copy of Dreamweaver, it included a copy of Home Site Plus, which is essentially ColdFusion Studio, because there was the recognition that Dreamweaver really was not a replacement for what the old ColdFusion Studio Home Site-based product was, and it appealed to a different audience and developer base. CFEclipse is an important project. It does answer part of the void left by there being no new additions to ColdFusion Studio Home Site for quite a while. There have been tag updates but nothing else. So the ColdFusion team has gotten behind the CFEclipse project. We announced support for it at CFUnited last year. We are working on features already. At the user group this week I've been publicly demo-ing, for example, an RDS plugin that we built to be used with Eclipse.
We will be getting very involved in the project; we are already and continue to do so. We're not going to take over the project, that needs to be community driven. That's the way it will be successful. We are very involved with this and if we end up with this dual approach for IDEs, for those who want Dreamweaver, it's still the IDE of choice; for those who want an Eclipse-based IDE, it's a very different experience, great. CFEclipse is there. It's a powerful tool. It's been kind of light for a while but it's gotten a new burst of life recently and that's really good to see. We are going to keep writing functionality to it and it can be used with Flex Builder as well. You can install Flex Builder in Eclipse, and the end result is something very useful.
SH: Did you tell me there was an announcement by Adobe about the planned pricing model for the Flex 2 SDK. They basically announced that it's going to be made available for free. I was wondering if you could tell us a little more about that and particularly what exactly do you get in the SDK?
BF: There are several parts to the Flex story. Flex Builder obviously is the IDE. It's where you do your developments and it has an integrated compiler. It has a very sophisticated debugger built in, all sorts of help, and you end up building an application that gets deployed on the server. In addition to the Flex Builder, there are a set of services that can be installed at runtime in the server. These are the Flex Enterprise services, and we haven't really announced pricing for that part of it yet but it will be a scale pricing starting off at something very manageable. As your needs increase, there will be a way to buy more use of it and scale appropriately, but we haven't discussed the final Flex Enterprise services pricing yet. When you build an app with Flex Builder, you can build apps that are stand-alone or apps that are built in conjunction with and deployed using the Flex Enterprise services. Those are the two products that we sell.
In addition to that, what we did announce was that the Flex 2 SDK would be made available at no cost. That essentially is the framework and the compiler. If you want to build an application using MXML and ActionScript and don't plan to use the Enterprise services, and don't plan to use our IDE for building the app, you actually don't pay us anything at all. You just download the framework and the compiler and use an editor of your choice. If you feel like using Notepad, so be it. Build your XML, build your script, compile it, and you can actually build scripts and build an actual application that way. It's an important part of making the Flash platform far more prevalent by encouraging people to really tinker with it, see what they can do. I think they'll be very pleased.
SH: One thing I also wanted to ask you about, being a developer myself, just something that is a concern of mine and I'm just interested to hear your take on this. Prior to Flex 2.0, the Flex server was priced out of the range for most smaller companies and Internet developers. Now obviously it's going to be much more reasonable financially for developers and smaller companies to use. It's also a free public beta, so we have tons of developers who are downloading and playing with Flex and really learning it and using it for the very first time. It immediately makes me question whether or not Flex is going to become the blink tag of the 21st century.
BF: You didn't like the blink tag?
SH: Yeah, I really don't miss the blink tag. Definitely, you have so many people who have no prior knowledge of Flex and they're hoping to become proficient overnight and be able to implement this into their projects in the near future. Flex really makes it easy to do some very flashy things, such as drag-and-drop, hiding, and turning on and off elements on the screen and making things zoom -there are some neat effects that it can do. Is there any concern at Adobe or that you personally have about the developers going overboard with this use or even if they don't, just not learning how to implement best practices and build applications the right way with this tool?
BF: Yes, but actually I don't think that's as much a Flex concern as much as it is a core Flash concern. People abuse Flash already right now. We've all seen the pop-up ads that you move your mouse over and they kind of roll over and take over your screen and you can't close them. Often I'll ask people what association - what do you think of when you think of Flash and a lot of people still say skip intro. So I think Flash itself allows people to build really cool things, and also now it allows people to probably go overboard, and there's an education process. You have to learn what's appropriate and what's not. It depends upon the message. It depends on the type of application. It depends on how it's being delivered. It depends the target audience. That is something that people need to be educated about and I think we've been doing a pretty good job in general for that around Flash.
With Flex it will be more of the same, yes. An important part of this is going to be educating people to what the right way to build apps is, understanding that a Flex app isn't a replacement for a single page in an HTML application because that won't scale, it won't be comfortable for people to use. The formats won't be what you want and there is a difference. A Web app isn't the same as a Rich Internet App if you have to rethink how you build the apps and how the pieces are put together, and the flow through the application, user interaction.
There are a lot of people who will learn as they go. If they build it incorrectly, if they suddenly take an HTML form, guess what, I'm going to turn this into a Flex app, built by Flex; it's a Flash form, drop in an HTML page. They're going to learn very quickly that isn't the result people want.
I think actually you'll be getting two fundamental questions; one is Flash in general and educating people what's correct to use. I think we've made real progress there. The other part is just explaining to people how the migration from a Web app to a Flex-powered Rich Internet Application, how that process should go. It really is taking a step back and rethinking your app; we've already started showing people the example apps, show that when you install Flex and you get the snippets in the explorer and how to write code, those are obviously little snippets and that's not how we actually build real applications. Building real apps does require taking a step back, rethinking the flow, rethinking the communication between presentation for the clients and the server. That has to happen and that is happening. We've already started building examples and writing up docs for that as well. There will be a lot more around it as well. There will be training, there will be documents that explain the best practices and how to use the technology, so that's what we're working on. It's important and I really think it needs to be addressed and we are working on that.
SH: I'm glad you mentioned that developers have to rethink the way they actually present these interfaces to people and the sample applications. That was the other thing that I really wanted to bring up with you. At the MAX conference in California, the Macromedia Extreme Design Group showed an application that, for lack of a better word, just absolutely blew me away. It was absolutely amazing and everybody's jaw dropped when we saw the entire video store application to rebrand itself. "Spiderman," I guess, was the sample, when the guy was typing in the search box. The Extreme Design Group was showing their view of what user experiences are going to be like in the very near future with these next generation of Web 2.0 type applications. That application was built with Flex and the tools are available today to build those kinds of things. Is the Extreme Design Group or any other group within Adobe planning to do anything to help developers really learn how to rethink the way they approach presenting data, services, and interfaces to end users?
BF: I think the answer to that is an obvious yes. I mean that's part of the core education I was just talking about. There is an education process in teaching people how to use technology and how to use it effectively. Part of that is actually in the core product, so a lot of things we've done at Flex 2, some of the new controls, some of the way you can do skinning now and styling to get the look that you want, make that a whole lot easier as well. I think some of that thinking is really making this the core product, and, yes, there is additional education that needs to happen around that and that's a work in progress.
SH: There's been a lot of buzz around Flex, and I think it's fantastic so far with everybody getting to see it, and everybody is really anticipating this release. Do you have any other thoughts, anything else that you want to tell our viewers before I let you go?
BF: The only other thing I'll add is that I would really encourage people to play with it. We've made this beta really open, actually made the alpha open, as well, and we really want people to play with this technology and see what it can do. It's a lot of fun. It's addictive and there's an instant gratification factor to it, and people are having a whole lot of fun with it. What I really want people to do, though, is to start to play with the ColdFusion Flex integration. The truth is, if you build an app in Flex 1 it could talk to a ColdFusion back end by default because the Flash player knows how to make HTTP calls and knows how to talk to - via Flash remoting - talk to Web services. ColdFusion obviously can respond to all of those, but there was nothing really built into the product on either end. I mean, one particularly suited to the other. If you're a ColdFusion developer, obviously you used ColdFusion as a back end for your Flex app but there was nothing particularly compelling as far as the integration goes between the two.
That has changed. In Flex 2 the integration is really nice and really clean, and so the new Flash remoting adapter that gets installed for ColdFusion 7 does really important things like automatic diversion of objects between ColdFusion CFCs and a Flash group and then back again. Some of the wizards we're working on for Flex Builder are specific to ColdFusion, so a right-click and ActionScript object can generate the appropriate CFC with all the properties and so on. If you're using the Flex Enterprise services, the gateway that we install into ColdFusion makes it really easy to send the data from ColdFusion, push down to the client with a single function call, probably far easier than any other back-end platform. I think ColdFusion developers are going to discover when they start playing with ColdFusion and Flex together that Flex doesn't just support ColdFusion, but that the two work very well together and have been designed to do just that.
ColdFusion is a first-class citizen when it comes to being a back end for Flex. The two are designed to work very well together and ColdFusion developers in that way have an edge in that they have all the power, the simplicity, and productivity that is ColdFusion, which is why they use the product already. In addition, they are now in a really good place when it comes to building these next-generation Rich Internet Applications with a powerful Flex front end and a ColdFusion back end. I really encourage people to download the beta, to go through to the lab site, labs.Adobe.com, download Flex Builder 2 and download Flex Enterprise services if you want, play with that as well, make sure you download the updated bits for ColdFusion. They do require Cold Fusion 7.01 and download those bits as well; if you want to play with the charting components, grab those. There are good examples up there, demos, postings all over the place, and blogs elsewhere with examples to try, so just play with it. It really is a lot of fun to play with and the results are pretty amazing.
SH: Thanks for talking with me, Ben. I look forward to seeing what happens with Flex 2.0 when all of its various components are officially released and, obviously, we are also looking forward to seeing what's in store for ColdFusion in the next year or two.