Почему язык программирования C так называется и куда делись А и В

Вы не видите язык C повсюду, но он есть везде. Когда вы заводите машину, ее бортовой компьютер общается с компонентами на C. Когда вы пользуетесь смартфоном, ядро iOS или Android написано на C. Когда вы снимаете деньги в банкомате, транзакция проходит через код, которому уже полвека.

Но почему именно C? Почему не A, B и D? Ответ на этот вопрос — история о том, как гениальные одиночки, гигантские корпорации и обычное желание поиграть в компьютерную игру привели к созданию фундамента, на котором держится весь современный цифровой мир.

Редакция «Компьютерры» проследила родословную самого влиятельного языка программирования — от ALGOL до D и Rust.

Почему язык программирования C так называется и куда делись А и В

Зачем знать историю C

Сегодня программист может годами работать на Python, JavaScript или Go и ни разу не написать строчку на C, но каждый из этих языков — надстройка над C. Например, интерпретатор Python написан на C, V8-движок Chrome — на C++, ядро Linux — на C. Понимание того, как и почему появился C, — это понимание того, почему компьютеры вообще работают так, а не иначе.

История языка программирования C — это история о том, как инженерные решения, принятые в 1970-х, до сих пор определяют архитектуру вашего смартфона, ноутбука и даже автомобиля.

ALGOL, CPL и BCPL: прародители

Прежде чем появились B и C, был ALGOL. Algorithmic Language родился в 1958 году как продукт международного комитета ученых, которые хотели создать универсальный способ описания математических алгоритмов. ALGOL ввел блочную структуру с begin/end, которая позже превратилась в фигурные скобки. Он был первым языком, который можно было назвать «цивилизованным» с точки зрения читаемости.

Burroughs B5000 — первый компьютер со стековой архитектурой. Он работал на ALGOL
Burroughs B5000 — первый компьютер со стековой архитектурой. Он работал на ALGOL

Но ALGOL был слишком абстрактным. Он отлично работал на бумаге, но существовавшие компьютеры не могли эффективно выполнять его код. Поэтому на основе ALGOL создали CPL — Combined Programming Language.

CPL объединил лучшие идеи предшественника, но оказался еще сложнее. Настолько сложным, что его практически невозможно было реализовать на реальном железе. CPL остался академическим экспериментом, который никто толком не использовал в продакшене.

Тогда на сцену вышел Мартин Ричардс. Он вырезал из CPL все лишнее, оставив только суть, и назвал свое творение BCPL — Basic CPL. BCPL стал первым языком из этой линейки, который реально работал на существующих компьютерах. Он ввел концепцию «голого» синтаксиса: минимум ключевых слов, максимум гибкости. Но у BCPL была фатальная слабость — отсутствие системы типов. Одна переменная могла быть и числом, и строкой, что вело к катастрофическим багам.

B: язык, рожденный для игры

В 1969 году Кен Томпсон, блестящий и независимый исследователь из Bell Labs, работал над монструозным проектом Multics. Когда руководство AT&T закрыло проект, Томпсон остался с кучей свободного времени и одной конкретной проблемой: он хотел поиграть в свою игру Space Travel на стареньком DEC PDP-7, который пылился в коридоре.

Проблема была в том, что PDP-7 обладал смехотворными характеристиками даже по меркам 1960-х — всего 8 килобайт памяти. Чтобы игра заработала, Томпсону пришлось с нуля написать операционную систему. Так родился UNIX.

Кен Томпсон и Деннис Ричи, работающие над Unix
Кен Томпсон и Деннис Ричи, работающие над Unix

Но писать ОС на ассемблере было адски трудно. Томпсону нужен был язык, более близкий к человеческой логике. Он взял BCPL, вырезал из него все, что не влезало в 8 КБ, и назвал результат B. Язык B был минималистичным и быстрым — идеальное решение для PDP-7.

Но у B была та же болезнь, что и у BCPL, то есть отсутствие типов. Для PDP-7 это было терпимо. Однако когда Bell Labs обновилась до более мощной PDP-11, безтиповой язык показал свою несостоятельность. На новом, дорогом оборудовании B работал медленно и неэффективно.

Оригинальная передняя панель PDP-11/70
Оригинальная передняя панель PDP-11/70

Язык программирования C: рождение легенды

Когда стало ясно, что B не справляется с новыми задачами, за дело взялся Деннис Ритчи — друг и соратник Томпсона. Ритчи понял, что если UNIX хочет выжить на новом оборудовании, язык, на котором он написан, должен повзрослеть. Два года Ритчи перерабатывал B.

Его гениальным решением стало введение системы типов. Он создал тип char для символов и int для целых чисел. Теперь программист мог сказать компьютеру: «Этот участок памяти для одного символа, не трать лишнее место». Это позволило программе идеально подгоняться под аппаратуру.

Какое-то время Ритчи и Томпсон называли свой проект «новый B». Но по мере того как язык становился все более самобытным, они поняли: он заслуживает собственного имени. И поскольку это был преемник B, логичным шагом стала следующая буква алфавита — C.

В 1973 году Ритчи и Томпсон переписали ядро UNIX на C. До этого момента все операционные системы писались на ассемблере, потому что никто не верил, что высокоуровневый язык может быть достаточно быстрым. C доказал, что все ошибались. Он был быстрым, элегантным и, самое главное, переносимым. Один и тот же код работал на разных архитектурах — революция для того времени.

Язык программирования C++: C, но на единицу больше

К концу 1970-х язык C стал королем. Но программы усложнялись, и C начинал показывать возраст. Бьёрн Страуструп, еще один исследователь Bell Labs, обожал скорость C, но ему не хватало концепции объектно-ориентированного программирования, то есть возможности группировать данные и логику в «объекты».

Страуструп создал расширение C, которое позволяло работать с классами и объектами. Когда пришло время называть творение, логичным было бы D. Но коллега Страуструпа Рик Маскитти предложил другое имя: C++. Это был гениальный нерд-юмор — в языке C операция ++ увеличивает значение переменной на единицу. C++ — это «C, но лучше».

Название оказалось настолько удачным, что буква D осталась незанятой почти на два десятилетия. C++ стал стандартом для игр, браузеров, финансовых систем и встраиваемой разработки.

D: язык, опоздавший на вечеринку

Двадцать лет буква D ждала своего часа. В 2001 году ее наконец забрал Уолтер Брайт — ветеран-компиляторщик, который годы строил инструменты для C++ и устал от его громоздкости и небезопасности. C++ был вынужден сохранять совместимость с кодом 1970-х, и это делало его тяжеловесным.

Уолтер Брайт, создатель языка программирования D
Уолтер Брайт, создатель языка программирования D

Брайт создал D — язык, который брал сырую мощь C, организационные фичи C++, но добавлял современный, чистый дизайн, который сложнее было поломать. D ввел встроенную сборку мусора, то есть больше не нужно вручную вызывать free(). Безопасность памяти на уровне языка — меньше багов и синих экранов.

Но у D была классическая проблема. К 2001 году мир уже ушел вперед. Корпорации использовали Java и C#. Системные программисты были прочно привязаны к C и C++. А через пару лет появился Rust, который сделал ту же ставку на безопасность памяти, но захватил внимание техногигантов — и фактически сделал D неактуальным.

Сегодня D существует как высоко уважаемый нишевый язык. Netflix и eBay используют его для специфических высоконагруженных задач. Это отличный язык, но королем он так и не стал.

Rust: тот, кто занял место D

Rust появился в 2015 году как детище Mozilla. Он сделал то же, что пытался сделать D, — решил проблему безопасности памяти, но Rust пошел дальше и вместо сборщика мусора он предложил уникальную модель владения (ownership), которая гарантирует безопасность на этапе компиляции.

Поддержка Mozilla, а затем Amazon, Microsoft и Google, сделала Rust мейнстримом. Современный синтаксис, лучший в мире менеджер пакетов Cargo и zero-cost abstractions — высокоуровневый код работает так же быстро, как C++.

Rust не убил C, но он убил надежды D на мейнстрим.

Почему C правит миром

История C — это история о том, как инженерные решения, принятые полвека назад в лаборатории в Нью-Джерси, до сих пор формируют цифровой мир. Язык, рожденный из желания поиграть в космическую игру на устаревшем компьютере, стал фундаментом для всего: от ядер операционных систем до интерпретаторов Python.

FAQ: часто задаваемые вопросы

Жив ли C сегодня?

Более чем. Ядра ОС, драйверы, базы данных, встроенные системы — C правит бал. Rust пытается заменить его в некоторых сценариях, но полной замены не произошло и в ближайшие 10 лет не произойдет. Слишком много кода написано на C, слишком много инженеров его знают, слишком хорошо он работает.

Почему C до сих пор используется, если у него столько проблем с памятью?

Потому что C — это ближайшее к железу без потери читаемости. Вы платите за контроль над памятью скоростью. Ни один другой язык не дает такого уровня оптимизации.

Стоит ли учить C в 2026 году?

Да. Если вы хотите понять, как работают компьютеры, писать драйверы, ядра ОС или высокопроизводительные базы данных — C незаменим. Если ваша цель — веб-разработка, есть языки попроще.

Что лучше — C++ или Rust?

Для новых проектов — Rust, если вы готовы к крутой кривой обучения. Для существующей кодовой базы — C++. В 2026 году многие компании начинают новые модули на Rust.

Использует ли кто-то D сейчас?

Да. Netflix использует D для высокопроизводительных сервисов, eBay — тоже. Но шансов стать мейнстримом у D уже нет.

Что будем искать? Например,ChatGPT

Мы в социальных сетях