Why (I Think) You Should Buy ColdFusion Builder
Every so often, despite what might seem like obvious reasons to some of us, we still see arguments against paying for the IDE that Adobe has provided for CFML development -- ColdFusion Builder. "Why should I pay for CFB when CFEclipse is free?!" Here, I'll make a case for the minuscule ($300!) price-tag that Adobe is charging for the awesome editor that is CFB.
There are a lot of features that CFB provides that no other CFML editor currently does; and some of them are kind of subtly named. They may not sound like much by name alone, but each is a powerful and useful feature in its own right. Lots of details after the jump. You may want to freshen your drink first.
Above is a feature comparison chart from Adobe's marketing materials, courtesy of Terry Ryan. At a glance, it should be pretty clear that CFBuilder offers a lot over and above alternative IDEs.
Let's start with the one row that doesn't have an X for CFB: WYSIWYG editing, aka Design View. That has been left out intentionally, as this is not a design-focused tool; it's a functional-developer focused tool. Certainly, if Design View in Dreamweaver is your bread and butter (and there's nothing wrong with that!), this may not be the IDE for you. This tool is not for everybody, and in your case I might recommend Dreamweaver CS5, which also recently added a lot of HTML5- and CSS3-specific functionality.
Ok, so with that out of the way, let's talk about the things that CFB does that all or most of the other kids on the playground are doing.
Stuff Everyone's Doing
Code Assist is the ability to show things that are pre-defined as part of the language. For example, that the CFLoop tag has attributes for index, array, list, from, to, collection, etc. A good implementation will even detect that you're using the from/to attributes, and suggest that you add the index attribute because it is required for that type of loop -- and will also leave out the condition, list, array, etc attributes because they are not valid combinations with the existing parameters.
This isn't incredibly difficult to do. You have a dictionary that defines tags and functions, and what attributes there are, and which ones are valid together, and you make suggestions based on those relationships. While it's not difficult, it's important. This feature missing from any IDE for any language would be considered a glaring omission.
Snippets are commonly used chunks of code that you can insert with a keyword + key combination. For example, you might have a snippet to add a new event type in a Model Glue application, and to invoke it, you enter "etype" and hit ctrl+J. I have one that holds my Application.cfc boilerplate code, and I use the keyword "appcfc". When you start to learn where snippets shine, you start to collect them en-masse and they become an integral part of your development style. You may not think of them as completely necessary, but it's hard for me to imagine a life without them any more.
The Tag Wizard will walk you through adding tags to your code via a GUI interface. This might be handy for tags that have lots of attributes, but to be honest, I haven't played with it much. That said, it's obviously useful to someone, because it's in all of the compared editors.
CFML Code Formatting is the ability to run a wizard that will clean up a file. I assume this means fixing indenting, putting line feeds in logical places, etc. Again, I don't use this feature, but it's something every modern IDE seems to support.
Template Preview is a quick way to preview the rendered page inside the IDE. Dreamweaver and CFB both do this, although in slightly different forms, as Charlie points out in the comments. (Not all IDEs have this feature, but I didn't want to add another section for sub-groups...)
Database Tools allow you to browse existing tables structure and data, and in some cases, generate code from it. All very valuable stuff, and again, something everyone brings to the table.
Remote Project Support allows you to work with a project that is, well, remote. Generally this means that you're connecting over FTP or something equally undesirable but sometimes necessary. And again, everybody can do it, including CFB.
Secure FTP (SFTP) Support. Most CFML IDE's provide the ability to connect to remote sites using FTP, and some even include SFTP, but CFB does both of those and one more: FTPS.
CFML Framework Support allows framework authors to create shortcuts, often similar to snippets, and other productivity enhancements specific to how their framework works, and provide it to framework-users to integrate into their IDE. For example, the Frameworks Explorer in CFEclipse will allow you to browse events in your Model-Glue xml configuration, and jump straight to the event that you want, or see what messages it broadcasts, and what controllers respond to those messages. If you work with frameworks, this is definitely something you would want. I know that Mark Drew and the CFEclipse developers worked hard on that functionality, and they did a great job. Adobe has opened the door for framework-specific extensions in CFB, some of which have already been created.
And lastly (of the things most or all can do), CFML Debugging is just like debugging a .NET application or even a C++ application, where you can set breakpoints and step through the code line by line, with watch values and inspecting variable values on demand. Trust me when I tell you that this functionality blows the pants off of dump + abort. And while it's possible in CFEclipse, that is only due to the free ColdFusion Debugging Extensions for Eclipse provided by Adobe. CFB has this functionality baked in. So that's a +1 for Adobe, and another +1 for Adobe for freeware work for the benefit of the community.
So now lets talk about the stuff that nobody else is doing.
Stuff only CFBuilder gives you
Code Insight is a huuuuuuuge feature. This is like Code Assist on crack. Imagine instantiating an object, and then going to use that object, and when you type objectName. the suggestion dialog pops up with the method names, their argument names/types/etc, and hints/descriptions defined in the component. Or if you're inside a function and you type arguments. you're given a list of the arguments defined for the function. This is an obvious time saver. It's not a new idea, though -- IDE's for other languages, like Visual Studio, have been doing this for a while. But this is the first CFML IDE to bring this functionality to you. If you're not excited by this feature, development is obviously not something you're passionate about.
CFML ORM Support alludes to the fact that CF9 added support for Hibernate, and CFB is the only IDE that understands all of the new functions, keywords, and functionality that this brings with it. Sure, you can write CF9 ORM code in another IDE, but you can also drive a Geo Metro on the Audubon. Just because you can doesn't mean you should (or that you'll enjoy it).
CFML Refactoring is another feature that has a powerful future ahead of it. For version 1, it is limited to renaming of variables, methods, and files; but I know for a fact that Adobe is looking for smart features to add under that Refactor menu. And heck, even renaming has saved me a bunch of time -- and it's a heck of a lot smarter than a find and replace. And again, no other CFML IDE offers this functionality.
CF Server Management inside your IDE is pretty clever. I'm not aware of any other IDEs for CFML that do this (correct me if I'm wrong). You can start, stop, and restart both local and remote servers; as well as a bunch of other settings. Eclipse WTP will allow you to do similar management of JEE servers, but nothing else will do ColdFusion.
SQL Code Insight shows not only SQL syntax, but also table and column names... while editing a CFQuery in the SQL Editor, which is just a right-click away. That's pretty darn amazing, in my opinion. And... it's only in CFB.
Lastly, and possibly most importantly, the fact that CFB is Extensible with CFML means that you can use your language of choice (CFML) to write plugins for your IDE. You don't have to learn Java or LUA, or EclipseScript (which, yes, I just made up to prove a point). You know CFML, as evidenced by the fact that you are using a CFML IDE. Now you can extend that IDE using CFML. Makes sense, doesn't it?!
So that's how everything stacks up on paper. And paper is different from real life. What's it like actually using the product?
Real Life Usage
Perhaps you tried out CFB during the public beta. Perhaps there were some issues -- and there were issues! -- that made it not viable for your day to day work. Let's face it: it was a beta. Betas crash. As a beta tester, your duty is to live with those crashes and other bugs and help identify problem areas. That's the only way software gets better: through vigorous testing.
Nobody is denying that the beta releases had some problems. But have you tried it again since the launch? And did you know that there is already a (free!) update available, that fixes even more issues? The feature difference (on paper) makes it worth trying, and you get 60 days to evaluate before deciding whether or not to buy, so there's basically no excuse. If you haven't tried it at all, or haven't tried it since public launch, the time is now!
Let's not forget that this is a version 1 product. There are deadlines and legal issues to deal with, especially at a large company like Adobe, so sometimes features get cut or a bug isn't widespread enough to make the cut. The line has to be drawn somewhere. Luckily, Adobe is already working on version 2, and I wouldn't be surprised to see more updates to version 1.
Nevertheless, this is a version 1 product. There are some features still to come and some bugs not yet resolved. I'm ok with that, because I know that changes are coming. Compare it to the iPhone. In hindsight, v1 was amazing for its time, but looks like an oversized clunky piece of junk now that we have the 3GS and have seen what version 4 will be. For a version 1 product, CFB is impressive in what it can do, and shows a lot of potential.
The price tag is $300. Assuming you're consulting for the relatively low rate of $40 per hour (hopefully I'm not insulting anyone with that amount), CFB pays for itself when its productivity enhancements have saved you 7.5 hours. I imagine that the differences between CFEclipse and CFB save me about 2-4 hours in a given week, so I would make that up in 2 weeks. That, too, sounds like a no-brainer to me.
And what about the update I mentioned? CFB has only been in the wild now for a few months and there's already a significant update released, for free. I can't honestly speak to the update frequency for CFEclipse since I switched during beta and haven't gone back, but I would bet you dollars to donuts that it can't match the paid staff of engineers at Adobe.
Price Bickering
Still, some are just indignant that Adobe would charge for it at all. To those people, there's not much to say. Either you're willing to pay for something that will have a good return on the investment, or you're not. Here's a good quote from Ben Forta on the matter:
Time is money. Do you believe that the tool can help save you time and be more productive? If yes, then the cash is well spent. If not, then the tool is not for you, and don’t buy it.
I was having an argument with someone recently who complained that Microsoft Word cost too much. Aside from the stupidity of the argument (typewriters did a darn lot less and cost more!), it comes down to an “is it worth it to you” question. And every product you buy needs to pass that simple test – either it’s worth it or it’s not.
As if the pot weren't sweet enough
Adobe sweetens the deal even more. When you buy a CF Builder license, you get Flash Builder 4 -- the best IDE for creating Flex and ActionScript applications -- for free! FB4 standard costs $250, so you're basically getting CFB for $50.
I don't know how they could possibly make this a better deal and still put food on their table.
Updates
As he notes in the comments below, Charlie Arehart expands on my list above with even more reasons to buy CFBuilder.
As for the rest of the corrections from the comments, I've tried to integrate them appropriately above. Do let me know if I've missed anything that was mentioned or if there are more changes that need to be made; and thanks to Marc Esher, Ray Camden, Steve Withington and Charlie Arehart for corrections.
in CFBuilder Posted 2010-05-24 08:00







24 responses:
http://www.coldfusionjedi.com/index.cfm/2010/3/10/ColdFusion-Builder--Refactoring
That said, I'll offer a couple of clarifications, to help improve the accuracy of the argument you're making.
1) You could add SFTP to the mention of FTPS. CFB supports both.
2) You indicate template preview is unique to CFB, but really that (internal browsing) is something in the other editors, too.
3) You list step debugging as something that's in all the editors, but DW has never had step debugging of CFML, and while HomeSite+/CF Studio did, that was only prior to CF 6.
4) I'll note that there are still more features one could point out that weren't important enough to be listed on the Adobe graphic, but they are a source of concern/contention for some as they consider CFB.
I started to list them here but it got too long. I decided instead to create a blog entry of my own, as an extension to yours. Interested readers can find it at http://www.carehart.org/blog/client/index.cfm/2010/5/25/more_on_why_buy_cfbuilder_
Again, though, as I conclude there, I really do appreciate what you did and I recommend people bookmark and pass along your entry to any who raise the question, "why should I buy/have to pay for CFB". We need to have an answer to that for some people. Thanks again for writing this.
Thanks for sharing your thoughts and insights on this!
>>minuscule ($300!)
You don't judge a price by how much some people make per hour. Sounds very expensive for an editor compared to others.
To clarify I realized I said SFTP when I meant to say FTPS. Adam had already mentioned it (CFB) supported SFTP, but he had not said FTPS. But given your awareness of DW, are you saying it supports both?
And as for "live template view", I had noted in my comment to Adam that yes, that was not a feature unique to CFB. I just can't tell, again, if you're responding to him or me. :-)
But while we're on the topic, it's worth noting that in fact DW's "live data view" (if you may have meant that) is in fact even more powerful than the internal browser feature in either CFB or HS+/CFStudio. We shouldn't deny that. It allowed/allows you to change CFML on the fly and see it rendered in the special internal browser of DW, which was a pretty neat trick (that I feel few ever really noticed). Given that there's no WYSIWYG in CFB, we can't ever expect to see that in CFB, but again few will miss it. Just being able to view code in an internal browser may be of enough value to some, I think.
Then, too, as Adam pointed out in his original entry, are you asking that based on experience with the final version? Or a beta? And even if the final, with the update that came out? I know, for some that will just like a lot of "dancing around the problem". But really, what if any one of these things were to resolve the memory use?
More to your last point, if it did solve them would you still not be persuaded because of the cost "compared to other editors"? And even if so, then wasn't that the whole point of the entire entry, to make the argument for why it DID have value over those? Still, as he concludes, there are clearly some who just won't be persuaded. Ben's quote applies then, and there's no real reason to debate the point with them. To each his own.
What that's implying is that it's possible; and that much is true. Extensions have access to the editor content, and can change it. For example, Simon Free created an extension to convert the code samples that Ben Nadel posts on his blog to something a normal human being would write. (No offense to Ben! ;))
It's definitely possible, but it's no easy task. I'm not aware of an existing extension that does it. If you find one, be sure to let me know!
However, on that note I'd like to sell you my car. It can fly or hover in place so you'll never have to wait in 5 O'clock traffic again. Just think of the time you can save. Once you buy my car, you'll just have to build the wings, mount some jet engines and replace most of the frame with a lighter weight carbon fiber or alloy... ;)
For starters, is a code formatter really that important to you? More important than code assist and refactoring and orm awareness and... and... and... ? I should hope not.
Secondly, it's more akin to selling the car with the wing mounting brackets already there, and the jet engine fuel lines already in place, just waiting for the engine. And don't discount the leather bucket seats, satellite radio, halogen headlights, and dixie horn -- all of which are awesome features that you're not advertising to sell your car (but Adobe is basing their price on, and fairly representing). So in your example, your car is missing the entire functionality that you're advertising; while in real life, CFB is being compared to existing tools and using a footnote to point out that if Code Formatting is so important then someone is free to develop it, using a simple yet powerful extension system they've built in.
They didn't hide the fact that it requires using extensions; it's in the chart plain as day. And, to make a possibility into a likelihood, extensions are developed in the language you already know (why else would you want CFB?)... so nobody's asking you to learn anything you don't already know, like Java to write a (CF)Eclipse plugin.
At the end of the day, I think you have to ask yourself if you'd be willing to pay for it at all. If not, then there's no convincing you. If you're on the fence, then perhaps the explanations here will help you make up your mind. But once you realize that there is a significant return on the investment, it's really a simple decision to make.
Why get a desk chair when you're perfectly capable of standing?
@Charlie and Steve, thanks for the corrections. I've tried to integrate them into the post for future readers. Keep the corrections coming and I'll keep applying them. I've also added a link to Charlie's continuation post.
Just for the record, I do like CFB, and use it exclusively now (well, almost). I just poke fun some times because its so easy ;) I personally don't agree that it is valid to have an X on that spot in the comparison chart, because it isn't part of the product, plain and simple. Sure we can make extensions that could do anything, and that's one of the things I like about CFB, but it isn't accurate to tote a specific feature that doesn't exist just because it can. Think about it. Its far more accurate, and meaningful to tote the fact it is so easily extendable.
I wish we would have some frequent updates on bug fixes. Especially when we consider as the first release of a new product (CFB) on a new environment for Adobe (Eclipse) which would have lots of issues.
I somehow remember the first days of CFMX release (on JEE) and expecting having a more stable version with v2.
Keep the good work Adobe with a possible frequent updates. :)
And yes, there is active work on the next release, which has been hinted at in conferences in recent months. No official word on a release date yet, I don't think, nor much on features.
I do think they've heard the request to have more frequent updates, too, and have indicated that Storm (that next release) will come out before CF 10 (Link), for partly that reason.
In this case, I assume that Adobe tries to create CFB v2 with targeted issues on v1.x. Let us hope getting the new release soon. :)
I really love CFB and want to have it as standard in our environment for all other developers. :)
But there are some complains on my team here and I was just trying to figure out better argues with better running product.
I just opened CFB bug list and it shows as 1012 open tickets and I just mentioned this nr. There are also around 3K closed ones but I do not know how many of them are on the latest CFB 1.1 update which was on May.
I also see lots of issues in my personal usage but as you can said it does not stop me to use the product. But somehow it would be an argue and somehow it is expected to have solution for these bugs especially mission critical ones.
Again, do not forget that we are on same side. :)
That's why I had said in my reply that my info on the updater was "just to be clear (for other readers, if you already knew)".
I'm just suggesting that you may want to see our comments as just responding objectively to what you write, and as such, consider also when you write that others (who don't know you or how you feel) may read more antagonism in your words (toward CFB) than perhaps you intend.
Then again, perhaps it's more that you're reflecting what your team members are saying. If so, then again, we are replying "through you" to them, so don't hear us as attacking you, or defending CFB, but just trying to respond to the concerns as they're raised.
Thanks for the clarification and cooperation as remembering on the same side. :)
You have right that these kind of public areas should be more clear and not cause any misunderstanding.
Yes, I love CFB and I will continue to use, support and encourage others to use it. I just want to say that we are expecting better version with v2. Keep the good work Adobe! :)
BTW, I love you Charlie and Ray! :)
Outside of that - I like you, but don't quote love you. But it's a strong, non-threatening like. ;)
(Makes me think that for our host Adam here, a Pennsylvanian, we should add "Go Steelers!", er "Stillers", as I hear they say.)
Leave a comment: