Język programowania C może nie być wszędzie widoczny, ale jest on wszędzie subtelnie obecny. Kiedy uruchamiasz samochód, płyta główna prawdopodobnie używa C do komunikacji z różnymi komponentami. Kiedy korzystasz z telefonu, niezależnie od tego, czy jest to system iOS, czy Android, rdzeń systemu operacyjnego jest napisany w C. Nie można ignorować języka C.

No dobrze. Kiepski żart. Ale jaka jest historia litery C? Kiedy pojawił się język programowania C, zrewolucjonizował świat. Ale dlaczego nazwano go C?
Szybkie linki
Dawno, dawno temu, w Bell Laboratories…
Genialne umysły i ogromne budżety

Aby odpowiedzieć na to pytanie, musimy cofnąć się w czasie i spojrzeć na skromny, ale rozległy budynek w New Jersey. Ten budynek to Bell Laboratories. Założone przez Alexandra Grahama Bella (czyżby nazwa nie brzmiała znajomo?) i będące wówczas własnością AT&T – będącego w istocie monopolistą wspieranym przez rząd – Bell Laboratories cieszyło się dużym budżetem oraz swobodą eksperymentowania i zabawy pomysłami.
To nieinwazyjne podejście doprowadziło do wynalezienia tranzystora (dlatego komputery nie są już wielkości bloków miejskich), laserów i ogniw słonecznych, żeby wymienić tylko kilka. Język programowania C jest również produktem legendarnego Bell Labs. Ale zanim pojawił się C, istniał B.
Był język B
B dla lepszego BCPL

W 1969 roku Ken Thompson, błyskotliwy i niezwykle niezależny badacz z Bell Labs, pracował nad ogromnym i zaawansowanym projektem systemu operacyjnego o nazwie Multics. Kiedy Bell Labs zakończyło projekt Multics, Thompson miał trochę wolnego czasu i bardzo konkretny problem: chciał zagrać w grę, którą napisała, o nazwie Podróż kosmiczna Na starym, zakurzonym komputerze DEC PDP-7 stojącym na korytarzu.

PDP-7 byłObraz znajduje się po prawej stronie.Był przestarzały nawet jak na standardy lat 60. Miał bardzo mało pamięci (około 8 kilobajtów). Aby uruchomić swoją grę na PDP-7, Thompson stworzył nowy system operacyjny od podstaw. To były narodziny Uniksa. Jednak pisanie Uniksa w tym języku kod asemblera (Surowy, prymitywny język, który komunikuje się z maszynami za pomocą jedynek i zer) był koszmarem. Thompson potrzebował języka wysokiego poziomu, czegoś bliższego ludzkiej logice.
W tamtym czasie odpowiednim językiem programowania wysokiego poziomu był BCPL (Basic Combined Programming Language). BCPL był zbyt rozbudowany dla wąskiego sprzętu PDP-7, więc Thompson zapożyczył słowo „Basic” z BCPL, pozbawił go podstawowych funkcji i stworzył nowy język. Nazwał go B. Był szybki, prosty i stanowił pierwszy krok w kierunku nowoczesnego programowania.

Jednak ostatecznie język B był skazany na porażkę. Działał dobrze z PDP-7, ale kiedy Bell Labs przeszło na bardziej zaawansowany PDP-11, język programowania o nieokreślonym typie, taki jak B, przestał być wystarczający. Był nieefektywny i powodował, że nowy, drogi PDP-11 działał znacznie wolniej, niż był w stanie.
C stało się nowym B
B dostał awans

To prowadzi nas do Dennisa Ritchiego, bliskiego przyjaciela i współpracownika Thompsona. Ritchie zdał sobie sprawę, że aby Unix przetrwał na nowszych maszynach, język, w którym został napisany, musi ewoluować – dlatego spędził dwa lata pracując nad B, aby to naprawić.
Jego innowacją było wprowadzenie systemu typów. Stworzył typ char dla znaków i typ int dla liczb całkowitych. Teraz programista mógł przekazać komputerowi, że pole jest przeznaczone na pojedynczy znak, dzięki czemu nie marnował na nie dodatkowej przestrzeni. Dzięki temu program stał się bardziej przyjazny dla maszyn.

Przez pewien czas Ritchie i Thompson nazywali ten projekt po prostu „Nowym B”. Jednak wraz ze wzrostem znaczenia i siły języka, zdali sobie sprawę, że zasługuje on na własną tożsamość. Ponieważ był on następcą języka B, zwrócili się ku kolejnej literze alfabetu i nazwali ją C.
Następnie, w 1973 roku, Ritchie i Thompson przepisali rdzeń systemu operacyjnego Unix w języku C. Wcześniej systemy operacyjne pisano zawsze w języku asemblera, ponieważ wszyscy wiedzieli, że języki wysokiego poziomu są zbyt wolne. Język C udowodnił, że wszyscy się mylili. Był szybki, elegancki i, co najważniejsze, przenośny.
…potem przyszedł D
Albo co?

Pod koniec lat 70. język C był niekwestionowanym królem. Jednak wraz ze wzrostem złożoności oprogramowania zaczął wykazywać oznaki starzenia się. Bjarne Stroustrup, inny badacz z Bell Labs, podziwiał szybkość języka C, ale chciał dodać koncepcję zwaną „programowaniem obiektowym”. Mówiąc prościej, chciał umożliwić programistom gromadzenie danych i logowanie się do „obiektów”, takich jak obiekt „użytkownika” ze znaną nazwą i hasłem.

Kiedy nadszedł czas na Stroustrupa (Zobacz go w jego biurze po lewej stroniePo nadaniu nazwy swojemu wynalazkowi, kolejnym logicznym krokiem byłoby D. Jednak ludzie z Bell Labs lubili gry słowne. Dlatego Maschetti, kolega Stroustropa, zasugerował C++. Dla nich, przynajmniej, był to błysk geniuszu. Sugerował, że język to C, ale rozszerzony o jeden. C było Ale lepiej.
Ten wybór nazwy był tak atrakcyjny, że pozycja D w kolejności alfabetycznej pozostawała pusta przez prawie dwadzieścia lat. Język C++ stał się standardem dla wszystkiego, od gier wideo po przeglądarki internetowe, a świat po prostu poszedł naprzód. Jeśli nie wiesz, jak w C zwiększyć liczbę o jeden, użyj specjalnego polecenia: ++Jeśli masz zmienną x I napisała x++To się stanie x + 1.
Język D już istnieje.
Ale pojawiło się to dopiero po kilkudziesięciu latach

Dopiero w 2001 roku Walter Bright, doświadczony inżynier przełączników, w końcu zdecydował się przejąć ten tytuł. Bright spędził lata na tworzeniu narzędzi C++ i był sfrustrowany tym, jak „ogromny” i „niepewny” był ten język, ponieważ musiał zachować kompatybilność ze starszym kodem z lat 70.
Zależało mu na surowej mocy języka C i funkcjach organizacyjnych języka C++, ale z nowoczesnym, przejrzystym i niezniszczalnym designem. Stworzył więc język programowania D. Język ten oferował lepsze zarządzanie pamięcią i funkcje bezpieczeństwa, zapobiegając błędom powodującym niebieski ekran śmierci na komputerze.
Jednak pomimo swoich osiągnięć, język D napotkał klasyczny problem. Zanim pojawił się D, świat już go przekroczył. Firmy korzystały z Javy i C#, a świat wciąż był mocno związany z C i C++. Kilka lat później pojawił się język o nazwie Rust, który kładł silny nacisk na integralność pamięci (ta sama zasada co w D) i zdołał przyciągnąć uwagę świata technologii w sposób, w jaki D nigdy do końca nie zdołał – skutecznie czyniąc D nieistotnym.
Dziś D jest cenionym językiem specjalistycznym. Jest już używany przez firmy takie jak Netflix i eBay do konkretnych, wysokowydajnych zadań. To świetny język, ale nigdy nie stał się królem.
Czy istniał język A?
Tak, ale… nie do końca
Dobrze. Teraz wiemy, że C to C, ponieważ pochodzi od B. Ale czy istniał język A przed B? Odpowiedź brzmi: tak, ale nie tak, jak mogłoby się wydawać. Widzisz, nie było formalnego języka A przed tymi językami. Tak, C stało się C, ponieważ pojawiło się po B. Ale B stało się B, ponieważ było pierwszą literą BCPL, a nie dlatego, że pojawiło się po A.

Jeśli jednak poprawnie prześledzimy genezę, historia zaczyna się przed Bell Labs. Na długo przed B i C istniał ALGOL. ALGOL, skrót od Algorithmic Language, narodził się w 1958 roku. Nie był dziełem jednego człowieka, lecz komitetu europejskich i amerykańskich naukowców, którzy pragnęli uniwersalnego sposobu opisywania operacji matematycznych. Jeśli szukamy pradziadka współczesnej notacji – prawdziwego „A” na szczycie piramidy – jest nim ALGOL.
Język CPL (Combined Programming Language) został stworzony w oparciu o koncepcje ALGOL, ale był zbyt złożony – zbyt skomplikowany dla ówczesnych maszyn. Doprowadziło to do powstania „podstawowej” wersji CPL, zwanej BCPL. I tu zaczyna się historia Bell Labs.
Teraz, w 2026 roku, wciąż żyjemy w erze C. Nawet nowe, zaawansowane języki, takie jak Python czy JavaScript, są zazwyczaj interpretowane przez programy napisane w samym C. C pozostaje fundamentem. Język ten narodził się w laboratorium w New Jersey, aby pomóc komuś zagrać w grę kosmiczną na komputerze, który w zasadzie był gigantycznym kalkulatorem.










