In Consideration of IDEs

I am, it would appear, something of an oddity amongst "serious" ColdFusion developers, and maybe developers in general. Why? Well, besides the whole female thing, my IDE of choice is Dreamweaver, specifically CS5.5 as of today. Yes, that Dreamweaver. I started using it around 2002-2003 with Studio MX. At the time, I still also heavily used the ColdFusion Studio and later HomeSite+ IDEs (remember those?). Loved my HomeSite, but Adobe killed it off when they bought out Macromedia, so eventually Dreamweaver became my only IDE. Just realized that wow, I've used it for TEN years. @_@ And yes, I realize that there are still some folks using HomeSite+ out there, but it isn't supported and hasn't been updated in a long time.

Anyway, suffice to say, I like Dreamweaver and on the whole it has met my development needs for all that time. It has the things that matter to me: code coloring, customizable keyboard shortcuts, code complete/hints, easy to use and generally decent CSS/visual element (i.e. why I like design view), code snippets, customizable layout/interface, built-in FTP capabilities, file search with RegEx support, and even some low level debugging built in. It works well with HTML, CSS, ColdFusion, and even PHP when I want to delve into that. Even with XML files, it does a half-way nice job of figuring out custom auto completes for stuff based on what's already in the file. The addition in CS 5 of (finally) being able to have multiple server configurations to point to that are actually easy to switch between rocks. And yes, I like being able to rename a file and it auto update all links for me (though that's less useful now that I build most apps with a Framework).

Now before you click away going "oh, she's just a DW fan girl", this post isn't to wax poetic about the awesomeness of Dreamweaver. I do have my issues with it, of course. Keyboard shortcuts are awesome, but the system is too stupid to let me have one key be the appropriate comment shortcut based on file – so I can have CTRL+1 assigned to do comments for ColdFusion while in a CFM file, but it can't flip to comments for HTML while in HTML, XML for XML, etc. The SQL coloring sucks without a third-party modification and even then its kind of eh. The CSS editor works pretty well, but it lacks support for some fairly common properties at this point, like min-height, max-height, and all those nifty properties you'd use to put curves on a box. It crashes went almost predictable regularity if you turn on the file caching on a site with a lot of files (so then you have to disable it and lose that benefit). Of course, it has no 64-bit version, and don't get my started on the absolutely asinine crap it pulls when you upgrade – i.e. never keeping your preferences, keyboard shortcuts or anything beyond your site definitions (if you're lucky).

So then what is the point of my rambling? Well, I was looking at whether it was worth upgrading to CS 6 right now, since we're still on CF9 and likely won't go to 10 anytime soon. It is a rather pricey package, even with the educational discount, to upgrade just for some of the nice goodies it adds. I mean the fluid grid layouts and support for jQuery Mobile & PhoneGap, and CCS3. But we aren't building mobile apps right now and I'm not really feeling like we will be doing many in the future, though I'd certainly like to do them for personal stuff (more on that in another post). The FTP functions have been significantly improved, from reports I've read, which is a long overdue fix. But none of that addresses any actual issue I've had with the my current version. Supposedly it has better CCS3 support and an improved panel, which would be nice. But again, when budgets are tight, not worth the cost.

Of course, it is also good for any developer to occasionally revaluation their tools, see if anything is better out there, and so on. So, my partner uses Adobe's ColdFusion Builder for all his developing. So I figured why not take this chance to see if maybe it would be a good tool to use. From some informal surveys I've seen floating around on some top ColdFusion blogs, it seems to be what roughly half all ColdFusion developers are using, so can't suck completely, right? Wanting to be sure I gave it a fair shake, I found a helpful article from Adobe on transitioning to ColdFusion Builder for Dreamweaver users. Nice. So installed the trial and away we go!

Well, kinda sorta. Things got so hectic at work right after I got it installed back on January 26th (when I started this entry), I didn't have time to run it once. Ah well, nearly three months later, my brain could use a bit of a coding break, so killing an afternoon finally trying out ColdFusion Builder. Oddly enough, even though it is supposed to be a 60 day trial, when I opened Builder, it said I had only 12 days remaining. Probably opened it last month or something and then forgot about it. Anyway, on to getting set up.

Now I don't know about y'all, but when I first start using a new program, the first thing I do is hit the preferences and mess with anything that seems intuitive enough to figure out what it will do. Thanks to the aforementioned article, I already knew I could change the color coding to match Dreamweaver's, so I did that. Hey, you get used to certain color schemes, ya know? I was glad I had that article, though, because I'd I wouldn't have guessed that the Profile section under the ColdFusion preferences was what controlled the color scheme. Builder has an impressive range of preferences, but most of them might as well be named in Russian for figuring out what they are for without popping up the help – though help isn't always very useful. For example, under HTML, there is an option to "Switch to Aptana perspective when necessary" – well WTF is "Aptana perspective"? The Help box just says "This dialog allows you to set your workbench preferences." and doesn't detail any of the options at all. Ugh.

I finally gave up on the preferences and hit closed…which triggered an error about "Changing update stream". I'd seen a section for configuring updates, but I didn't even click to it…and it threw an error?

At least it didn't crash the program, so moving on. So many tabs…guess I'll tinker with the display a bit. In Dreamweaver, I use a customized version of App Developer Plus view, with a lot of the crap I don't use out of the way. It is usually maximized on my second monitor (1920×1080 resolution), but I shrunk it down to make the screenie saner.

Dreamweaver CS5 App Developer Plus Layout

With Builder, the default Perspective has a lot of stuff all over the place.

For how I work and how I like my work space, I dumped all of the stuff from the bottom middle, and the RDS stuff (we don't use it), the File browser, and move around stuff. I decided to keep Outline, for now, since it seemed useful. By the time I was done:

Much cleaner. Now to set up a project, which seems to be Builder's equivalent to Dreamweaver's "Sites". The selector for "New Project" has three options…though two have nothing to tell me the difference between them.

Considering what I develop, I picked ColdFusion Project to keep things moving. With that done, I decided to just do a few of the things I might normally do in a given day: open a file, do some coding, save said file, upload to our development server and test it out. So I popped open a little HTML file made for helping me test formats and style changes. I was pleasantly surprised to see a tool bar appear on the file with some common clickers that I like from Dreamweaver, like list format and the like. Some didn't quite work like I expected. For example, on the CSS tab, I hit the color bar expecting I could pick a color and it would put it in inside a style attribute of the tag I was on, or prompt to make a class or the like. Instead it just stuck the hex code where my cursor was. Still, at least it does have a color picker.

So I manually typed in a style attribute to try out the code assist. Very disappointed that it was not even putting in the colons after picking a property from the drop down. I do, however, love that the contextual drops customize to what you are working on, for example if you use the color #0000a0 in one spot, it will offer it as a quick selection on any other color properties. A nice touch!

Once I was done throwing in some random silliness, I was ready to upload. Okay…where is the upload button, short cut, link, something? *** rummages around the interface…tries right clicking on the file… *** I see a "Synchronization" sub menu, which is probably it, but the options are all greyed out. Okay, I know damn well it can do it as my partner has done it before and I'm pretty sure it was from a right click on the file, and probably that menu so why won't it give me options? *** rummages more ***

Five minutes later I gave up and Googled. Thank you Ben Forta and Adobe! So the only way to set up an FTP connection is from the file window…the one I closed earlier? *sigh* Fine…adds it back while grumbling about the stupidity of having only one way to get there and wondering WTF the whole server thing I did while making the project was for…with that done, my synchronization menu was all happy and I was able to upload my humble little file. Checked the dev site and yep, it was there. Yay!

Now, can I set a keyboard short cut for uploading, like I have on Dreamweaver? Or for that matter, can I customize any of the keyboard short cuts, because I am used to certain key combos doing certain things…why yes, I can! And it was relatively easy to find in the preferences, once I filter by "short".

Now let's try opening a "real" file, one of our CFCs. Yeah, I'm liking that outline view for quick navigation to functions, or even to specific tags within the functions. A filter open is just extra gravy.

The color coding isn't a 100% match for Dreamweaver, but close enough. The font is a bit tiny, though, so let's see if I can customize that too. Again, it is the preference filters to the rescue. Suffice to say, for stuff where it is named in something resembling what I think it will be called, that filter helps a lot! And unlike many of the other screens, this one actually has nice on-screen descriptors so you know what each color and font actually applies to! So I was able to switch the default (shown below) to my preferred coding font, MS Reference Sans Serif, size 10.

Added in a bit of code missing from one function that was on my to do list. Copy/paste worked fine of course. Went in an tweaked the query, since we're updating in this instance instead of inserting. Code assist failed while adding a cfsqltype to a queryparam…well pooh. I was curious to see if it was convoluted as Dreamweaver's, which makes you type it most of the way to pick, since it doesn't skip the cf_sql that is part of ALL of them. Ah well.

There are a lot more things I could explore, I know, but I already know I'm not going to stick with Builder. Maybe if I did no UI stuff at all, I could get past the annoyances I've already noted, after all Dreamweaver has plenty of its own. But I do UI stuff on top of my ColdFusion development. While the outline view is nice, as is the unexplored function of being able to set keyboard short cuts to auto insert a snippet, in the few hours I've messed around with it, I haven't seen any compelling functionality that would make it worth switching and learning a new IDE.

I'm sure some folks are gonna say I didn't give it a fair shake by not trying it for more than a few hours, but for me that's more than enough. If there was any chance I might switch, I'd give it a longer trial, but just as you can pick up and book and go "nope" after reading the back cover and the first page, so too did I realize this just wasn't for me. My partner said I'd hate it, but that is too strong a word. I don't hate it; my first impression is that it is a nice little IDE. If I were where I was years ago, losing HomeSite+, I'd probably have switched to this if it was around back then. If I was talking to someone in the market for an IDE, I'd recommend giving it a try.

P.S. If you, like me, have no clue what an Aptana is…it appears to be another IDE built on the Eclipse engine for HTML, CSS, JS, PHP, and Ruby on Rails. So just how many plug ins does ColdFusion Builder (also built on Eclipse) need to work with the variety of languages Dreamweaver handles out of the box?