Bjarne Stroustrup — twórca języka C++. Wielce szanowany, acz wciąż mało znany
10.12.2021 | aktual.: 25.12.2021 09:15
C++ ciągle jest jednym z najczęściej wykorzystywanych języków programowania. Dzieje się tak już od blisko czterech dekad, a to najlepiej świadczy o jego ponadczasowości i uniwersalności.
Stworzył go Bjarne Stroustrup - który zasłużenie uchodzi za jednego z najbardziej zasłużonych programistów na świecie, jednak mimo tego nie jest specjalnie popularny również i w naszym kraju. O tyle to nie fair, iż teraz bardzo trudno wyobrazić sobie współczesną branżę IT bez C++. Pora więc dowiedzieć się coś więcej o tym wyłysiałym Duńczyku, dla którego filozofia jest nie mniej ważna od programowania.
Lata wczesne
Bjarne Stroustrup urodził się 30 grudnia 1950 roku w ponad 250‑tysięcznym Aarhus, gdzie mieszkał przez 25 lat. Jest to drugie co do wielkości miasto w Danii, położone na wschodnim wybrzeżu Jutlandii. Stroustrup pomimo tego, że jego rodzice nie byli przesadnie wykształceni, od samego początku świetnie radził sobie w szkole. W okresie dzieciństwa był harcerzem oraz wolnym czasie uwielbiał grać w piłkę nożną i jeździć na rowerze. Natomiast swoje pierwsze pieniądze zarabiał jako dostawca gazet i mleka.
Stroustrup w wieku nastoletnim wyróżniał się już sporą kreatywnością i po latach przyznał, że mógł zostać architektem, historykiem lub socjologiem. Ale w końcu po ukończeniu szkoły średniej wstąpił w 1969 roku na miejscowy uniwersytet, aby podjąć naukę na wydziale technologii komputerowych. Na jego decyzję wpłynął licealny matematyk, który zaszczepił w nim miłość do tej nauki oraz informatyki.
Na studiach Stroustrup zainteresował się mikroprogramowaniem, ale i też szybko zdał sobie sprawę, że praca w laboratoriach uniwersyteckich nijak ma się do prawdziwego programowania. Mimo to nie opuścił uczelni i w 1975 roku zdobył tytuł magistra z matematyki i informatyki. Następnie Stroustrup udał się do Anglii, aby podjąć dalszą naukę na Uniwersytecie w Cambridge. Zresztą podczas studiów w Aarhus był tam już na stażu. Stroustrup trafił do Laboratorium Informatycznego, gdzie zajął się projektowaniem systemów rozproszonych. Rok 1979 zwieńczył zaś na tej prestiżowej uczelni zdobyciem tytułu doktora informatyki.
Kariera w USA
Zaraz potem Stroustrup przeniósł się do Stanów Zjednoczonych i zamieszkał w New Jersey - wraz z żoną, którą poznał na studiach. W nowej ojczyźnie podjął pracę w firmie Bell Telephone Laboratories, gdzie najczęściej pracował nad problemami w teorii kolejek.
Stroustrup szybko zyskał tam opinię wyśmienitego programisty, aczkolwiek i jemu od samego początku zdarzały się tzw. sytuacje bez wyjścia, choćby wtedy gdy nie mógł znaleźć odpowiedniego języka programowania do napisania kilku programów symulacyjnych do obliczeń symulacji rozproszonych. Przykładowo Simula 67 wykazywał stosunkowo wolne tempo wykonywania programu, a BCPL natomiast za słabo nadawał się do pisania dużych projektów.
Tego typu problemy spowodowały, iż Stroustrup pod koniec lat 70‑tych postawił sobie ambitny cel: stworzyć własny język programowania, służący do ogólnego przeznaczenia:
Chciałem zbudować system z wieloma komputerami z systemem komunikacji, który mógłby być pamięcią współdzieloną lub sieciąBjarne Stroustrup
Co ciekawe Stroustrup wcześniej nie był zainteresowany rozwojem języka programowania. Oprócz mikroprogramowania interesował się bowiem najbardziej systemami operacyjnymi, architekturą komputerową i rozwojem maszyn wirtualnych. Z drugiej jednak strony jeszcze przed ukończeniem studiów zdołał poznać dwadzieścia języków programowania.
Zdeterminowany Duńczyk, mając tak gruntowane przygotowanie konkretnie wziął się do roboty. Jego wypowiedź zacytowana na blogu Zentica Global najlepiej zaś przedstawia, jakie podjął działania podczas tworzenia języka C++:
Skupiłem się na oprogramowaniu. Musiałem napisać kod niskiego poziomu, zbliżony do sprzętu, taki jak menedżery pamięci, planiści procesów i sterowniki urządzeń, aby oddzielić komponenty oprogramowania, aby mogły one działać na osobnych komputerach komunikujących się w dobrze zdefiniowane sposoby.
Żaden język tamtych czasów nie sprostał zadaniu, więc Stroustrup zobowiązał się do zbudowania czegoś, co było:
C z klasami łączyło zdolność języka C do pracy blisko sprzętu z wydajnym wariantem klas Simuli do tworzenia abstrakcji i organizacji kodu.
C++
C++ oficjalnie pojawił się w 1983 roku i został zaprojektowany przez Bjarne'a Stroustrupa z myślą o programowaniu systemowym oraz do zaawansowanych obliczeń inżynierskich. Na początku był nazywany "C z klasami". Nazwę "C++" wymyślił zapomniany już Rick Maschitty, jednoznacznie dając do zrozumienia, że C ++ to coś więcej niż tylko C, aczkolwiek:
Zachowanie zgodności z językiem C na poziomie kodu źródłowego pozostaje jednym z podstawowych celów projektowych kolejnych standardów języka.
Stroustrup zaprojektował swój język w taki sposób, aby był dostępny dla setek tysięcy programistów C z odpowiednim kompilatorem. W 1984 roku firma Stroustrupa została zreorganizowana i przekształcona w AT&T Bell Laboratories. Już pod tą nazwą zaoferowała uczelniom C++ praktycznie za darmo. Rok później Stroustrup opublikował jedną z najbardziej znanych swoich książek pt. "The C++ Programming Language". Ma ona już status kultowy wśród programistów tego języka i doczekała się pięciu wydań (1985, 1991, 1997, 2000, 2013), zostając przetłumaczona na wiele języków.
C++ szybko stał się megapopularny i na początku lat 90. liczba programistów C++ zbliżała się do 500 tys. Dzięki temu język ten stał się światowym liderem pod względem szybkości dystrybucji. W 1990 roku opublikowana została kolejna bestselerowa książka Stroustrupa pt. "The Annotated C++ Reference Manual", którą później nagrodzono nagrodą za doskonałość w dokumentacji technicznej. Ponadto naówczas uznano go za jednego z "dwunastu najlepszych młodych amerykańskich naukowców" przez magazyn Fortune.
W 1998 roku Stroustrup został zaś mianowany "ACM Fellow" - "za swoje prace nad podstawami języka C++", dzięki którym stał się jednym z najważniejszych języków programowania w historii informatyki. Odtąd jest członkiem prestiżowego Stowarzyszenia Maszyn Komputerowych, zyskując przy tym spore stypendium.
W międzyczasie Stroustrup kontynuował pracę w AT&T Bell Labs, gdzie w latach 1995-2002 kierował działem badań nad oprogramowaniem na dużą skalę. Był wtedy aktywnie zaangażowany w ulepszanie swojego języka i tworzenie jego standardu (norma ANSI/ISO C++ została wydana w 1999 r.).
Złotousty Bjarne
Już po odejściu z stamtąd Stroustrup w jednym z wywiadów wyraził bardzo ciekawe podejście do problemów z kompatybilnością C i C++:
Myślę, że istniejące problemy niezgodności między C i C++ to najstraszniejsza rzecz, jaka mogła się przydarzyć w historii tych języków. Najlepiej byłoby połączyć te języki. I wydaje mi się, że jest to technicznie wykonalne tylko wtedy, gdy zostaną wprowadzone zmiany w obu językach. Jednak ze względu na niechęć do wprowadzania tych zmian języki wciąż oddalają się od siebie, zatruwając życie niemal każdego programisty C i C++.
Stroustrup słynie zresztą z bardzo ciekawych wypowiedzi, które powodują najróżniejsze dysputy w środowisku programistów oraz pasjonatów IT. W polskich mediach zaistniał między innymi tymi cytatami:
Jeśli ktoś twierdzi, że ma doskonały język programowania, jest albo głupcem, albo sprzedawcą, albo jednym i drugim.
cytat z ich.pro.pl
C sprawia, że łatwo jest sobie strzelić w stopę. Z C++ jest to trudniejsze, ale za to w razie czego odstrzelisz sobie całą nogę
cytat z WP Tech
Zawsze chciałem, żeby mój komputer był tak łatwy w użyciu jak mój telefon. Moje życzenie się spełniło, ponieważ już nie potrafię używać swojego telefonu.
cytat z joemonster.org
20 lat kolejnych uhonorowań i zarabiania dobrej kasy
W 2002 roku Bjarne Stroustrup został profesorem na Texas A&M University, gdzie ze względu na swoje wielkie doświadczenie ma wiele do przekazania tamtejszym studentom programowania. Ponadto już od prawie ośmiu lat jest profesorem wizytującym na katedrze informatyki Uniwersytetu Columbia.
W pierwszym pięcioleciu XXI wieku Stroustrupowi przyznano dodatkowo wielce cenione wyróżnienia i nagrody. W 2004 roku "za stworzenia języka C++" został wybrany na członka amerykańskiego National Academy of Engineering. Rok później otrzymał zaś medal IEEE Computing Society Award "za zainicjowanie rozwoju i komercjalizacji technologii oprogramowania zorientowanego obiektowo" oraz jako pierwszy informatyk otrzymał nagrodę Williama Proctera.
W 2014 roku Stroustrup podjął pracę w jednym największych banków inwestycyjnych na świecie - Morgan Stanley - tym samym decydując się na powrót do rozwiązywania realnych problemów. Jego rozległe doświadczenie natomiast już od ponad 7 lat okazuje się przydatne w odpowiednim funkcjonowaniu systemów bezpieczeństwa tego konglomeratu finansowego.
Co ciekawe Stroustup prywatnie oprócz bycia szczęśliwym mężem, ojcem i dziadkiem jest również empirystą oraz wielkim miłośnikiem historii. Zatem nie samym programowaniem żyje, z drugiej jednak stronie zamiłowanie do filozofii zmysłu w pewnym stopniu mogło mu pomoc w stworzeniu swojego opus magnum.
Podsumowując
A Wy co sądzicie o strostroup'owskim C++? Jest to poniekąd prowokacyjne pytanie, albowiem wśród znawców tematu oprócz oddanych zwolenników ma on również zaciekłych przeciwników.
Na koniec jako ciekawostkę można dodać, że C++ według tamtego rocznych sondaży zajmuje 8 miejsce wśród najbardziej popularniejszych języków programowania. Jak na blisko 39‑latka jest to więc wynik wręcz znakomity.