I still remember the first time I discovered an IDE. This was over 20 years ago, and I was working on a personal project (a DOS based game), and picked up Turbo Pascal on the advice of a friend. Yes, I know I am dating myself now, but Borland’s Turbo Pascal was revolutionary. Aside from featuring a fun language and featuring lightning fast compilation (this was in 640K and 286 processor days), the real game changer was the development experience. File and project manipulation, a real editor, integrated help, F9 to compile and any errors or warnings instantly identified in code, a profiler, even an integrated step-by-step debugger … all things we take for granted nowadays, but back then this was revolutionary. The beauty, the simplicity, the sheer elegance, Borland got it right. And when they then added Turbo C and Turbo Assembler and more to the mix, they had found a winning formula and they dominated the landscape (right before making a whole series of superbly dumb business decisions that effectively killed the company and thereby handed the lead on development tools to competitor Microsoft, but that’s a whole different topic).
So why this trip down memory lane? Lately I’ve been thinking a lot about IDEs and the ideal development experience. And I’ve been thinking about the fact that there is no ideal development experience, at least not one that is ideal for all developers. We coders take our IDEs very seriously, and rightfully so. When you spend so much of your time writing code you should indeed be using tools that help you be more productive (as opposed to tools that trip you up). And once we find something that we like, we resist any changes. IDEs rank right up there with politics and religion as topics that only the brave would dare debate.
Which brings me to ColdFusion IDEs. Or rather, the lack thereof. Or … Well, let’s briefly look at the popular options to date:
Back in Cold Fusion 3 days (yes, back then it was Cold Fusion, two words) we realized that CFML developers needed a development tool. We bought HomeSite from Nick Bradbury, and created a version of it called Cold Fusion Studio (eventually renamed to HomeSite+). This tool enjoyed a very loyal following, and the fact that it was Windows only was not much of a concern as so was Cold Fusion itself (and back then we did not see the sea of shiny silver Macs that we see at ColdFusion events these days). HomeSite (including Cold Fusion Studio and HomeSite+) was not an IDE, it was an editor, and an exceptionally good editor at that. It was lightweight, responsive, extensible, and mostly intuitive. But it was also written in Delphi, a language that is tough to keep supporting. And most importantly, it was never really a profitable product. Considering what it cost to maintain, and the number of copies sold, HomeSite was always more important because ColdFusion needed it than it was as a product unto itself. But that was a long time ago, and we’ve done nothing (ok, almost nothing) with HomeSite since Macromedia acquired Allaire close to a decade ago. ColdFusion has evolved significantly in that time, but HomeSite has never kept up with it (it does not even know what a CFC is!). Between the fact that HomeSite was written in a language basically not used anywhere else in the company, and the fact that it was never a profitable product, and the fact that Macromedia had demonstrated phenomenal success with Dreamweaver, HomeSite just suffered from neglect. Still, HomeSite has fans to this day, and many ColdFusion developers love it and still swear by it.
I mentioned Dreamweaver, the award-winning and highly rated Web design and development tool, a Macromedia creation, and now part of Adobe’s Creative Suite. Way back in Allaire days I flew to San Francisco to meet with Macromedia to discuss them adding CFML support to Dreamweaver, and offered guidance around their initial ColdFusion support. Since then, Dreamweaver has continued to add ColdFusion integration, more enhancements in some releases and less in others, but always supported. At one point there was an aggressive push by the Dreamweaver team to make that product the best tool for ColdFusion developers, and support was added for CFCs, RDS, debugging, and more. And many ColdFusion developers, including myself, did indeed jump on the Dreamweaver bandwagon (and, to be very fair, many developed a sort of love-hate relationship with the product, what it did it did well, but there was too much it did not do, and much of what it did well we did not care about). Like HomeSite, Dreamweaver is not an IDE, but for many developers it worked and worked exceptionally well. Dreamweaver is a big, powerful, and extensive product, the undisputed leader in its space. But for many ColdFusion developers it didn’t work as well, especially the hardcore coders who never wanted a design view and never wanted color palettes and never wanted most of what Dreamweaver focuses on (those same developers who may feel more comfortable in an Eclipse or Visual Studio type world). In short, many coders find that Dreamweaver is better suited for web design and development than actual coding. And they are right; this is not in any way a criticism of Dreamweaver, the product just has a different purpose and target user base. In fact, the most recent Dreamweaver updates have focused primarily on CSS and XML/XSL and JavaScript, and rightfully so, that’s what most Dreamweaver users need. So, while Dreamweaver is definitely not for all ColdFusion developers, many of them, especially those without a strong coding background, find Dreamweaver to be an ideal ColdFusion development tool.
The third ColdFusion development option is Eclipse. Eclipse is an open source software development platform comprised of an IDE and a plug-in system to extend it. It is written primarily in Java, and is used to develop applications in Java and numerous other languages (as well as development that isn’t even language based at all). Eclipse itself does not support CFML, but the community leveraged the plug-in system to create CFEclipse. This project was initiated back in 2004 by Rob Rohan, and since then many others have gotten involved to varying degrees, with Mark Drew most recently taking the lead. Adobe, and the ColdFusion team specifically, actively supported the CFEclipse effort, and contributed code to the project. CFEclipse is designed for developers not served by Dreamweaver, and does not support any of the design centric features that Dreamweaver boasts. CFEclipse is definitely a tool for coders, and many ColdFusion developers do indeed rely heavily on this tool. The real beauty of CFEclipse is the openness of the Eclipse platform and the extensive array of plug-ins available. Need support for HTML, JavaScript, Regular expressions, SQL, version control systems, XML, DBMS front-ends, and more? No problem, download the right plug-in and you’re all set. That’s pretty compelling, a real IDE that gives developers complete control is highly appealing, and lots of ColdFusion developers have indeed gone this route. But, it’s not all rosy, and Eclipse based development has lots of detractors who find it slow and sluggish, inconsistent, not quite polished, buggy, and worse. And there is validity to those concerns, and regardless of how you feel about Microsoft, taking Visual Studio for a ride makes you quickly realize that Eclipse is a perpetual work in progress. Still, as many ColdFusion developers have discovered, Eclipse + CFEclipse + whatever other plug-ins you need = a powerful ColdFusion development platform, and the closest we’ve ever gotten to a real ColdFusion IDE.
So, three options for ColdFusion development, HomeSite, Dreamweaver, and Eclipse. And all three are in use. We’ve been researching and polling this for years while trying to figure out what we need to do to best serve the ColdFusion community, and no clear winner has emerged. All three have loyal bases who love (or at least like) what they use, and who don’t like the alternatives. The exact ratios vary based on the venue, ask the crowd at cfObjective and Eclipse is the clear leader, ask at MAX or many usergroups at Dreamweaver comes out ahead, and visit many of our customers and you’ll find lots of HomeSite in use, and even these generalizations have exceptions. The reality is that there is no one size that fits all, and despite the very strong opinions and emotions on the subject, there is no clear leader when it comes to ColdFusion development tools.
This has proven to be a very difficult situation for the ColdFusion team. We know that ColdFusion developers need an IDE now more than ever. As ColdFusion has become more capable, as ColdFusion applications have grown in complexity and scope, as the skills of ColdFusion developers have increased, and as the Enterprise and mission-critical use of ColdFusion has mushroomed, so has the need for a real IDE. And so we argued and discussed and researched and debated long and hard to come up with a plan, looking at all the options, and weighing their pros and cons.
It became clear that Dreamweaver is not the ColdFusion IDE, and that trying to make it so would not be in the best interests of Dreamweaver or ColdFusion users. Dreamweaver should, and will, continue to support ColdFusion, and those who are happy doing their ColdFusion development in Dreamweaver must be served and supported. But Dreamweaver needs to focus on where web development is focused, as it is indeed doing now. Forcing full blown ColdFusion IDE functionality into Dreamweaver will not be advantageous to either ColdFusion users or Dreamweaver users.
Many of the ColdFusion team wanted to resurrect HomeSite (yes, I know it was not truly dead so resurrect may be a strong word, but let’s be honest, it was not quite alive either). This option has merit. HomeSite is small, tight, fast, and we’d fully control the environment allowing us to create a truly ColdFusion specific experience. But in the end this option was deemed unworkable, particularly after this much time. In addition to all of the ColdFusion support that we’d have to have written, we’d still be faced with having to support all other related web technologies (HTML, CSS, XML/XSL, JavaScript, and much more), being Windows only, and having to maintain a team of developers who could not share any work or resources with any other development teams in the company because they would be the only ones writing in Delphi. As much as we all loved HomeSite, its continued development was impossible to justify.
Which left Eclipse. As already mentioned, there are some very compelling arguments for the Eclipse platform. And on top of those, Adobe as a company has committed to Eclipse as made evident by Flash Builder, LiveCycle Workbench, and now Flash Catalyst. Building a ColdFusion IDE that could leverage other work within the company, and more importantly, could align with those projects (especially considering how many developers are writing ColdFusion powered Flex apps) makes lots of sense. But, as already noted, Eclipse can be awkward and inconsistent, and addressing this is anything but trivial.
When weighing all of the options, and removing emotion from the discussion, it becomes abundantly clear that Eclipse is indeed the right platform on which to build a ColdFusion IDE, which is why we’re doing exactly that for ColdFusion Builder. Doing so allows us to support CFML and ColdFusion development, it allows us to support all supporting Web technologies, it allows support for everything from FTP to version control to SQL and more, it perfectly aligns with other Adobe offerings, and it provides a platform that we can truly commit to and build on as we plan the future. Between Flash Catalyst, Flash Builder, ColdFusion Builder, and LiveCycle Workbench, we’ve got an end-to-end development workflow on the same platform, and building on Eclipse is the only way to accomplish this. We’ve had to figure out what plug-ins to use, what to license, and what to write ourselves, so as to deliver the best experience for ColdFusion developers. And I’m not sure that we’ll get it right for version 1 (ok, I am sure we’ll not get it right, there, I said it). ColdFusion Builder is definitely a 1.0 product, and users should understand that. But they should also understand that we are building the tool to allow for rapid improvements, constant updates, and flexible extensibility. Version 1 will be good, and subsequent versions will be better, it’s all upside from here.
Having said that, we fully understand that not all ColdFusion developers will want to use an Eclipse based ColdFusion Builder. And that’s fine. There is no one size fits all when it comes to developer tooling, and that would be the case whatever option we chose. And recognizing this, we do plan on updating Dreamweaver for ColdFusion 9. CFEclipse is not going away, and there are other 3rd party tools that offer varying degrees of CFML support. There are now more options for ColdFusion developers, and that’s a good thing. And most importantly, ColdFusion developers are getting a long overdue addition to their toolbox, the ColdFusion IDE we so deserve, and one that is well positioned to grow and evolve along with the product it supports.

59 thoughts

  1. Any post that gets 50+ comments is a good one!
    What I think is missing, or not talked about enough, is that CFB needs to be "Adobe". Let me explain… The reason I buy Adobe products is because they work. Plain and simple. The reason I buy Creative Suite is because each individual tool works well with the others in the suite. But what I’ve come to love the most is not the work flow or the round trip development, It’s the USER INTERFACE. All of the CS4 tools look the same, as do the micro sites, demos, AIR apps, etc that Adobe puts out.
    MAKE THE COLDFUSION BUILDER UI "ADOBE".
    For nearly two months now I’ve wondered why Flash Catalyst has one UI while the Flash and CF Builders have another. Why? Especially when they’re both Eclipse based. I’m sure I’m not the only one who feels this way, and I’m sorry for yelling in caps before, but this is not a small thing. I spend many hours each week looking at the same monitor. Whatever CFB turns out to be… make it easy on the eyes… please.

  2. Whatever people may think about Microsoft, Visual Studio is awesome compared to Eclipse. I think Visual Studio alone can be a reason for people to choose, for example, Silverlight over Flash/Flex.

  3. RE: No Linux support in ColdFusion Builder
    Is it worth it to alienate all of the Linux based devs just to save the cost of supporting the app on Linux. It’s a java app. What insight does the CFEclipse crew have on cross platform support.
    Information like this: http://www.compoundtheory.com/?action=displayPost&ID=432 proves it is (was, at least) trivial to make the program cross platform compatible.

  4. Why would I spend $250+ for the CFBuilder when CFEclipse is free?
    Adobe is trying to monetize on the segment that they are destine to fail. We all tried CFBuilder, we all like it and we all went back to CFEclipse when the beta expired 🙂
    Let’s face it – CFBuilder is not superior enough to CF Eclipse to cost $250+,
    and unlike FlexBuilder it really isn’t a true IDE (it really is still just an editor – just an awesome editor)
    Adobe should get of the pipe dream of making money on tools like CFBuilder and concentrate on
    development of core products, like JRun, which quite honestly does not compare against any other Java 6 EE (former J2EE) (in reality it is somewhere between EE and SE – from the load and thread handling capabilities – but that’s totally different discussion 🙂 )
    Supply tools like CFBuilder at reasonable price (under 100) o0r don’t even bother (not with CFEclipse out there going strong)

  5. I’m a long-time user of Dreamweaver, and a heavy coder. Over the years I’ve found Dreamweaver to be a reasonably good tool, though like many others here I could pretty much care less about the design view. About the only thing I use it for is to more quickly navigate to a particular section of code by using split view. Disappointments have been the lack of support for viewing MySQL stored procedures, and the flaky nature of the cfc outline view (I don’t remember what DW really calls that palette). I’m currently on CS3, and haven’t seen much in the later versions that make me want to upgrade. In fact, I’ve been actively moving to open source for as many applications as possible, so switching away from DW has been on my to-do list for a while.
    In that vein I recently decided that I would give Eclipse a try to see if it could really replace DW. To make a really long story short, I first tried CFEclipse with some additional plugins (such as QuantumDB for better db integration). Then I tried Aptana. Then I tried CF Builder.
    The result is that I find none of these provide some of the features I really value in DW. Here’s how my notes summarized the missing pieces (well, one was a great find – QuantumDB):
    – Templates: not available in any of the three, though cfincludes could be used to eliminate the need for templates
    – Automatic updating of files when a file they reference gets renamed (especially useful when renaming js files to eliminate problems caused by browser caching of an old version): not available
    – Robust search and search-and-replace: Eclipse Search view is OK, but not as good as Dreamweaver (e.g. can’t search/replace in a selection)
    – Cloaking, not just from FTP, but also from searches: not available
    – Database explorer with support for MySQL stored procedures: none of them support stored procs, but QuantumDB does!
    – FTP synchronization: Synchronize View in Team is OK, but I prefer the way DW handles it
    – CSS support: nothing like in Dreamweaver
    In the end, none of the Eclipse-based tools fit my needs well enough to make the switch, which is unfortunate because I really, really like the ability to add plug-ins to add new functionality. On the other hand, the eclipse UI is a bit on the screwy side sometimes, so it would certainly take some time to get truly productive with it.

  6. I guess I’ll stick with my dusty old version of HomeSite+. Like every other Adobe product, Cold Fusion Builder has too high a price tag for my budget. Over the years I’ve spent several thousand dollars on various versions of what used to be the CF Suite, but ever since Adobe took over the product, I haven’t been able to afford the software. The initial outlay for any Adobe product is huge, and the upgrade prices of $200 and up for any given product are simply out of reach for a self-employed person like me to try to keep up.
    Since neither HomeSite+ nor my latest version of Dreamweaver (which I never use) qualifies for the CFB upgrade price, I would have to pay the full $299. Considering that HomeSite+ cost about $80 and provides EVERYTHING I need in a "development environment," with one exception (mentioned below), I can’t justify spending $299 dollars to learn an entirely new system that I may not even like. The only reason I can still develop in CF at all is that the development version of the server is still free. If Adobe ever starts charging for that, it will be time for me to learn a new language.
    I think the fact that HomeSite+ is still so useful for CF programmers is a significant one. What other product has maintained its usefulness to so many developers over so many years, even without any support at all? To support those developers, all Adobe would really have to do is continue to create the add-ons for the tag insight and help files for each new version of ColdFusion. These are the ONLY things I miss in my HomeSite+ editor. While they require a certain amount of time and cost to create, they require no (or very little) additional coding to the actual product. I still have not heard a compelling reason for not doing this. Of course, Adobe is probably just trying to shoehorn people into using one of its other products instead of HomeSite.
    Still, for very little cost and effort on Adobe’s part, the dedicated HomeSite+ users could be satisfied by simply having access to updated help and tag files for the product. I’ll bet most of them would even be willing to pay for it. I know I would be willing to pay up to around $80.

  7. Hi I have just got a job and the website uses very complex coldfusion. What is the best way for me to learn the CFlanguage I have no training but love the way it works
    Thanks

Leave a Reply