I have recently left the tools team of quite a large firm, who shall remain nameless. There are things I shall miss, of course, but I could never quite buy into the tools delivery strategy. Someone,somewhere, has made the decision that a developer needs to come into work, switch on their PC, open their IDE and never leave it. Their IDE is an editor, a debugger, a compiler, a defect tracking system, a project management tool, a version control system (or at least an interface to one) and in the case of embedded development a bunch ofother remote target stuff. And the list goes on. Now I agree in some respects that this is a nice ideal target to have and there are certain use cases where it really does work (eg. using the Eclipse debug framework to display core files. The work is already done.)
However, in my opinion, it is better to have an editor that edits really well. A debugger that debugs really well, and so on. Now, normally, in the case of the IDE (Eclipse in the case I saw) its core functionality is editing and everything else is a plug-in to some external interface to use something like GDB, or subversion or some proprietry PM or defect tracking tool. And this is why I just couldn’t buy it. These interfaces don’t come for free. They need to be written and tested and deployed and supported. But why? Subversion is a perfectly good tool. I don’t need eclipse to provide me with someone else’s take on its interface. The main flaw for me in this situation is the assumption that the developer is not willing to press alt-tab to bring up the subversion window. This is how I work. I edit in vim, I debug with GDB, I commit with Subversion. I do this because I like vim, because I like GDB and because I like subversion. I don’t really see these tools being improved. And in my experience the extra interpretation on top of them to put them into eclipse further obfuscates the interface.
I don’t want to appear that I am slagging off Eclipse. I’m not. Eclipse is great at what it is. It’s strength is it’s own extensibility which unfortunately opens the door to people that aren’t as good as the original developers. When said nameless company gives me a copy of eclipse with 101 plug-ins in it that cause a ten second delay when editing code sometimes, that is certainly not the fault of the framework. I do think some things belong together. Ithink having editor-compiler-debugger in a single IDE is a good target (Java people are probably thinking “alternatives to this exist?” 🙂 ). But for me at the moment, using 3 sepertate tools to compile, debug and edit is fine with me. I really don’t have a problem with it. So stop wasting effort trying to fix a problem that I don’t have and give me a tool that works, rather than an interface to a tool that doesn’t really work!