As of late 1999 (as I recall; corrections welcome), egcs is now the main GCC branch, so it has become GCC and comparisons are not only odious but meaningless as well. Cygnus (now owned by Red Hat as of January, 2000) is now maintaining GCC, and that's that. This is a Good Thing IMHO, but there's room for argument. In any case, this whole node is of purely historical interest. "egcs is dead; long live egcs."

To expand on the_demiurge's writeup below, Cygnus started doing egcs because they were selling a UNIX development environment called GNUPro, which featured the GNU C Compiler, a.k.a. GCC. They were competing with commercial compiler vendors, so they needed more up to date features than GNU was providing in GCC: The C++ language was in more or less constant flux from its inception in the early 1980s up until 1998 when the ANSI/ISO standard was finalized, and all of the compiler vendors are still struggling to get compliant with that standard as I now write (August, 2000). For a long time, GNU was farther behind than most. Namespace support, for example, was a glaring lack.

Cygnus needed new language features that GNU wasn't adding: So they started adding themselves, hence the "experimental". They did a good job, such a good job, in fact, that they ended up getting the whole project to maintain as above. It was a Cygnus programmer, Michael Tiemann, who added C++ features to GCC in the first place. He's mentioned in one of Bjarne Stroustrup's books, The Design and Evolution of C++. Smart guy, apparently, though Stroustrup seems to have thought he was goofy.