Dennis Ritchie – szara eminencja w świecie komputerów
Takie osoby, jak Bill Gates, Steve Jobs czy Mark Zuckerberg znane są nie tylko tym, którzy interesują się szeroko pojętą branżą technologiczną. I choć nie można odmówić im zasług, nierzadko zdarza się, że ich światło przyćmiewa tych, których działania były równie ważne, ale którzy z wielu powodów nie zyskali podobnego rozgłosu. Chcąc nieco zmienić ten stan rzeczy, rozpoczynamy cykl, w którym prezentować będziemy sylwetki „wielkich nieznanych”. W pierwszym odcinku przyjrzymy się postaci Dennisa Ritchie’ego.
Rocznica śmierci Steve’a Jobsa zazwyczaj wywołuje poruszenie. Media na całym świecie przywołują jego słowa, przypominają wystąpienia lub tworzą zestawienia mówiące o jego zasługach. Co raz wydawane są także książki poświęcone jego osobie, a na ekranach kin obejrzeć można obrazy będące różnymi interpretacjami jego życia. Nie ulega wątpliwości, że jest to postać, która inspirowała i wciąż inspiruje tłumy młodych przedsiębiorców, marzących o tym, by ich produkty cieszyły się takim powodzeniem, jak uwielbiane przez wielu sprzęty marki Apple. Niewielu z nich zdaje sobie jednak sprawę z tego, że gdyby nie mężczyzna, który zmarł tydzień po uwielbianym wizjonerze, firma Apple mogłaby w ogóle nie istnieć – a na pewno nie przyjęłaby takiej formy, jaką ma dziś. Rocznica śmierci Dennisa Ritchiego – bo o nim tu mowa – ojca języka programowania C oraz systemu operacyjnego Unix, czyli dwóch elementów, na których oparte jest właściwie wszystko to, z czego korzystamy w sieci, nie budzi jednak takich emocji…
Fizyka? Nie, dziękuję
Dennis Ritchie, w środowisku informatyków znany przede wszystkim jako współautor książki nazywanej branżową Biblią, zatytułowanej „C” [język programowania – przyp. red.], początkowo chciał zostać fizykiem. Zgodnie z jego słowami, doświadczenia ze studiów pierwszego stopnia przekonały go jednak, że nie jest wystarczająco inteligentny, by móc dalej zgłębiać tę dyscyplinę. W tamtym czasie odkrył również, że „komputery to całkiem przyjemna dziedzina”, postanowił więc rozwijać się w tym kierunku. Po ukończeniu studiów Ritchie, podążając śladami swojego ojca, trafił do Bell Laboratories – jednostki badawczo-rozwojowej amerykańskiej korporacji telekomunikacyjnej AT&T – gdzie wraz z Kenem Thompsonem i innymi członkami grupy Computing Sciences Research odpowiedzialny był za zaprojektowanie kompleksowego systemu operacyjnego dla wielu użytkowników o nazwie Multics, we współpracy z uczelnią technologiczną MIT. Jak można się domyślać, przedsięwzięcie to było nie tylko ambitne, ale także czaso– i energochłonne – na tyle, że firma po pewnym czasie zrezygnowała z realizowania go.
Szczęśliwa niesubordynacja
Nietrudno wyobrazić sobie, co dzieje się z pracownikami, którym nagle odbiera się możliwość zajmowania się projektem, który wymagał od nich pełnego zaangażowania i w który włożyli serce – jedni poszukują innych wyzwań wewnątrz organizacji, inni rezygnują z pracy, jeszcze inni zaś, wierząc, że to, nad czym dotychczas pracowali, ma głęboki sens i może pozytywnie wpłynąć na rzeczywistość, kontynuują wcześniej rozpoczęte działanie na mniejszą skalę i bez zgody przełożonych, licząc na to, że w przyszłości sytuacja ulegnie zmianie. Tę ostatnią drogę wybrał Ken Thompson, decydując się na opracowanie własnego systemu operacyjnego o nazwie Unics, będącego nawiązaniem do wspomnianego Multicsa. Niedługo zajęło mu przekonanie do tego pomysłu członka byłej grupy operacyjnej, Dennisa Ritchiego, który wkrótce przyłączył się do prac. Z czasem „cs” zamieniło się na „x”, tworząc znany w branży technologicznej Unix – system będący fundamentem większości działających dziś systemów operacyjnych, jak Linux, OS X czy iOS.
Oczywiście, pierwsze wersja oprogramowania znacznie różniła się od dzisiejszej – przede wszystkim napisana była w tzw. języku asemblera, czyli prostym, niskopoziomowym sposobie programowania, w którym jedno polecenie odpowiada jednemu zadaniu procesora i którego cechą charakterystyczną jest bardzo dobre dopasowanie do jednego typu sprzętów, przy jednoczesnym niedopasowaniu do innego rodzaju maszyn. W związku z tym, że głównym celem Unixa było zwiększenie produktywności profesjonalnych programistów, pomysłodawcy systemu, chcąc, by ten był jak najbardziej użyteczny i uniwersalny, doszli do wniosku, że ów powinien być napisany w takim języku, który pozwalałby na używanie go na wielu różnych platformach. A ponieważ żaden z dostępnych sposobów kodowania nie zadowalał „niesubordynowanych” pracowników Bell Labs, nie pozostało im nic innego, jak opracować własny język.
C, czyli następca B
Chociaż nad Unixem Thompson i Ritchie pracowali wspólnie, kiedy mowa o języku programowania C, to temu drugiemu przypisuje się większość zasług – zresztą nie bez powodu. Co prawda, tworząc C, Ritchie wzorował się na wymyślonym przez Thompsona języku B, jednak to on był m.in. autorem artykułu naukowego prezentującego nowy sposób programowania. On też współtworzył, wraz z Brianem Kernighanem, wspomnianą „biblię”, czyli przewodnik po opracowanym przez siebie języku. I wydaje się, że wśród wielu zasług Ritchiego to właśnie realizacja tego przedsięwzięcia miała największy wpływ na dzisiejsza branżę technologiczną. Wystarczy choćby wspomnieć, że w tym języku napisane są m.in. przeglądarki internetowe czy większość serwerów sieciowych – a często zdarza się, że te, które nie korzystają z C, stworzone zostały za pomocą C ++ lub Java – dwóch pochodnych wymyślonego przez Ritchiego sposobu programowania. Co ciekawe, nawet Windows swego czasu korzystał z C, nie wspominając o wielu pozostałych systemach operacyjnych, dla których fundamentem jest Unix, ostatecznie również napisany w języku autorstwa Ritchiego. Gdyby nie C, niezwykle prawdopodobne jest, że Unix nie miałby tak dużego wpływu na rozwój nauk komputerowych – choćby dlatego, że użycie opracowanego przez Thompsona i Ritchiego systemu na wielu sprzętach zwyczajnie nie byłoby możliwe.
Pionierzy open-source’ingu
Warto również wspomnieć, że oprócz wymienionych zasług, Ritchie wraz z Thompsonem mogą być traktowani jako pionierzy ruchu open source. Należy bowiem pamiętać, że dwaj programiści, tworząc system operacyjny Unix, wciąż pracowali w Bell Labs. Owoce ich pracy były więc formalnie własnością AT&T. I choć mogłoby się wydawać, że naturalną drogą dla nowego produktu firmy jest trafienie na przysłowiowe półki sklepowe, w przypadku Unixa rzecz miała się zgoła inaczej. Wynikało to z faktu, że w czasie, gdy ten powstawał, korporacja związana była z Departamentem Sprawiedliwości USA umową zabraniającą monopoliście zarabiania w jakiejkolwiek innej branży niż telekomunikacja.
W obliczu takiej sytuacji Thompson i Ritchie, nie chcąc, by ich praca poszła na marne, zrobili coś, co dla prawdziwych komputerowych „geeków” jest w pełni zrozumiałe, jednak u początkujących przedsiębiorców może wywołać niemałe zdziwienie – udostępnili za darmo system swoim kolegom pracującym na uniwersytetach, zezwalając im na dowolne modyfikowanie i ulepszanie ich oprogramowania. Swoim ruchem dali początek właściwie całej dziedzinie nauk komputerowych – uczelniane laboratoria mogły bowiem nareszcie dzielić się ze studentami nie tylko dobrym, ale również darmowym software’em. Kiedy po pewnym czasie AT&T uciekło od zapisów wiążącej umowy i zaczęło domagać się praw do Unixa, na scenę wkroczył programista z MIT, Richard Stallman, traktowany jako ojciec ruchu wolnego oprogramowania, który rozpoczął projekt GNU – przedsięwzięcie mające na celu stworzenie funkcjonalnej kopii systemu Unix, wolnej od ograniczeń. Ubiegł go jednak fiński haker Linus Torvalds, który opracował własną wersję Unixa o nazwie… Linux. System ten jest jednym z najlepszych przykładów współpracy niezliczonych osób nad jednym projektem i dziś zainstalowany jest w większości routerów czy smartfonów…
Praojciec OS X-a
Tu właściwie historia dokonań Dennisa Ritchiego mogłaby się zakończyć. Skąd więc nawiązanie do Steve’a Jobsa i jego firmy? Otóż wpływ Ritchiego na losy Apple’a był raczej pośredni, niemniej wciąż znaczący. W czasach, gdy nad Unixem pracowali studenci wielu uczelni wyższych, na uniwersytecie Berkley powstała osobna wersja Unixa, ochrzczona nazwą BSD [Berkeley Software Distribution – przyp.red.]. I to właśnie na niej zbudowany został OS X – czyli system operacyjny, z którego korzystają wszystkie produkty giganta z Cupertino. Nie będzie więc przesadą stwierdzenie, że gdyby nie Dennis Ritchie i jego współpracownicy, świat technologiczny, jaki dziś znamy, nie istniałby. Dobrze jest mieć tego świadomość, kiedy następnym razem przywołamy słowa Steve’a Jobsa ku inspiracji.
::
Artykuł ukazał się w styczniowym numerzez magazynu „Brief” 1(195)/2016