I'm sitting in JFK airport in New York and my flight back to Raleigh was cancelled due to the storms on the east coast. Fun stuff. So I thought it might be a good time to pull a "Peter Bell" and churn out a couple of blog entries on my new MacBook.
Last week an interesting and heated discussion was going on at the CF-Talk list regarding ColdFusion code editors. I chimed in with a response that will probably surprise no one who reads this blog: I trumpeted CFEclipse. What surprised me was the range of responses the topic of CFEclipse had among the broad CF-Talk crowd. Some people agreed with my praise for it. Some people were openly uncertain. Not too surprising there.
No, the surprise came from the number of people who either had negative feelings about CFEclipse or who openly bashed it. And once I got into deeper discussions with these folks, one theme emerged: most detractors of CFEclipse have deep misconceptions about how it works and what it can do.
Some lamented that lack of any site-wide search capabilities. Others derided the fact that you can only intent code one line at a time. Uncompelling snippets, no easy way to test some code quickly without creating projects, lackluster tag editing/insight, or undesired keyboard shortcuts.
Anyone who uses CFEclipse already will instantly recognize that all of these complaints are actually non-issues. There is full site wide search. You can indent blocks of code with no problem. The snippets are extremely powerful. The scribble pad makes quick tests a snap. It has plenty of tag editors and tag insight for all tags and functions (even CF8 already). And the keyboard shortcuts can be extensively customized.
So the majority of the issues people seem to have with Eclipse are not actually issues at all. In this regard, it appears that fans of CFEclipse need to blog or present more on this topic to raise awareness, because this is a shame.
However, there were a few concerns that are more substantial:
One is the memory footprint of Eclipse itself. I run MyEclipse, FlexBuilder, and Aptana alongside CFEclipse and it will routinely use about 150 Mb of physical RAM. My large number of plugins is probably on the very high end, but even so, many people seem to think 100+ Mb of memory usage is too much.
I'm not sure if that is a vocal minority or not, because I simply didn't think anyone but a tiny percentage of ColdFusion developers are working on systems with less than 1 or 2 gigs of RAM. RAM is so cheap now (I found a 2 Gb stick for $68) and I have a hard time grasping why anyone would still limit themselves to 512 Mb. However, I suppose it can't be denied that Eclipse does eat up a good bit of RAM. If someone truly has no way to get more RAM this is indeed a showstopper.
Another common complaint was the fact that you can't just click on a file in your file explorer and open it in Eclipse. This is also a valid observation, but I was somewhat surprised by how many people were bothered by this. For me, when I'm working, I'm working. Eclipse is open, and my workspace and projects are all right there. If I need to open a file, I open it from here. It's rare than I just unexpectedly need to open a single file. Am I alone on this or am I unusual and this limitation of Eclipse is really a problem? I'm also not entirely sure why this limitation exists. Is it because Eclipse doesn't know which project or workspace you need to work with if you open a file outside of it?
This relates to another seemingly major problem: the fact that Eclipse pushes its approach of workspaces and projects upon us. I realize this is primarily a carryover from its Java roots, where most projects require external packages, build paths, and other settings. However, with the ability to integrate with Subversion and the integration with ANT that can be leveraged at the project level (like automatically running unit tests when you save a file), I don't really mind this setup. To me it was just a change in approach that took a little time to get used to, but only a little.
Finally, a lot of the issues seemed to be related to the learning curve associated with Eclipse. There's no doubt that it is more difficult to set up, configure, and update than a commercial package like Dreamweaver. Lots of panels, update sites, plugins, configuration options, and setup processes. I know Mark has an install of Eclipse with CFEclipse pre-configured, and that certainly helps, but it seems like people need more help. The CFEclipse TV videos that are available also help a lot, but many thread participants weren't even aware they existed. Again, do you think fans of the IDE should do more to raise awareness, or do the new users bear some responsibility for taking more time and effort in learning about the help that is already available? And further, is this a case of "you can lead a horse to water but you can't make him drink?"
Time permitting, I'll try to record a Connect presentation on setting up and/or using CFEclipse. My goal will be to try to show anyone who misunderstands what the IDE can do what its real capabilities are and how it's actually quite easy to use once you've spent some time playing with it. It really seems to come down to the fact that people are comfortable doing things they way they always have, and are averse to change and the uncertainty it can bring.