Welcome!

Simon Horwith

Subscribe to Simon Horwith: eMailAlertsEmail Alerts
Get Simon Horwith via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: RIA Developer's Journal, ColdFusion on Ulitzer

RIA & Ajax: Article

A New Year's Resolution: Get to Know ColdFusion

CFDJ Editorial — A New Year's Resolution: Get to Know ColdFusion

Keeping up to date with the most recent versions of software and programming languages is the toughest challenge for me as a developer.

With each passing year it seems that the demands of being a top Web developer require proficiency in more and more tools and languages. Gone are the days of just knowing HTML and JavaScript Validation.

A Web developer today has to be competent not only with HTML and simple JavaScript, but also with CSS, XHTML, object-oriented JavaScript, DHTML, and AJAX to name a few...and that doesn't include server-side development or use of Flash/Flex (another industry standard). Many of us are also expected to keep up to date with the newest version of ColdFusion the minute it's out, and it's becoming more common to be expected to master ActionScript and Flex as well. I'm going to ignore all of the Web standards and Flex 2/ Flash and focus on the importance of being more familiar with ColdFusion in this month's editorial.

In the course of three years, from the release of ColdFusion MX to the release of ColdFusion MX 7.02, the landscape has completely changed for CF developers. For the first time we had native XML parsing, a report building tool, a new charting tag suite, a more feature-rich version of Verity, the native ability to cluster ColdFusion server instances, SOAP (Web services) support, the ability to do Flash Remoting, access to server-side events, an Event Gateway framework, and object-oriented CFML (in the form of ColdFusion Components). We also had dozens of other minor new features and changes added to the language and to the CF Administrator, and an entirely new underlying platform to learn to optimize, configure, and troubleshoot. Not one thing in that list existed prior to the release of CFMX.

These are a lot of features to learn how to implement and how best to use on our applications, and many CF developers have barely scratched the surface of several of them. For example, I wonder how many of you have written an event gateway? How about even using an event gateway in an application? What about the report builder...are you able to create reports and sub-reports quickly or easily or have you managed to avoid learning that tool? Hopefully by now you are aware of the benefits of using ColdFusion Components to represent business logic, but are you doing it in your applications on a daily basis? Have you become comfortable with the idea of object-oriented CF yet? It's a lot to learn and a hell of a lot to master, and I've got news for you: ColdFusion 8, currently code-named Scorpio, is going to be another big feature release, with many, many new features being introduced.

ColdFusion MX 7, a robust feature-rich release, was very quickly and widely adopted by companies already using and new to ColdFusion. It's easy for the owner of a company to see marketing materials about the new features and say "neat - let's get it," but for many developers the implications of this aren't quite as easy because of the large new feature set to master. With another feature-rich release looming in the future, what can you do to prepare?

First and foremost, try to get as up to speed with the current features as you can. In ColdFusion MX 7.0.2, there are 291 CFML functions and approximately 106 CFML tags. It's not reasonable to expect that you would have complete mastery of the skills required to properly use them all, but it's certainly feasible that a developer can learn enough about their syntax and purpose in order to have a better understanding of how to solve any problem they face in code and to quickly know where to turn for the answers. The first thing every developer should do when sitting down to a new development environment is download the free CF Documentation from Adobe (available at www.adobe.com/support/documentation/en/coldfusion/). These documents (available as pdfs for off-line use) are an invaluable source of information for any developer using ColdFusion so always keep them handy.

I guarantee that being more familiar with all of the current features will aid you tremendously in getting up to speed with the next batch of enhancements. In addition, I recommend starting small - pick focused areas to master. Rather than learning everything at once, pick a specific feature set (charting, reporting, CFCs, etc.) and spend anywhere from a few hours to a few weeks just learning and practicing using that feature set. In no time, you'll find that you've learned a huge amount about what the server can do and about how the features are implemented.

I also recommend being ready. You know CF 8 is coming. You may not know when and you may not know exactly what it will contain, but you know it's going to have a lot of great new features and you know it's coming, so put together a game plan now about how you're going to make the time to learn it whenever it does come out. Talk to your boss about it - letting him or her know now that you want a week or more (if possible) to study the new version when it is released can't hurt (and shows a lot of initiative). If you or your department has a training budget, make sure that you've kept some of that budget stashed away for training in the form of classes and/or conferences after the new version is released. There's a lot you can do to be ready.

It's often said that most CF developers use 10 particular tags for 90% of what they do. While this is true, it also accounts for the fact that most CF developers aren't getting their money's worth from the server or from their own code; when a new feature is released that they want to use, implementing the new feature will take longer, possibly resulting in the feature not being implemented efficiently or effectively, and in any case could make implementing the new feature a daunting task. This is why, though you may not necessarily need to implement every feature or even more than 10 tags in your applications, it is essential for ColdFusion developers to be studious and passionate when it comes to the onslaught of features that Adobe's server team has hurled at us. They won't relent and neither should we. A very senior member of the CF server team once said to me, "We just make the tools - it's up to you developers to figure out the best way to use them." Brilliantly put. It's not just our livelihood but our responsibility to explore every capability the server has to offer. This is a New Year's resolution we should all be making to ourselves and our employers for 2007 and so long as Adobe and the ColdFusion Server Team continues delivering the kind of feature-rich versions we're fast becoming used to for many more years to come.

More Stories By Simon Horwith

Simon Horwith is the CIO at AboutWeb, LLC, a Washington, DC based company specializing in staff augmentation, consulting, and training. Simon is a Macromedia Certified Master Instructor and is a member of Team Macromedia. He has been using ColdFusion since version 1.5 and specializes in ColdFusion application architecture, including architecting applications that integrate with Java, Flash, Flex, and a myriad of other technologies. In addition to presenting at CFUGs and conferences around the world, he has also been a contributing author of several books and technical papers.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.