embedded software boot camp

Is Eclipse The Emperor’s New Clothes?

Wednesday, September 26th, 2007 by

“Many years ago there was an Emperor so exceedingly fond of new clothes…

…one day came two swindlers. They let it be known they were weavers, and they said they could weave the most magnificent fabrics imaginable. Not only were their colors and patterns uncommonly fine, but clothes made of this cloth had a wonderful way of becoming invisible to anyone who was unfit for his office, or who was unusually stupid.

…so off went the Emperor in his new clothes that were nothing at all. Everyone in the streets and the windows said, “Oh, how fine are the Emperor’s new clothes! Don’t they fit him to perfection? And see his long train!” Nobody would confess that he couldn’t see anything, for that would prove him either unfit for his position, or a fool. No costume the Emperor had worn before was ever such a complete success.”

–Hans Christian Andersen, “The Emperor’s New Clothes”

To me this little story has a lot to do with Eclipse (www.eclipse.org), which apparently is taking our industry by storm. Obviously, I must be the poor fool, unfit to see the remarkable benefits of Eclipse, but as an embedded developer I really, honestly don’t.

Admittedly, I’m a very naïve user of Eclipse, with experience limited just to two tools: the Altera Nios II Integrated Development Environment (IDE) and the Texas Instruments Code Composer Essentials for MSP430. Both these tools are based on Eclipse, and because of this both are just terrible.

I’m really not impressed with the CDT (C/C++ Development Tooling). The CDT workspaces, project files, and makefiles are notoriously difficult to move from one development workstation to another because they contain absolute paths. Even for the simplest project the CDT manages somehow to produce hundreds of files in a directory tree 3-level deep. You tell me how am I supposed to save this in any VCS (Version Control System).

The make process takes ages.

But probably, the worst part is the GDB interface to the remote target. Not only is the connection flaky and dreadfully slow (no comparison at all to other commercial offerings.) The target connectivity spawns some GDB server processes that tend to be “pigs” (i.e., take 100% of your host CPU, even if not talking to the target.) This isn’t the highest level of professionalism…

Sure, the CDT allows you to forego the automatic makefiles generation and use external Makefiles instead (which I would actually recommend). In principle, I could also go ahead and fix any problems in Eclipse, the CDT plugin, or the GDB server, because they are all available as open source. But, then I must ask if Eclipse is really such a great productivity booster? Don’t I really have a bigger fish to fry than fighting the tool?

So, as it stands, the Eclipse Emperor is naked for me.

What do you think? What are your experiences with Eclipse in the embedded system space?

3 Responses to “Is Eclipse The Emperor’s New Clothes?”

  1. Michael says:

    The tiny breakpoint icons drive me nuts.

  2. Sellotaped to Insanity says:

    It’s not much better in the java IDE world either. There’s rarely a day that goes by when I’m not fighting with Eclipse in some way or another.Poor performance, terrible UI usability issues (slow to no response on most operations …), awful menu system, below par refactoring (again, most of the refactoring I attempt results in exceptions and unusable workspaces).I don’t think I’ve been at all taken with it. IntelliJ IDEA anyone?

  3. James Grenning says:

    I’ve used the Java version for the last few years. It is a very powerful tool. It has junit (java unit tester) built in. It also supports many automated behavior preserving refactorings. For example, If I have a method that has grown too large, I can highlight a section of the java code, select extract method. Eclipse prompts me for the method name and it does the rest.IntelliJ does lead Eclipse in the java world.Unfortunately C and C++ support is primitive. As far as the generated makefiles are concerned, I Have never use eclipse’s. I prefer to write my own. I still like the CDT, but with me switching between java, C and C++ that suites my needs.I expect the integration or 3rd party tools with eclipse will improve.

Leave a Reply to Michael