Dennis Ritchie: zapomniany geniusz, który stworzył C i UNIX
W październiku 2011 roku cały świat opłakiwał śmierć Steve'a Jobsa. Zaledwie tydzień później, niemal bez echa, odszedł Dennis Ritchie – człowiek, którego wynalazki dosłownie podtrzymują działanie całego internetu, każdego smartfona i każdego serwera na świecie. To historia geniusza, który stworzył język C i system UNIX, a nigdy nie stał się sławny.
Bell Labs – laboratorium, które zmieniło świat
W latach 60. i 70. XX wieku laboratorium badawcze Bell Labs w Murray Hill, w stanie New Jersey, było czymś wyjątkowym w skali całej historii nauki. Finansowane przez monopol telekomunikacyjny AT&T, skupiało najwybitniejszych naukowców i inżynierów epoki. Nie musieli wykazywać się wynikami kwartalnymi ani tworzyć produktów na wczoraj. Mogli po prostu myśleć.
Efekty były zdumiewające. To właśnie w Bell Labs wynaleziono tranzystor (Nobel 1956), laser, ogniwa słoneczne i wiele innych fundamentalnych technologii. Ale dwa wynalazki z tego miejsca okazały się ważniejsze niż wszystkie inne razem wzięte: system operacyjny UNIX i język programowania C. Za obydwoma stał jeden człowiek – Dennis MacAlistair Ritchie.
Ritchie urodził się w 1941 roku w Bronxville w stanie Nowy Jork. Ukończył fizykę i matematykę stosowaną na Harvardzie, po czym w 1967 roku dołączył do Bell Labs. Nie był typem charyzmatycznego wizjonera w czarnym golfie. Był inżynierem w starym stylu: skupionym, skromnym i absolutnie niezrównanym w tym, co robił.
UNIX – system operacyjny urodzony z nudów i starego komputera
Historia UNIX-a zaczyna się od gry komputerowej. W 1969 roku Ken Thompson, kolega Ritchiego z Bell Labs, napisał grę kosmiczną Space Travel na dużej maszynie obliczeniowej GE-635. Gra działała, ale czas maszynowy był drogi. Thompson znalazł w magazynie stary, zaniedbany komputer PDP-7 i postanowił przenieść grę na tę maszynę.
Problem: PDP-7 nie miał systemu operacyjnego. Thompson napisał go sam, w ciągu kilku tygodni, korzystając z wolnego czasu urlopowego. Ritchie szybko dołączył do projektu. Tak w 1969 roku powstał UNIX – nazwa będąca ironicznym komentarzem do wcześniejszego, nadmiernie rozbudowanego systemu Multics (od łac. multi- do uni-: jeden).
UNIX miał cechy rewolucyjne jak na tamte czasy:
- Wielozadaniowość – wiele procesów mogło działać równolegle.
- Wielodostępność – wielu użytkowników naraz, każdy w swoim środowisku.
- Modularność – małe programy, każdy robiący jedną rzecz dobrze, połączone potokami (pipes).
- Przenośność – po przepisaniu na język C, UNIX mógł działać na różnych maszynach bez przepisywania kodu od zera.
Ta ostatnia cecha miała całkowicie zmienić historię informatyki.
Język C – fundament, na którym stoi cały świat IT
Gdy Ritchie i Thompson pisali UNIX, pracowali w języku asemblerowym – niskopoziomowym kodzie ściśle powiązanym z konkretnym procesorem. To działało, ale oznaczało, że UNIX był przywiązany do jednej architektury sprzętowej. Zmiana komputera wymagała przepisania całego systemu od zera.
Ritchie postanowił to zmienić. Inspirując się językiem B stworzonym przez Thompsona (który z kolei wyewoluował z języka BCPL), opracował nowy język programowania. Nazwał go – po prostu, w duchu swojej filozofii – C. Pierwsze działające środowisko języka C pojawiło się około 1972 roku.
Co sprawiło, że C był przełomowy?
- Bliskość sprzętu bez asemblerowej złożoności – dawał kontrolę nad pamięcią i procesorem, ale w czytelnej dla człowieka formie.
- Przenośność – ten sam kod można było skompilować na różnych maszynach, zmieniając jedynie kompilator.
- Prostota i elegancja – język był mały i spójny; opisywała go jedna cienka książka.
- Wydajność – programy w C były prawie tak szybkie jak asembler.
W 1978 roku Ritchie wraz z Brianem Kernighanem wydali książkę The C Programming Language. Znana jako K&R, stała się jedną z najbardziej wpływowych książek technicznych wszech czasów – krótka, precyzyjna i wzorcowa. Zawierała fragment, który trafił do historii: pierwsze wydrukowanie słów hello, world jako przykład najprostszego możliwego programu. Ta tradycja, zrodzona z ćwiczenia Ritchiego, przetrwała do dziś w każdym kursie programowania na świecie.
Dziedzictwo: co wyrosło z C i UNIX-a
Gdy UNIX przepisano w całości w języku C, stało się coś przełomowego: ten sam system zaczął działać na maszynach DEC, IBM i wkrótce na wszystkich innych. UNIX rozlał się przez uczelnie i laboratoria badawcze na całym świecie, często dystrybuowany za darmo lub za symboliczną opłatą.
Trudno przecenić, co z tego wyrosło:
- Linux – jądro napisane przez Linusa Torvaldsa w języku C, zainspirowane filozofią UNIX-a. Działa dziś na ponad 96% serwerów świata, w tym na wszystkich głównych platformach chmurowych.
- Android – oparty na jądrze Linuksa, napisanym w C.
- macOS i iOS – oparte na Darwin, wywodzącym się bezpośrednio z BSD UNIX.
- Windows NT – Microsoft zatrudnił Dave'a Cutlera, który wcześniej tworzył system VMS silnie inspirowany UNIX-em.
- Dziesiątki języków programowania – C++, Java, PHP, Python, Go i Rust wywodzą swą składnię lub architekturę bezpośrednio z C.
Szacuje się, że ponad 90% kodu infrastruktury internetowej – serwerów, routerów, systemów wbudowanych – jest napisane w C lub językach bezpośrednio z niego wywodzących. Każdy router w Twojej firmie, każdy serwer w chmurze, każdy smartfon w kieszeni pracownika – wszystkie działają na fundamencie zbudowanym przez Ritchiego.
Październik 2011: śmierć w cieniu legendy
Steve Jobs zmarł 5 października 2011 roku. Świat zatrzymał się w żałobie. Przed sklepami Apple'a pojawiły się kwiaty i znicze. Liderzy państw składali kondolencje. Media przez tygodnie nie pisały niemal o niczym innym.
Dokładnie tydzień później, 12 października 2011 roku, w swoim domu w Berkeley Heights w New Jersey, w wieku 70 lat, cicho odszedł Dennis Ritchie. Większość głównych mediów nie zauważyła jego śmierci przez kilka dni. Kiedy wreszcie pojawiły się nekrologi, były krótkie i schowane na dalszych stronach serwisów informacyjnych.
Paradoks był uderzający. Jobs przez całe życie powtarzał, że Apple stoi na skrzyżowaniu technologii i sztuki. Ale technologia, na której stały systemy Apple – od pierwszego Maca po iPhone'a – była dosłownie napisana w języku C i oparta na UNIX-ie. Bez Ritchiego nie byłoby Jobsa w takiej formie, jaką znamy.
Programiści na całym świecie zareagowali falą hołdów. Rob Pike z Bell Labs napisał, że Ritchie miał na oblicze informatyki większy wpływ niż ktokolwiek inny żyjący w XX wieku. Linus Torvalds przyznał, że to właśnie C ukształtował jego sposób myślenia o programowaniu. A mimo to – dla większości świata Dennis Ritchie pozostał nieznany.
Niewidoczny fundament, który przetrwał dekady
Dennis Ritchie nigdy nie zabiegał o sławę. Nie sprzedawał swoich wynalazków, nie zakładał startupów, nie chodził na okładki magazynów. Swoje patenty udostępnił bezpłatnie. UNIX przez lata był dystrybuowany uczelniom za symboliczną opłatą lub za darmo.
Jego styl pracy był niemal filozofią: zrób jedną rzecz i zrób ją dobrze. Małe, sprawne narzędzia. Kod, który można przeczytać. Systemy, które działają przez dekady. To właśnie ta filozofia – zwana dziś filozofią UNIX-a – leży u podstaw całej kultury open source, metodyki DevOps i architektury mikroserwisów.
W 1983 roku Ritchie i Thompson otrzymali nagrodę Turinga – informatyczny odpowiednik Nobla. W 1999 roku prezydent Clinton odznaczył ich Narodowym Medalem Technologii i Innowacji USA. To były jego chwile publicznego uznania. Poza tym Ritchie po prostu pracował – cicho i systematycznie, przez cztery dekady.
Gdy następnym razem uruchomisz terminal, zalogujesz się na serwer przez SSH albo sięgniesz po smartfona – gdzieś głęboko w stosie technologicznym będzie działał kod oparty na pracy Dennisa Ritchiego. Nie zobaczysz jego nazwiska. On nigdy by tego nie oczekiwał.
| Język | Rok powstania | Związek z C |
|---|---|---|
| C++ | 1983 | Rozszerzenie C o klasy i programowanie obiektowe (Bjarne Stroustrup) |
| Objective-C | 1984 | Podstawa macOS i iOS; C z elementami języka Smalltalk |
| Java | 1995 | Składnia wzorowana na C; standard w enterprise i Androidzie |
| PHP | 1994 | Napisany w C; napędza większość serwerów WWW na świecie |
| Python | 1991 | Częściowo inspirowany C; dziś kluczowy język AI i data science |
| Go | 2009 | Stworzony przez Google, m.in. przez byłych inżynierów Bell Labs |
| Rust | 2010 | Bezpieczna alternatywa dla C w systemach niskopoziomowych |
Twoja infrastruktura IT też zasługuje na solidne fundamenty
Tak jak UNIX zmienił oblicze IT dzięki przemyślanej architekturze i niezawodności, tak Twoja firma potrzebuje infrastruktury serwerowej zbudowanej z głową i zarządzanej przez doświadczonych specjalistów. Zespół NovaSys zadba o Twoje serwery, sieć i bezpieczeństwo.