Hacker News new | ask | show | jobs
by uecker 3 days ago
GCC was implemented in C and there are plenty of other C compilers written in C. GCC has been converted to C++ at some point, but large parts are still essentially C and I do not think the change to C++ was actually helpful (but others may disagree). In any case, the idea that one needs C++ to have C compilers is certainly simply wrong.
3 comments

My original C compiler was implemented in C and then bootstrapped. Zortech C++ was implemented in Zortech C, and then bootstrapped.

D was implemented in "C with Classes" and then translated to D and bootstrapped. There isn't a line of C code in it.

Over time, we gradually replace the C-isms and C++isms and anachronisms in it to native D-isms.

Clang/LLVM with its more permissive licence sees _much_ wider use and is written purely in C++. PlayStation, automotive, platforms and runtimes like Chromium/V8, Android, etc. are all built with Clang.
Clang usage is a fraction of GCC usage.

Regards, an embedded dev.

A decade ago surely, in 2026 I doubt it.

With Android, iDevices, PlayStation, Switch, and everyone that had proprietary compilers down using downstream forks from clang, due to the more appealing license.

Who is left still using GCC, other than existing projects lacking a clang backend for a snowflake embed CPU?

In any case, if it is a modern GCC release past 2012, it was compiled with C++ as well.

The license is indeed the big reason for many proprietary forks (not so much that llvm is written in C++). This is not a good thing though.
How is this relevant? (also wider use for C I would doubt)
Naturally GCC was originally written in C, given its age, and the original GNU coding standards document.

With time, the GCC developers acknowledged the benefits of using C++ over C, and migrated the code.

GCC requires a C++ compiler to bootstrap since around 2012, and GNU coding standards has been updated to several languages beyond C, time to go up with times.

I think the fallacy of this argument is obvious.
Not really, given that GCC no longer compiles with a pure C compiler.

Unless of course, you don't have anything to do, and feel like bootstraping GCC 16, using a compiler chain all the way back to 2012 thereabouts.

The question is whether GCC is a good example of the benefits of C++ for compilers. Considering the code looks to 95% like C code and uses data structures that we originally implemented in C, I don't see this argument.
I told him the same thing multiple times, just open a random code location in GCC, or a recently committed change, and see that it's basically C. But he keeps repeating that ridiculous argument like a broken record.