This Old Dog Learns Something
I make a habit of trying out new things when I come across them. I end up trying a lot of stuff, and I tend to make pretty good evaluations fairly quickly. I first came across Ruby when it popped up in a search engine’s results when I was looking for something completely different. It’s the same with most tools and technologies I use.
A while back I tried the Eclipse development environment. I had problems running it on my Linux box, and my Windows box at the time was too slow to make it usable. Back on the pile it went. Six months or so later, a client standardized on Eclipse, so I got the latest version and tried again. I gave it a couple of weeks, but never got it to work for me. I couldn’t reliably synchronize with their CVS repository, the project builds were inconsistent, and it crashed on me fairly frequently. Back on the pile again.
In the meantime, I was smugly going around telling folks that Eclipse wasn’t for me: I’m an Emacs guy, after all.
Well, it turns out I was wrong.
Andy and I just started a new project, so I decided to give Eclipse the old college try just one more time. To my total surprise, it works for me. Not only does it work reliably (admittedly on a fairly small code base), but I’m finding that I’m more efficient than I was using Emacs. Some stuff is just plain clever (like the way it reflects changes in my package structure in the underlying CVS tree), and other stuff is just nice (like the error bar next to the source window which is surprisingly useful when you’re trying to do refactorings not supported by its build in tools). I also like the way it lets me program by intent: I can write a code fragment assuming that the methods I need exist, then ask Eclipse to create stubs for them automatically.
It isn’t perfect, and I’m starting to see why I had problems initially. When past clients talked me through setting it up, I’m not sure they did things in the most straightforward way. This is a gripe I had (and still have) with Eclipse; they are 27 ways to do most things, but not all of them work well (or work together, I’m still not sure). Importing an existing CVS tree into your workspace is not intuitive. Accessing the repository in the first place takes some guessing (right-clicking on a blank list of repositories gives you the option).
But I still like it, and I’m going to see the current project through with it. And I’m glad that I didn’t give up on it totally when I was trying it out; I feel I’m now more productive using it.
Microsoft folks talk about "flipping the Bozo bit;" don’t write off fellow developers just because they may not get something, or because they may have made a mistake. I guess the same applies to tools and technologies too.



