I can comment on one ISV product. We have been using MontaVista DevRocket
for about a year and a half, lately at version 1.1. It is based on
Eclipse 2.1, CDT 1.1. We have two embedded application projects in C++,
each of about 600 files. We cross-develop on Windows with an embedded
target of ARM PXA270 (iwmmxt_le).
We have given up using DevRocket for most purposes. We use it to maintain
only the main makefile of each project and run the debugger. We have
built our own tool to make a header dependencies file, which DevRocket
doesn't. The only dependencies DevRocket builds are of the form .cpp ->
o and .o -> link.
We use Microsoft Visual Studio for editing, browsing, and building our
large projects.
DevRocket is somewhat capable of handling smaller projects. We have one
shared library, a .so file (13 source files excluding system headers)
which we build under DevRocket, only because a complete rebuild is fast
enough in this small case.
The debugger leaves a *lot* to be desired. It can't step into or break in
a shared library. It does not allow you to add a break point during
execution. And the program often crashes or hangs without the debugger
noticing. In many cases, we are reduced to debugging by printf.
For editing, while Visual Studio's MDI (multiple document interface) has
some real annoyances, it's much better than the rigidly paned and docked
behavior of DevRocket. The column-select ability of Studio is also a big
plus. And, Studio gives us at least minimal browsing ability, with
one-click support to go to the definition of a name. In DevRocket, the
very poor, slow substitute is incessant searching of the entire project
with hits on comments and longer names that include the one you want,
which makes searching unusable for many short names.