Hacker News new | past | comments | ask | show | jobs | submit login

C is still pretty special in that it's generally used to write the compilers for all the other languages. Even today, if you were to create a brand new language, you'd likely write the compiler in C (or maybe C++).

Also it still remains the most practical language for fundamental system components like an OS kernel, drivers, etc.

Most people don't work on compilers or kernels, so I'd say most people don't actually need to learn C. But, unless C is ever unseated from its position, we'll always need some people out there that know it. :)

To unseat C, we'd need a language with similar low-level expressive power, minimal overhead, and a compiler written in that new language that can compile itself.




> Even today, if you were to create a brand new language, you'd likely write the compiler in C (or maybe C++).

You might write the bootstrapping compiler in C for portability reasons, but you'd probably write the real compiler in the new language itself. Not to mention that if you don't mind the extra dependency on POSIX platforms you don't even need to write the bootstrapping one in C. For example, the Rust compiler frontend was originally written in OCaml, and is now written in Rust with a fairly complicated bootstrapping process. The backend is still C because it uses LLVM, but it hardly has to be


If I remember correctly Go's first few compiler implementations were written in C, but later were written in Go (bootstrapped by C).


They actually wrote a tool that turned C code into (unidiomatic) Go code, and then later gradually improved the codebase they got from that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: