Also known as: C
C is a small, fast, statically typed compiled language created at Bell Labs in the 1970s.1 It is the bedrock of modern computing: almost every operating system, language runtime and embedded device has C at its core.
Overview
C compiles ahead of time directly to native machine code, with a tiny runtime and almost no abstraction between the code and the hardware.2 It is statically typed, gives the programmer direct access to memory through pointers, and is portable across virtually every platform. That minimalism is the point: C is small enough to learn the whole language, and fast and predictable enough to build everything else on top of.
Strengths and trade-offs
C’s strengths are speed, ubiquity, portability and a tiny footprint — it runs where nothing else will. The cost is safety: memory management is fully manual, so buffer overflows, use-after-free and dangling pointers are easy to write and account for whole categories of security bugs that C does nothing to prevent. It is also low-level, with few of the conveniences modern languages offer. These risks are exactly what later languages set out to address — C++ adds higher-level abstractions over the same model, while Rust keeps the speed but enforces memory safety at compile time.
Where it’s used
C remains the default for operating-system kernels, device drivers, language runtimes, and tight embedded work where every byte and cycle counts. Its stable, minimal interface also makes it the common tongue that other languages bind to when they need to call native code.
Sources
-
C (programming language) — Wikipedia, for history and design background. ↩
-
C reference — cppreference, the standard-tracking reference for the C language and library. ↩