CFEclipse: Pros, Cons, and Misconceptions
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.




- Doug
@Doug - Yes, there is a list for CFEclipse users, there has been for years. It's listed right on the CFEclipse web site under the Support tab: http://groups.google.com/group/cfeclipse-users. I agree that once you get the hang of it, the IDE is extremely powerful.
I was doing a search through the blogCFC codebase of the entire blogCFC folder searching for 'rb' . For some reason eclipse would not find the rb in the application.cfm file. I even tried searching directly in the file for it with the search function and it didn't work. The find function found it, but search would not.
I even tried it again after restarting eclipse and it didn't find it. (even though it found a couple of hundred other matches in the folder). These sorts of bugs concern me as I rely on the search function quite a bit. I just happen to know there were some in the application file.
Oddly enough, I was copying and pasting from one open file to another that same night and eclipse would only paste 75% of what I had copied. I tried and tried. It just wouldn't do it.
I still use it, but eclipse and cfeclipse are not very user friendly in comparison to Dreamweaver unfortunately. In addition, site management is something I'll always miss from Dreamweaver.
This is also helpful for people who get bugged by the "It must be a project" thing. Just use the file view and you can browse anywhere. (Although in general you should work in projects.)
@Mike - As Ray points out, there are several options for FTP. CFEclipse has FTP built in, as does the Aptana plugin.
No, I work in the same way. The few times I ever find myself needing to open from the file and not from the IDE, it is for a quick change and I'll open up notepad++.
I just don't know why you'd want to open up a full IDE for that - it'd take longer to load than to make the change.
As for the memory, I haven't checked in a while, but I recall a time when my Eclipse setup was pushing 500 MB memory usage.
Flex Builder 2 changed everything Daily use of FB2 exposed gradually exposed the merits of Eclipse. That exposure soon translated into a level of comfort I didn't have way during my first encounter with CFEclipse. I grew to enjoy Eclipse so much when developing Flex apps, that when I returned to DW to write the CFCs for those Flex apps I started to miss Eclipse.
Finally the Flex Builder Extensions that shipped with Flex Builder 2 had solved my RDS problem with CFEclipse. The Flex Builder Extensions not only gave me the RDS access I desired but added some excellent time savers for creating CFCs based on ActionScript classes and visa versa.
DW still has its place. In my opinion it is still a better tool for creating ColdFusion templates that are more visual in nature due to the Design window. Also maybe its just me but I find DW tends to be less then responsive at times, especially if left to idle for a while.
At the end of the day I don't see it as CFEclipse VS. Dreamweaver. Rather its more like CFEclipse + Dreamweaver.
In the meantime, it's still me and my ColdFusion Studio 5. It just works for me. I guess that could be because I'm going on 7 years with it as my main editor. But it's starting to get awfully lonely here in CF Studio land. (Charlie, how could you???)
Thanks for any help you can offer.