The North American segment of the most ambitious
(and grueling) user group tour in Macromedia's history has just finished.
Reactions to Blackstone (the next major version of ColdFusion) have
been overwhelmingly positive and enthusiastic, and so I thought it worthwhile
to share some of what we've shared and heard with you.
Note: ColdFusion MX 7 is now available. Visit the ColdFusion product page for more information on the latest version of ColdFusion.
Tour Objectives
This tour had (has) two primary objectives:
- Users have long been critical of how Macromedia discloses future plans. The truth is, back in early days, we disclosed everything and did so very early in the development process. Arguably, too early (Remember DevCon 2000 in Washington DC, when we first sneaked what would become ColdFusion MX, years before it shipped, and long before we released ColdFusion 5?). And if we erred then on the side of over disclosure, lately we have had a tendency to do the exact opposite. The truth is that server software is different. Server software is infrastructure, and infrastructure needs a visible long term plan, both so that you know what we are working on, and so that you know that we are working on it! This tour is part of solving that problem—a way to provide you information far earlier in the process.
- Typically, road shows and tours occur very late in the development cycle, when the product is pretty well baked and is being prepared for production. While this ensures a more stable, reliable, and accurate presentation of the product, it does not typically allow us to tweak product plans based on feedback—it's just too late in the game for that. This tour is different. We've demonstrated alpha software and have received feedback from our users that will directly affect the upcoming product. Blackstone is a developer-driven release—this tour is designed to allow developers to weigh in on the process, essentially helping Macromedia to build the Blackstone that they want.
We met with over 20 groups (and lots of corporate customers) in a five-week
period, and we've been able to meet both objectives. Users seem pleased with
what they have seen of Blackstone (and the fact that they have seen it!), and
have already provided significant input and direction. Check out these pictures
from the tour, too.
"The State of the CF Union"
"Is Macromedia committed to ColdFusion?" "Is ColdFusion dead?", and so on. Threads like this have been popping up for years now. So, just to make things perfectly clear, here are some facts (as presented to the groups):
- There continues to be plenty of ColdFusion development going on. Google today reports millions more CFML pages than it did a year ago. That's good news, especially when taken in context. After all, most ColdFusion deployment is within organizations (intranets, extranets, portals, and so forth); areas that Google never even sees.
- Macromedia continues to sell lots of ColdFusion. Sales are solid and have
been for a while. That's a very positive sign indeed, especially for a product
that is rapidly approaching its 10th birthday.
- Lots of developers are using ColdFusion MX, the latest version of ColdFusion. When polling attendees at user groups, over half had upgraded to ColdFusion MX (including MX 6.1). That's good too.
- Macromedia continues to be very committed to ColdFusion. ColdFusion MX (and
the massive financial and resource investment that went into that release)
is a testament to that. Then on top of the solid foundation and architecture
of ColdFusion MX, we already have thousands of man hours invested into
the development and testing of Blackstone, and we’re not even in the beta cycle
yet.
To borrow (and slightly adapt) a quote: "Rumors of its demise have been greatly exaggerated."
Blackstone Timeline
Product release schedules are notoriously unpredictable. Thus, publishing any timeline is somewhat risky. Having said that, this is the plan:
- Blackstone is in alpha testing right now.
- Public beta testing is scheduled to begin in the fall, starting with a small beta and gradually increasing the participant count.
- Product release is currently planned for early 2005.
Details on how to apply for beta access will be available closer to the testing cycle.
Blackstone Goals
ColdFusion is a very mature product. It already solves lots of problems for
lots of developers, and is built on a solid and proven architecture that provides
the reliability and security that developers demand. This is a good thing,
because it gives ColdFusion teams the luxury of concentrating on real features
and value, without becoming distracted in investing heavily in architecture
and internals.
As such and based on vast amounts of feedback (from both users and potential users), the goals for Blackstone are:
- Make new users far more successful. ColdFusion has always appealed to new developers, and there is no other language or product as well suited to their needs as ColdFusion. New users (primarily those with a background in building web pages and static sites) are an important part of the ColdFusion user base, and Blackstone is dedicated to making successful development easier for these users. This involves the creation of Dreamweaver extensions and configuration screens, providing better out-of-the-box education, delivering more usable value, and more.
- Provide existing users with feature and functionality that they can immediately use. This is the bulk of what was presented at the groups, as I discuss more below.
- Help developers (our users) make their users happier. Consumers of ColdFusion applications have common requests, things that they'd like to see in the applications created for them. Many of these revolve around how data is captured and presented, and Blackstone provides powerful new capabilities for forms, reporting and printing.
- Improve reliability and deployment options. ColdFusion's Java internals open up all sorts of powerful and important deployment and reliability options; Blackstone makes more of this available than ever before.
These are significant, even lofty, goals. But they are attainable.
Data Entry
Data entry forms have long been the Achilles heel of web-based applications. Without bad-mouthing HTML forms (actually, there is little need to, you've all experienced the pain first hand), there are things that Blackstone can do to improve the experience:
- One of the biggest problems with HTML forms is that form controls and presentation are too tightly interwoven. Changing a form (perhaps moving a label from the left of a control to above it) requires lots of UI work, often moving <TR> and <TD> tags, changing fonts and colors, and worse. Blackstone introduces forms you can skin or create using just the
CFFORM, CFINPUT, and related tags. These tags create forms that have no explicit placement or colors or fonts in them. Rather, the form generates XML (XForms) which you then skin using XSL. This allows you to reskin, reformat, and reuse forms quickly and painlessly.
- ColdFusion 2 introduced Java applets for use in forms (such as the
CFTREE and CFGRID tags). There is a lot to dislike about applets, and users have long requested Macromedia Flash versions of these. In Blackstone, simply adding FORMAT="flash" to the tag (such as <CFTREE FORMAT="flash" …>) creates a Flash version of the control that looks better, is far more portable, and provides for more flexible UI control too.
- Being able to generate Flash form controls on the fly also makes it possible to introduce whole new controls. For example,
<CFINPUT TYPE="datefield" …> displays a text input box with a little calendar button that, when clicked, pops up an interactive calendar for date selection.
- Beyond Flash controls, Blackstone can also generate complete Flash forms when you specify
<CFFORM FORMAT="flash" ..>. Use this for form field bindings (events between form controls), as well as for an innovative way to wrap and present forms using tab controls, accordion panes, and more.
Group attendees found these feature demos to be incredibly compelling; they provided invaluable suggestions and feedback that the development team is reviewing.
The Printed Word
Printing and reporting come up regularly. In fact, one out of every two feature requests contained references to printing and reporting. And when close to 50% of customers ask for the same thing, we listen. Printing and reporting (yes, we distinguish the two) is an important part of Blackstone. We demonstrated two distinct features:
- Web browsers don't print pages well. That's unfortunate, but it's a fact of e-life for now. And because users want a way to generate printable versions of web pages, and this is what the new
CFDOCUMENT tag does. First introduced at a sneak session at MAX in Salt Lake City, UT, the CFDOCUMENT tag and its child tags allow you to simply wrap HTML, CSS, and CFML content within a tag pair so that you can render printable versions of the content. The CFDOCUMENT tag supports the use of headers and footers, multiple page sizes, configurable orientations, the ability to save output to disk, and more. Generated output types have not been finalized yet, but for a proof-of-concept, we generated PDF and FlashPaper using the <CFDOCUMENT FORMAT="pdf|flashpaper" …> attribute. The CFDOCUMENT tag doesn't replace report writers; rather, it is designed to compensate for how poorly web browsers print content. There is still a need for reporting—read on.
- ColdFusion 2 introduced the
CFREPORT tag, which developers used to create report templates externally to be invoked from within CFML pages. Users have had a love-hate relationship with that tag, and for the most part, it has failed to deliver on what developers really needed. And so, we extended the CFREPORT tag to support an additional report type, a CFR file (as in "ColdFusion Report"). A CFR file is an XML definition of a banded report with database columns, groupings, sums and other calculations, dynamic and static text, images, charts, and more. Using a CFR file can be as simple as executing a CFQUERY tag and passing the returned query as an attribute to the CFREPORT tag. So, how do you create CFR files? The ColdFusion Report Builder is an interactive report writer that uses the familiar banded report writer interface. It creates and edits CFR files that you deploy as part of your application. The CFREPORT tag output formats are also not final, but we demonstrated both PDF and FlashPaper generation.
Attendees drooled over these demos. Printing and reporting is a real problem that these features solve.
It is worth noting that we did not discuss packaging, pricing, and editioning (they are still not final). Honestly, we haven't decided which features will be in which edition, and what, if anything, will be packaged as add-ons—we're still figuring that one out.
Deployment Options
Application deployment options are important to administrators and software developers alike. As shown during the demonstrations:
- With Blackstone, you can distribute compiled code (Java bytecode, without CFML source). This request has been around for a long time, and will make ISVs in particular very happy.
- With Blackstone, you can package and deliver ColdFusion applications like Java applications (which, in fact, they are). With ColdFusion MX, you can deploy ColdFusion as a Java archive (an EAR or WAR file), and then manually deploy your application on top of ColdFusion. With Blackstone, it will be possible to build a distributable EAR or WAR file that contains both your application and the entire ColdFusion runtime. All that you deliver is the Java archive, everything else works transparently.
- One of the most important advantages of ColdFusion MX Enterprise (actually, the most important advantage) is the ability to deploy multiple ColdFusion instances on a single box. This allows for greater security, scalability, and reliability (without greater cost). But the process of creating and managing instances can be tricky, especially for those without a strong J2EE background. Blackstone makes this much easier, with simple screens that make it possible to create and edit instances through the ColdFusion Administrator—just fill in the forms and ColdFusion does the rest.
While primarily targeted at administrators and ISVs, the new deployment and reliability options have been met with much excitement and enthusiasm.
Lots of Other Goodies
Big and exciting marquee features grab the limelight, but there is a lot more to Blackstone too. Some of the other goodies include:
- Programmatic access to ColdFusion Administrator functionality
- Serialized CFCs (so that you can replicate CFCs in SESSION)
- Access to CFC code from Java
- The ability to embed images inside HTML e-mail messages
- XML validation (against DTDs or schemas)
- Improved charting and graphing
- Pluggable encryption (allowing all ColdFusion encryption/decryption functionality to use 3rd party crypto APIs)
- Verity enhancements
- And much more …
Summary
Blackstone is shaping up to be one of the most exciting and impressive ColdFusion releases ever. And, thanks to feedback and direction from thousands of ColdFusion users the world over, it is also the most developer-driven release ever.
We'll be posting more details in the upcoming months. For now, we hope that this tour report has whetted your appetite, and given you lots to look forward to.
About the author
Ben Forta is the Adobe senior product evangelist and the author of numerous
books, including ColdFusion
Web Application Construction Kit and its sequel Advanced
ColdFusion Application Development, as well as books on SQL, JavaServer Pages,
WAP, Windows development, and more. Ben co-authored the official ColdFusion
training material, the certification tests and Macromedia
Press study guides for those tests, and now spends a considerable amount of
time lecturing, speaking, and writing about application development worldwide. Visit Ben's blog to read his regular postings on ColdFusion and more.