Macromedia will be introducing ColdFusion Mx 7 this week and it will be a strong entry in the server side application development tools market place. ColdFusion is a front end tool for J2EE and Java appplication servers (Macromedia Jrun 4, BEA Weblogic 7.x, 8.x and IBM Websphere 4.x , 5.x.). ColdFusion 7 also has the virtue of runnning on several versions of Linux, Solaris, Windows XP and 2000, Mac OS/X and IBM AIX for both development and delivery/operations.
For developers new to ColdFusion, it uses a tag language similar to HTML called CFML-ColdFusion Markup Language. So it is analogous to such popular server side web development tools as ASP, JSP and PHP. And in fact, ColdFusion helped lead the web development world into the 3-tier model logic back in the early 1990s where the presentation logic was moved to the server along with the backend database bindings and processing logic which then was served over HTTP and onto any client browser. In effect, ColdFusion acted as a simplified front end to access complex Web server, database servers, and CGI logic.
This Web-based model has gained greater ascendancy as organizations need to deliver info anytime, anyplace and on any platform – Windows, Mac, Linux, and Unix. The open and standard Web interface makes this possible. It also helps that users have found the Web GUI interface easy to learn and remember how to use. Finally, the Web model is also helped by the fact that the latest updates to program logic are delivered in one place – the server, and then delivered just-in-time to each requesting user rather than the operational nightmare of having to keep thousands of client machines updated with the latest version of a smart client application.
The disadvantage of the Web model is that offline operations are difficult to do because most of the applications logic resides almost exclusively on the server. In addition, there are inherent network delays that make talking back and forth between client and server more time consuming than the rival smart client approach which delivers much of the logic to a workstation (Mac, PC, kiosk with embedded processor, etc). So the Web model has been working over the past few years to deliver ever larger chunks of application code to the client – but still centrally served in the just-in-time method. These chunks of code are applied to discrete operations like data form validations; delivery of reports; running UI components like dropdown calendars, tree lists, and menus locally rather than having to constantly to-and-fro with the server as in earlier Web programs.
ColdFusion has helped lead the way in this distribution of more tasks down to the client – and those capabilities are enhanced in version 7. In addition, ColdFusion has also simplified access to the very scalable, reliable, and secure backend operations represented by Java JSP and J2EE servers and now Web Services. This is no small benefit as J2EE and Web Services coding can become non-trivial quickly. Finally, ever increasing bandwidth and the explosion of mobile telephones and other handheld connected devices has created an increasing demand for delivery of program interaction to these devices through SMS, WML, and other messaging frameworks. So it helps to think of ColdFusion as a front end tool that simplifies access to a wide variety of distributed processing resources. Certainly in the features of the new version 7.
Application Development Tools Divergence
Now some readers will say who needs another application development tool ? – we have too many already. It is Eclipse/JBuilder or Visual Studio – game over. Well, as in the Hertz TV commercial – not exactly. As has happened with software technology over the past 40 years, the bar has been raised again. And the old players, with their huge development IDEs, are seriously pressed to meet the new development demands for mobiles, offline/online and other embedded devices with tack on extensions. We have already mentioned the problems in the presentation layer as tasks such as validations and adhoc calculations are moved from server to client and back again.
Application development is in this flux again. The history of timesharing, file server, 4GL, CASE, client-server, Web server – and now SOA and ESB architectures among the high points is not helter-skelter but rather is the rational response to changes in technology and its economics over the past 30-40 years. As new technical and business opportunities present themselves, tools change or are replaced.
For example one of the major technical and economic changes is the huge market of embedded devices that are now getting connected. Mobiles and handhelds lead the way as embedded computing devices (which now exceed annual PC sales by 10 to 1) are empowered with ever greater bandwidth by means of 2.5G, 3G, and WiFI/WiMax initiatives. Also in the 5As(Info delivered Anytime, Anywhere, …) there is implicit but not stated an Any object requirement for new systems. Any object means more than the familiar text and numeric fields. Any object means adding to the mix objects like images, signatures and drawings; speech inputs and outputs along with rich audio; video and animations; spatial and location information plus many other objects. And of course it is not unfolding neatly according to any plans in Armonk, Helsinki, Redmond, or Tokyo. Who would have guessed that games and video would be the drivers in the mobile phone market ahead of location functions or barebones speech enablement ?
Macromedia comes to the table with ColdFusion 7 and argues rather effectively that their tag-based, front-end experience plus cross platform development and delivery capabilities puts them in a neat position to deliver a new and enhanced application development environ. And ColdFusion 7 delivers better object and forms handling with the Flash form option including development extensions for Dreamweaver Mx 2004. It also touts better reporting with a new visual banded report writer tool which can now deliver to Adobe PDF and Flash Paper as well as HTML pages. Finally, ColdFusion 7 adds important support for SMS-based mobile text messaging and IM-Instant Messaging support
In sum, ColdFusion has developed an environ that acts as a good, ease-of-use front-end for complex programming processes such as web database bindings, Web Services requests, and J2EE programming. Now the Macromedian magicians are applying their wizardry to distributing more presentation logic through Flash to the client and providing more mobile and instant messaging connections with their IM and SMS services. Not too shabby for an upgrade. See our detailed overview at the OpenSourcery and anticipate a technical review in the next month or two.