- #Python is written in C
- #Perl is written in C
- #Ruby is written in C
- #PHP is written in C
- #JavaScript engines started in C, now mostly in C++
- #Go was first in C, now written in Go itself
- #C++ compilers are written in C++
- #Swift is built with C++ and Swift (on LLVM in C++)
- #C# runs on .NET, built in C++/C#
- #JVM (HotSpot) is written in C++

Yet, people still doubt the necessity of learning C!

@mirsadra you def don't need to learn c lol

c is implemented in assembly, so you need to learn assembly??

assembly is implemented by transistors, so you need to learn circuits??

There's a level of abstraction that people stop at, and over the years it's probably averaging higher rather than lower

@danvolchek Perfectly said. We all stop somewhere. The case for C is that it's the most useful foundational abstraction to understand. It explains the cost model and constraints that every higher-level language is built upon. You learn it not to write it every day, but to understand everything above it better.

@danvolchek @mirsadra

why stop at transistors though? that's so superficial. And you left out the whole layer of microcode!

transistors are implemented in solid state physics, so better learn your single electron approximation.

solid state physics is just a bunch of quantum mechanics, so have fun solving the hydrogen hamiltonian.

now we might be at the end: you certainly need a bunch of mathematics, but you could argue that quantum mechanics isn't made of mathematics, it's just using math

@danvolchek @mirsadra: I feel that a good CS course should at the very least cover the basic building blocks of fundamental gates from transistors, along with how the gates can combine to form basic elements like flip-flops and adders and the rudimentary elements of some sort of assembly language. It doesn't have to be a laborious full-on experience, but it helps to have that holistic view of the computer.