A few months back I bought a Powerbook and made the switch from PC to Mac. Motivation for the switch was provided primarily by my wife's level of productivity with her 12'' Powerbook. She had been wanting her own laptop instead of hijacking my Alienware when she wanted to do something. I surprised her with the Powerbook and upgraded my home network to wireless. Watching my wife enjoy her Powerbook in the den, in the bedroom, and on the back deck made me a little bit jealous. My Alienware was a really nice laptop. It was a desktop replacement, and served me well for 2 years. However, there are some things that the Powerbook line (and Mac's in general) do much better than any Windows laptop. I decided that I wanted my own Powerbook and I haven't looked back since. It's been, to-date, the best computer I've ever owned!
I had heard about Eclipse for months but never looked into it since I was at the time still on a PC and using HomeSite. Moving to the Mac gave me the opportunity, or perhaps a real reason, to look at Eclipse. I've been using the editor, coupled with CFEclipse for about 2 weeks now. There are a lot of things to like about Eclipse. First and foremost it's FREE. I'm still finding this fact hard to believe since Eclipse is so feature-rich. Secondly, it runs on a slew of platforms including Windows, Linux, Solaris, AIX, HP-UX, and Mac OSX.
Eclipse uses some different metaphors for developing that I wasn't privvy to. It uses the idea of a workspace where all your projects files are stored. This, in a way, is synonomous with Dreamweaver "sites" with one extra storage level. You can have several differenet workspaces but only one default. A workspace is essentially a physical location on your machine where you want to store your projects. The projects can be Java projects, ColdFusion applications, or anything else you can think of. Next, Eclipse uses something called "perspectives." Perspectives are basically IDE layouts designed for specific types of code or projects. The CFEclipse plugin is an example of a perspective. It provides several panels in the IDE that relate specifically to ColdFusion development. For example, there's the CFC Methods View panel. This is basically a CFC explorer that shows all CFC's rolled into a CF project. There's an Outline panel that shows the breakdown of an individual CF template by major code block. For instance, each block of CFSCRIPT you write will get an entry in the Outline panel. Next, there's the code window itself. With the CFEclipse plugin installed you get the benefit of syntax coloring, tag completion, tag inspection, and toolbar buttons for common ColdFusion elements like comments. As with Dreamweaver and HomeSite you can also instruct Eclipse to show line numbers in the gutter and you can make use of code snippets. There are some additional features of Eclipse that really stood out immediately. Take the line modification highlight for instance. As you change parts of your template Eclipse puts a little mark in the gutter letting you know which lines have changed since you last saved the template. As soon as you save the template, all those marks go away. Awesome! Did I mention Eclipse integrates with CVS? At least, that's what I've read. I need to learn more about this feature though.
What about things I don't like? According to some Eclipse has a large footprint on the machine when running. This hasn't been my experience at all. I've got Eclipse up right now with several CF templates open and it's taking up 844 KB of real memory and 27.19 MB of virtual memory. That's nothing considering DWMX 2004 is occupying 58 MB of real memory and 291 MB of virtual memory. And I don't have one document open in Dreamweaver. There are two things I'd like to see in Eclipse one of which is present in nearly every application on Mac and Windows. In Eclipse you can't highlight a code block and then use your mouse to drag and drop the code to another location in the document. This behavior is something native to just about every code editor I've ever used. It's also something you can do in just about every other text editing program on Mac and Windows. So why not in Eclipse? I'd also like to see a code collapse feature in Eclipse. Being able to collapse an entire CFFUNCTION block or blocks would be extremely helpful in targeting the area of the template you need to focus on. Code collapse would be useful everywhere no matter what type of code you are writing. Code collapse is something a lot of people will be more aware of near the middle of 2005. Trust me. ;-)
All-in-all I'm impressed with Eclipse and CFEclipse. Not only have I made the switch from PC to Mac, but I've also made the switch from HomeSite to Eclipse. If you use Eclipse I'd love to hear about your experience. I know I've got a lot to learn about the editor so if you have some tips or suggestions for me I'd love to hear those too. Drop me a line at trajik210 at Google mail.