Nearby lessons
5 of 124C - Applications
Real-world applications of C programming — operating systems, embedded devices, databases, compilers, graphics engines, network software and the runtimes behind Python, Java and Node.js.
Operating Systems
This is the job C was invented for. Kernels need to talk to hardware directly, control exact memory layouts, and add zero runtime overhead — precisely C's strengths.
- Linux kernel — roughly 30 million lines, overwhelmingly C.
- Windows — the NT kernel is C with C++ in upper layers.
- macOS / iOS — the XNU kernel is C.
- Android — built on the Linux kernel.
Embedded Systems and IoT
A microcontroller may have only a few kilobytes of RAM. There is no room for a virtual machine or a garbage collector, so C is effectively the only practical option.
C runs inside washing machines, microwave ovens, car engine controllers, ABS brakes, pacemakers, drones, smart meters, routers and satellites.
Databases and Storage Engines
Database engines live or die by how fast they move bytes between disk, memory and network. Every major engine is written in C or C++:
| Database | Written in | Why C |
|---|---|---|
| MySQL | C / C++ | Predictable performance under heavy load |
| PostgreSQL | C | Fine-grained control of buffers and page layout |
| SQLite | C | Tiny footprint — it embeds into phones and browsers |
| Redis | C | Microsecond in-memory operations |
Compilers, Interpreters and Runtimes
Here is the fact that surprises most beginners: the languages you may already know are written in C.
- CPython — the standard Python interpreter is a C program.
- The JVM (HotSpot) — C and C++.
- Node.js — the V8 engine and libuv are C++ and C.
- PHP and Ruby (MRI) — C.
- GCC and Clang/LLVM — C and C++.
Graphics, Games and Networking
- Graphics libraries — OpenGL, Vulkan, SDL and Cairo all expose C APIs.
- Game engines — the performance-critical cores of Unreal and id Tech are C/C++.
- Media tools — FFmpeg, the codec engine behind most video software, is C.
- Network software — Nginx, cURL, OpenSSL and the TCP/IP stacks in every OS.
- Version control — Git is written in C.
When NOT to Use C
Being honest about this saves you a lot of wasted effort:
| Task | Better choice | Why not C |
|---|---|---|
| Websites and web APIs | JavaScript, Python, Go | C has no ecosystem for it and manual memory is risky |
| Mobile apps | Kotlin, Swift | No native UI framework |
| Data science | Python, R | Libraries and notebooks matter more than raw speed |
| Quick automation scripts | Python, Bash | Compiling a 10-line task is wasted effort |
- Operating system kernels (Linux, Windows, macOS) are written mostly in C.
- Embedded systems and IoT devices run C because it needs so little memory.
- Databases like MySQL, PostgreSQL, SQLite and Redis are written in C.
- CPython, the JVM and Node.js are themselves C/C++ programs.
- C is a poor choice for websites, mobile apps and quick scripts.