🧾 What is C?
C is a general-purpose programming language — that means you can use it to create any kind of software, from small tools to big applications, like:
Operating systems (e.g., Linux, Windows parts)
Game engines
Embedded systems (microwaves, washing machines!)
Compilers for other programming languages
🕰️ Where did it come from?
The C language was developed in 1972 by Dennis Ritchie at Bell Labs.
It was created to rewrite the UNIX operating system, which was earlier written in Assembly (a very low-level, machine-specific language).
C allowed UNIX to be written in a higher-level language, making it easier to maintain and port to other computers.
<div class="infographic-cevo">
<style>
.infographic-cevo {
--ink: #1a1a1a;
--ink-soft: #5c5c5c;
--paper: #ffffff;
--paper-alt: #f0ece4;
--accent: #2563eb;
--accent-soft:#e3ebfd;
--line: #ddd6c9;
--code-bg: #fdecea;
--code-text: #c0392b;
}
.infographic-cevo[data-theme="dark"] {
--ink: #e8e6e1;
--ink-soft: #9a968c;
--paper: #121212;
--paper-alt: #1e1e26;
--accent: #5b8def;
--accent-soft:#202942;
--line: #2c313d;
--code-bg: #2a1f1f;
--code-text: #e08b7d;
}
.infographic-cevo {
box-sizing: border-box;
max-width: 880px;
margin: 0 auto;
background: var(--paper);
color: var(--ink);
font-family: 'Inter', -apple-system, sans-serif;
padding: 0 clamp(1.25rem, 5vw, 3rem);
}
.infographic-cevo *, .infographic-cevo *::before, .infographic-cevo *::after {
box-sizing: border-box;
}
.infographic-cevo h1 {
font-family: 'Fraunces', Georgia, serif;
font-weight: 600;
font-size: clamp(1.7rem, 4vw, 2.4rem);
margin: 2rem 0 0.25rem;
display: flex;
align-items: center;
gap: 0.6rem;
}
.infographic-cevo .gear {
display: inline-block;
font-size: 1.4rem;
}
.infographic-cevo .subhead {
color: var(--ink-soft);
font-size: 0.95rem;
margin-bottom: 1.75rem;
}
.infographic-cevo .hint {
font-size: 0.8rem;
color: var(--ink-soft);
margin-bottom: 2rem;
font-style: italic;
}
.infographic-cevo .timeline {
position: relative;
padding-left: 2.25rem;
border-left: 2px solid var(--line);
margin-bottom: 2.5rem;
}
.infographic-cevo .timeline-entry {
position: relative;
margin-bottom: 0.25rem;
}
.infographic-cevo .entry-btn {
all: unset;
display: block;
width: 100%;
cursor: pointer;
padding: 0.85rem 1rem;
border-radius: 6px;
transition: background 0.15s;
}
.infographic-cevo .entry-btn:hover {
background: var(--accent-soft);
}
.infographic-cevo .entry-btn:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.infographic-cevo .timeline-entry::before {
content: "";
position: absolute;
left: -2.65rem;
top: 1.05rem;
width: 11px;
height: 11px;
border-radius: 50%;
background: var(--paper);
border: 2px solid var(--accent);
transition: transform 0.15s, background 0.15s;
}
.infographic-cevo .timeline-entry.is-open::before {
transform: scale(1.35);
background: var(--accent);
}
.infographic-cevo .entry-head {
display: flex;
align-items: baseline;
gap: 0.85rem;
flex-wrap: wrap;
}
.infographic-cevo .date {
font-family: 'Fraunces', Georgia, serif;
color: var(--accent);
font-size: 1.15rem;
font-weight: 600;
min-width: 3.6rem;
}
.infographic-cevo .lang-name {
font-weight: 600;
font-size: 1.05rem;
}
.infographic-cevo .chevron {
margin-left: auto;
color: var(--ink-soft);
transition: transform 0.2s;
font-size: 0.8rem;
}
.infographic-cevo .timeline-entry.is-open .chevron {
transform: rotate(90deg);
}
.infographic-cevo .entry-detail {
display: none;
padding: 0 1rem 0.5rem 1rem;
font-size: 0.9rem;
color: var(--ink-soft);
line-height: 1.5;
}
.infographic-cevo .timeline-entry.is-open .entry-detail {
display: block;
}
.infographic-cevo code {
background: var(--code-bg);
color: var(--code-text);
padding: 0.1rem 0.4rem;
border-radius: 4px;
font-family: 'IBM Plex Mono', monospace;
font-size: 0.85em;
}
.infographic-cevo em {
font-style: italic;
}
.infographic-cevo .takeaway {
border-top: 1px solid var(--line);
padding: 1.25rem 0 2rem;
font-size: 0.95rem;
color: var(--ink-soft);
}
.infographic-cevo .takeaway strong {
color: var(--ink);
}
@media (prefers-reduced-motion: reduce) {
.infographic-cevo * {
transition: none !important;
}
}
</style>
<h1><span class="gear">⚙️</span> Evolution of C</h1>
<p class="subhead">From bare metal to a portable standard — nine steps, six decades.</p>
<p class="hint">Click any entry to expand it.</p>
<div class="timeline" role="list">
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">1960s</span>
<span class="lang-name">Assembly</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">Tied directly to hardware — every chip needed its own rewrite. Fast, but brutal to write and impossible to port.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">1967</span>
<span class="lang-name">BCPL</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">Martin Richards' language — simpler than Assembly, but had no data types beyond the machine word. Still limited.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">1970</span>
<span class="lang-name">B</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">Ken Thompson's stripped-down BCPL, built for early Unix at Bell Labs. Small, fast, still typeless.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">1972</span>
<span class="lang-name">C</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">Dennis Ritchie added types and structure to B. The result: powerful, efficient, and — crucially — portable across machines.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">1978</span>
<span class="lang-name">K&R C</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">Kernighan & Ritchie publish <em>The C Programming Language</em> — the first real spec, and still a classic reference today.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">1989</span>
<span class="lang-name">ANSI C (C89)</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">ANSI standardized the language, ending years of compiler-to-compiler drift. C90 is the near-identical ISO adoption a year later.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">1999</span>
<span class="lang-name">C99</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">Added <code>inline</code> functions, <code>long long</code>, variable-length arrays, and <code>//</code> comments.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">2011</span>
<span class="lang-name">C11</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">Brought native multi-threading support and safer alternatives to error-prone standard library functions.</div>
</div>
<div class="timeline-entry" role="listitem">
<button class="entry-btn" aria-expanded="false">
<div class="entry-head">
<span class="date">2018</span>
<span class="lang-name">C18</span>
<span class="chevron">▶</span>
</div>
</button>
<div class="entry-detail">A bugfix release — clarifications and corrections to C11, no new features.</div>
</div>
</div>
<p class="takeaway"><strong>Fifty years later</strong>, C's core idea hasn't changed: stay close to the hardware, stay portable. Everything since C89 has just sharpened that edge.</p>
</div>
<script>
(function () {
const wrapper = document.currentScript.closest('.infographic-cevo')
|| document.querySelector('.infographic-cevo');
const bodyAttr = document.body.getAttribute('data-darkmode');
let dark;
if (bodyAttr === 'true') {
dark = true;
} else if (bodyAttr === 'false') {
dark = false;
} else {
const match = document.cookie.match(/(?:^|;\s*)darkMode=([^;]+)/);
dark = match ? match[1] === 'true' : false;
}
if (dark) wrapper.setAttribute('data-theme', 'dark');
wrapper.querySelectorAll('.timeline-entry').forEach(entry => {
const btn = entry.querySelector('.entry-btn');
btn.addEventListener('click', () => {
const wasOpen = entry.classList.contains('is-open');
wrapper.querySelectorAll('.timeline-entry').forEach(e => {
e.classList.remove('is-open');
e.querySelector('.entry-btn').setAttribute('aria-expanded', 'false');
});
if (!wasOpen) {
entry.classList.add('is-open');
btn.setAttribute('aria-expanded', 'true');
}
});
});
})();
</script>
</div>🌟 Why C is Still Popular?
Even though it's old, C is still widely used today:
🔧 Feature | 📝 Description |
|---|---|
🚀 Speed | C code is extremely fast, almost close to assembly |
🔍 Control | Full control over memory and hardware |
🔄 Portability | Write once, run anywhere (with few changes) |
🧠 Simplicity | Very small set of keywords, easy to learn syntax |
📦 Foundation | Languages like C++, Java, Python, Go are built on concepts from C |
🧰 Toolchain Support | Widely supported by compilers and debuggers |
🖥️ System Programming | Used for OS kernels, embedded systems, drivers, etc. |