Nie sam Pascal: co komputerowy laureat Nagrody Nobla Niklaus Wirth zrobił dla współczesnego świata. Biografia Niklausa Wirtha Krótka biografia Niklausa Wirtha

Niklaus Wirth to nazwisko znane wielu w Rosji. Ponad trzydzieści lat temu profesor Wirth stworzył język programowania Pascal w odległej Szwajcarii. Wydawałoby się, że już samo to wystarczyło, aby na zawsze zapisać jego nazwisko w annałach informatyki. Jednak w życiu często zdarza się, że to nie najlepsze i najdoskonalsze dzieła zyskują uznanie i sławę. Zatem w przypadku Pascala widzimy jedynie wierzchołek góry lodowej, a większość twórczości Wirtha wciąż pozostaje dla wielu nieznana.

Niklaus Wirth urodził się 15 lutego 1934 roku w małym miasteczku Winterthur na obrzeżach Zurychu. Niklaus urodził się w rodzinie Waltera i Hedwigi Wirth. Mieszkał niedaleko szkoły, w której uczył jego ojciec. W ich domu znajdowała się dobra biblioteka, w której Wirth wiele znalazł interesujące książki o szyny kolejowe, turbiny i telegraf.

Małe miasteczko Winterthur ma długą historię i słynie z inżynierii mechanicznej: produkuje się tam lokomotywy i silniki wysokoprężne. Od dzieciństwa Wirth interesował się inżynierią, zwłaszcza modelowaniem samolotów. Dosłownie śnił o niebie. Ale żeby wystrzelić rakiety, trzeba było zdobyć paliwo, więc zajął się chemią. Młody Wirt założył w podziemiach szkoły „tajne” laboratorium. Nic nie mogło go powstrzymać: pewnego dnia wykonany przez niego model zboczył z zadanej trajektorii i wylądował pod nogami dyrektora szkoły. Jednak Wirth nadal uparcie dążył do swojego celu.

Kilkadziesiąt lat później Niklaus Wirth, podobnie jak Ken Thompson, autor UNIX-a, miał okazję polecieć MIG-em z lotniska wojskowego w Kubince, która znajduje się pod Moskwą. Spełniło się jego ukochane marzenie. Motywację do zawodowej twórczości Wirtha najlepiej ujawnił jego kolega z Uniwersytetu Stanforda (USA), profesor Donald Knuth: „Wirth zawsze chciał tworzyć samoloty i potrzebował najlepszych narzędzi. Dlatego zaprojektował wiele języków komputerowych i mikrokomputerów. ”

Od budowania modeli Nicklaus szybko przeszedł do opracowywania pilotów. Kiedy skończył 18 lat, wraz z dwoma innymi modelarzami samolotów z Zurychu otrzymał z Anglii upragniony sprzęt radiowy. To przesądziło o jego przyszłym losie – w 1954 roku Wirth wstąpił na Wydział Elektroniki ETH w Zurychu (Eidgenoessische Technische Hochschule, Szwajcarski Federalny Instytut Technologii). Po czterech latach studiów Wirth uzyskał tytuł licencjata w dziedzinie elektrotechniki. A potem rozpoczyna się chwalebna dziesięcioletnia zagraniczna „tournee” naukowa przyszłego „Ojca Pascala” i „Króla Kompilatorów” wzdłuż trasy Szwajcaria – Kanada – USA – Szwajcaria.

Wirth kontynuował studia na Uniwersytecie Laval w Quebecu (Kanada), gdzie w 1960 roku uzyskał tytuł magistra. Następnie został zaproszony na Uniwersytet Kalifornijski w Berkeley (USA) – przyszłą perłę Doliny Krzemowej. Tam pod kierunkiem profesora Husky'ego w 1963 roku Niklaus Wirth obronił rozprawę doktorską na temat rozwoju Algola przy użyciu języka Lisp (język Eulera). Ta praca dosłownie dała mu start w życiu: Virt został zauważony przez mistrzów programowania i zaproszony do Komisji IFIP ds. Standaryzacji Algolu. Ta szkoła nie poszła na marne: do końca życia Wirth pamiętał, że trzeba udowadniać czynami, że się ma rację, zwłaszcza gdy nie chcą cię słuchać. Jeśli chodzi o języki rozwijające się, na zawsze porzucił abstrakcyjne podejście naukowe na rzecz inżynierii matematycznej. Według niego lepiej najpierw zaimplementować język, a dopiero potem o nim pisać.

Od 1963 do 1967 r Wirth pracował jako adiunkt na Uniwersytecie Stanforda i w 1967 roku wrócił z tym tytułem na Uniwersytet w Zurychu. A w 1968 roku otrzymał tytuł profesora informatyki na ETH i zaczął budować swój „szwajcarski” Stanford w swojej ojczyźnie. Dwadzieścia lat od 1969 do 1989 był być może najbardziej owocnym okresem w życiu Wirtha (tabela 1). Kontynuował budowę swojej szkoły, poświęcając wiele czasu na działalność organizacyjną. Od 1982 do 1984 (a następnie od 1988 do 1990) Wirth stał na czele Katedry Informatyki ETH, a od 1990 roku kierował Instytutem Systemów Komputerowych ETH. Profesor Wirth przeszedł na emeryturę 1 kwietnia 1999 r., po osiągnięciu wieku 65 lat.

Trzej podobnie myślący przyjaciele: Hoare, Dijkstra i Wirth.

Romantyczne lata 60. zapoczątkowały przyjaźń trzech patriarchów programowania strukturalnego – Holendra Edsgera Dijkstry, Anglika Anthony’ego Hoare’a i Szwajcara Niklausa Wirtha. Tych „Noblistów” (nagroda Turinga przyznawana przez stowarzyszenie ACM jest przyznawana raz w życiu i jest równoznaczna z Nagrodą Nobla w dziedzinie informatyki) zjednoczyły nie tyle abstrakcje informatyki, ile wyraźny profesjonalista pozycja.

Edsger Dijkstra (Holandia, Politechnika w Eindhoven). Z przemówienia podczas wręczenia nagrody Turinga (Boston, USA, 14 sierpnia 1972).

Kiedy nie było jeszcze komputerów, programowanie nie stanowiło problemu. Kiedy mieliśmy kilka komputerów o małej mocy, programowanie stało się problemem o średniej złożoności. Teraz, gdy mamy gigantyczne komputery, programowanie staje się gigantycznym problemem.

Anthony Hoare (Wielka Brytania, Uniwersytet Oksfordzki). Z przemówienia podczas wręczenia nagrody Turinga (Nashville, USA, 27 października 1980).

Prawie wszystko w oprogramowaniu można sprzedać, sprzedać, a nawet używać przy wystarczającej wytrwałości. Ale jednej cechy nie da się kupić – niezawodności. Ceną niezawodności jest dążenie do ekstremalnej prostoty. Jest to cena, którą najtrudniej zapłacić najbogatszym.

Niklaus Wirth (Szwajcaria, Szwajcarski Federalny Instytut Technologii). Z przemówienia podczas wręczenia nagrody Turinga (San Francisco, USA, październik 1984):

"Żyjemy w złożony świat i staramy się rozwiązywać z natury złożone problemy, które często wymagają skomplikowanych urządzeń do rozwiązania. Nie oznacza to jednak, że nie powinniśmy szukać eleganckich rozwiązań, które przekonują swoją przejrzystością i skutecznością. Proste, eleganckie rozwiązania są skuteczniejsze, ale trudniej je znaleźć niż skomplikowane i zajmują więcej czasu.

Najsłynniejszym osiągnięciem profesora Wirtha jest język Pascal (1970). Oczywiście wielu słyszało o tym języku i zna go. Pascal odegrał ogromną rolę w kształtowaniu światopoglądu kilku pokoleń programistów. Jego główną zaletą jest prostota i elegancja: jest zbudowany na jasnych zasadach programowania strukturalnego sformułowanych przez Edsgera Dijkstrę, na pięknych podstawach matematycznych stworzonych przez Anthony'ego Hoare'a oraz na genialnym architektonicznym wykonaniu pomysłów Algol-W wdrożonych przez Niklausa Wirtha. Z technologicznego punktu widzenia Pascal był interesujący nie tylko dlatego, że jego kompilator, stworzony na ETH, stał się jedną z pierwszych implementacji języków wysoki poziom sam w sobie, około dwa lata przed kompilatorem C. Pracując nad nim w 1973 roku, wynaleziono abstrakcyjną maszynę Pascala (maszyna P), wykonującą specjalny kod P. Aby rozwiązać problem przenoszenia kompilatora Pascala na różne platformy, Wirth zdecydował się zastosować sprawdzone metody interpretacji. Jednym z najbardziej znanych rozwiązań poprzedzających kod P jest implementacja języka Snobol-4 (R. Griswold, 1967), w którym jako abstrakcyjny kod maszynowy wykorzystano język SIL (ang. System Implementation Language).

Jak wiadomo, wprowadzenie wirtualnej (abstrakcyjnej) maszyny Java zostało przedstawione przez jej twórców z Sun Labs jako być może fundamentalne odkrycie w praktyce języków programowania. Jeden z uczniów Wirtha, Michael Franz, tak zauważył na ten temat: "Przenośność Java opiera się na obecności maszyny wirtualnej, która ułatwia imitowanie dużej liczby architektur. Pomysł maszyny wirtualnej był bardzo popularny ponad dwadzieścia lat temu, choć później został zapomniany. Mówimy wówczas „był o Pascalu-P – implementacji Pascala stworzonej na ETH, która odegrała decydującą rolę w rozpowszechnieniu tego języka. Co ciekawe, maszyny wirtualne dla Pascala i Java mają bardzo podobną architekturę.”

Pomysły na kod P trafiły nie tylko na platformy Java i NET, nie tylko do innych języków i silników baz danych, ale także do implementacji sprzętowych. Na przykład do bezpośredniego wykonywania kodu P firma Western Digital opracowała w 1979 roku specjalny zestaw WD9000 PEngine. Eksperymentalny procesor POMP powstał na Uniwersytecie Stanforda w 1980 roku. Komercyjna implementacja Pascala, UCSD Pascal, która pojawiła się w 1978 roku, stała się jeszcze bardziej znana i wielu zapomniało, gdzie po raz pierwszy pojawił się kod P i maszyna P. Oto, co Wirth mówi na ten temat: „Kiedy dowiedziało się o istnieniu Pascala, kilka osób poprosiło nas o pomoc we wdrożeniu go na różnych maszynach, podkreślając, że zamierzają używać go do nauczania i że szybkość nie jest dla nich najważniejsza. Potem postanowiliśmy stworzyć wersję kompilatora, która będzie generować kod dla maszyny własnej konstrukcji. Kod ten stał się później znany jako P-code... Pascal-P okazał się niezwykle udanym językiem do dystrybucji wśród duża liczba użytkownicy. A gdybyśmy byli na tyle mądrzy, aby przewidzieć skalę takiego rozwoju sytuacji, włożylibyśmy więcej wysiłku i uwagi w opracowanie i udokumentowanie kodu P.

Język Pascal był przez wielu postrzegany przede wszystkim jako język do nauczania informatyki. Ale sam Wirth nie zgadza się z tak celowym zawężeniem jego potencjału (1984): "Twierdzono, że Pascal został zaprojektowany jako język do nauczania. Chociaż to stwierdzenie jest prawdziwe, jego wykorzystanie w nauczaniu nie było jedynym celem. W co prawda nie wierzę w powodzenie stosowania na szkoleniach narzędzi i technik, których nie da się zastosować do rozwiązania jakichś praktycznych problemów. Jak na dzisiejsze standardy Pascal miał oczywiste braki w programowaniu dużych systemów, ale 15 lat temu stanowił on rozsądny kompromis pomiędzy tym, co było pożądane i skuteczne”.

Tak, ten język był daleki od ideału. Swego czasu Brian Kernighan, znany popularyzator języka C i współautor klasycznego podręcznika C (K&R), napisał krytyczny artykuł „Dlaczego Pascal nie jest moim ulubionym językiem programowania”. Jeśli przeczytasz go uważnie, możesz stwierdzić, że Niklaus Wirth wyciągnął z niego właściwe wnioski i w języku Modula-2 (1980) pod wpływem artykułu wyeliminował wiele wad kanonicznego Pascala. Należy jednak pamiętać o jednej istotnej okoliczności. Kontrowersyjne dzieło Kernighana powstało 2 kwietnia 1981 roku, tj. dwa lata po wdrożeniu pierwszego kompilatora Modula-2 przez grupę Wirtha na ETH i rok po wydaniu sprzętowej implementacji Modula-2 – komputera osobistego Lilith. W kwietniu 1993 roku na konferencji ACM poświęconej historii języków programowania Wirth w odpowiedzi na pytanie jednego ze swoich kolegów przyznał językowi Modula-2 notę ​​6 punktów (najwyższy wynik w szwajcarskich szkołach).

Język Modula-2 był nie tylko zwartą i wydajną alternatywą dla języka Ada, ale znacznie wyprzedzał te implementacje pomysłów programowania modułowego, które znalazły odzwierciedlenie dopiero po latach i w znacznie mniej przemyślanej formie w Turbo Pascalu i Delphi. Słynny system operacyjny OS/400 dla IBM AS/400 został zaimplementowany na platformie Modula-2. Centrum Badań nad Systemami Digital Corporation (Centrum Badań nad Systemami DEC) wzięło ten język za podstawę swoich wewnętrznych projektów, tworząc następnie język Modula-3.

Przemysł komputerowy pozostawał w tyle za twórczością Wirtha o co najmniej 5–7 lat. W tym samym 1979 roku (kiedy na komputerze PDP-11 w środowisku RT-11 pojawił się pierwszy kompilator Modula-2) legendarny komputer Apple II, znacznie gorszy od Lilith, właśnie nabył kompilator Apple Pascal, nastawiony na UCSD implementacja Pascala. Do pojawienia się pierwszego skromnego Turbo Pascala Andersa Hejlsberga pozostały całe cztery lata! Jeśli chodzi o komputer Lilith, stał się on pierwszym komputerem w Europie, który w pełni wykorzystał możliwości druku laserowego. Następnie Wirth ze smutkiem powiedział, że dzięki projektowi Lilith szwajcarski przemysł stracił swoją wyjątkową szansę.

Projekt Oberon (1988) stał się prawdziwą perłą twórczości Wirtha. Stworzony prawie dwie dekady temu system Oberon (http://www.oberon.ethz.ch/) odgrywa dziś w przybliżeniu tę samą rolę, jaką projekty Alto i Xerox Star odegrały w słynnym centrum Xerox PARC na początku lat 80. powstały komputery osobiste i edytory tekstu. Dla korporacji takich jak Microsoft, IBM i Sun Microsystems projekt Oberon stał się źródłem owocnych pomysłów, w tym interfejsu zorientowanego na dokumenty, przeglądarek, języków tworzenia oprogramowania przemysłowego (Java i C#), niezależnego od maszyny kodu mobilnego (JVM i .NET CLR), aplety, oprogramowanie składowe, kompilacja dynamiczna (JIT, AOC, DAC), tagi inteligentne, usługi sieciowe itp.

Teraz wydaje się to niewiarygodne, ale do ponownej kompilacji system operacyjny Oberon i kompilator Oberon zajęły łącznie tylko 15 sekund! I to na sprzęcie z początku lat 90-tych.

Michael Franz obronił pracę magisterską na ETH w lutym 1994 r. zatytułowaną „Dynamiczne generowanie kodu – klucz do przenośnego oprogramowania”. Jasno zidentyfikował problemy maszyn wirtualnych i zaproponował niezwykle proste i dość nietypowe podejście do osiągnięcia przenośności. Rozprawa Franza nie tylko szczegółowo zbadała zasadę tworzenia i przechowywania reprezentacji pośredniej, ale także stwierdziła, że ​​dla tej klasy języków pozostaje ona praktycznie niezmieniona. Innymi słowy, zasada ta była całkiem odpowiednia dla języka Java. Nawiasem mówiąc, koncepcja apletu pojawiła się także w pracach Franza. Rok po pojawieniu się Javy Michael Franz latem 1996 roku przygotował środowisko o nazwie Juice, wykonane jako moduł wtyczki dla przeglądarek Netscape i Microsoft. Moduł składał się z kompaktowej wersji systemu operacyjnego Oberon oraz w pełni funkcjonalnego kompilatora Oberon, którego rozmiar (w formacie Oberon) wynosi łącznie zaledwie 100 KB. W marcu 1994 roku Michael Franz złożył kilka raportów w Sun Labs, a wiosną tego roku Bill Joy (wiceprezes Sun i ideolog projektu Java) miał już pod ręką wszystkie niezbędne informacje, w tym rozprawę Franza. Joy została jedną z pierwszych licencjobiorców ETH Oberon. W czerwcu 1994 roku Bill Joy wpadł na pomysł (jak to się stało, historia wstydliwie milczy), aby przeorientować język Oak Jamesa Goslinga na inne zadania - stworzenie kompaktowego systemu operacyjnego. Projekt, który nazwano LiveOak, powstał w pośpiechu. Wszystko to należy wziąć pod uwagę, przyglądając się obecnym wyzwaniom stojącym przed Javą.

Świat programowania przemysłowego jest pełen nadmiernej złożoności. W rezultacie kryteria takie jak prostota (widoczność kodów źródłowych), niezawodność, zwartość programów i wydajność kodu wykonywalnego są obecnie zastępowane jednym głównym kryterium - szybkością wdrażania pomysłów. A to nieuchronnie prowadzi do gwałtownego spadku wpływu samego języka i wzrostu roli środowiska instrumentalnego, któremu czasami nie zależy na tym, z czym operować, a przede wszystkim na jego możliwościach wizualizacyjnych. Jak trafnie zauważa Niklaus Wirth, „ciągły brak czasu jest prawdopodobnie główną przyczyną pojawiania się uciążliwego oprogramowania”. Priorytet czasu rozwoju jest ogólnie jasny: zasoby ludzkie są obecnie znacznie wyższe niż sprzętowe. Ale czy nie tracimy po drodze czegoś cennego, co będzie niezwykle trudno odzyskać później?

Żyjemy w erze triumfującego szalonego wyścigu technologicznego i wymyślonej złożoności. Niklaus Wirth całe swoje życie poświęcił walce z tymi szkodliwymi zjawiskami, ale oni go nie słyszą lub nie chcą go słyszeć. „Skrajny stopień inteligencji” – napisał Blaise Pascal – „jest oskarżany o szaleństwo w taki sam sposób, jak całkowity brak inteligencji. Tylko przeciętność jest dobra”.

Języki programowania opracowane przez Wirth:

(1970) Pascala

(1988) Oberona

Niklausa Wirtha w Akademgorodku.

2 i 3 października jako gość Instytutu Systemów Informatycznych im. Miasteczko Akademickie A. Erszowa odwiedził słynny naukowiec, autor języków algorytmicznych Pascal, Modula i Oberon, profesor ETH Zurich Niklaus Wirth. Virt ma długotrwałe powiązania z Akademgorodkiem. W 1965 roku poznał akademika Erszowa, który przyjechał do USA na kongres IFIP (Międzynarodowa Federacja Przetwarzania Informacji). Kontakty naukowe rozwijane zarówno poprzez grupę roboczą IFIP ds. języka ALGOL, jak i poprzez wykorzystanie języka Pascal do wdrożenia systemu<Бета>. Dowody przyjaznych stosunków między obydwoma naukowcami znajdują się w archiwach akademika Erszowa.

Dużą rolę w popularyzacji języków i systemów Niklausa Wirtha w naszym kraju odegrała praca grupy profesora I. Pottosina z ISI SB RAS. Igor Wasiljewicz był opiekunem naukowym Dmitrija Kuzniecowa, jednego z twórców architektury<Кроноса>(pierwszy krajowy komputer 32-bitowy) i to on wpadł na pomysł powtórzenia eksperymentu Niklausa Wirtha – zaimplementowania procesora o architekturze skupionej na językach wysokiego poziomu.

Rankiem 2 października Wirth wziął udział w otwarciu Olimpiady Potossina na NSU, wyrażając nadzieję, że stworzone przez niego języki programowania – następcy Pascala – zajmą należne im miejsce w systemie edukacji informatycznej. O godzinie trzeciej tego samego dnia Wielka Audytorium Fizyki NSU wypełniła się po brzegi chętnymi do wysłuchania raportu profesora Wirtha na temat ewolucji języków i programowania, gdzie w bardzo przystępny sposób forma logiczna przedstawiono analizę innowacji w informatyce na przestrzeni ostatnich 40 lat.

Na początku swojego przemówienia przeprosił, że nigdy nie nauczył się języka rosyjskiego na poziomie, na którym byłby w stanie mówić nim nieprzerwanie i wyraźnie przez dwie godziny. Publiczność przyjęła propozycję przeczytania raportu w języku niemieckim z zakłopotanym milczeniem.<Самой серьезной ошибкой, сделанной еще в 1957 году, была ошибка: Y = X>”- zauważył profesor. Na sali słychać było lekki śmiech. Rzecz w tym, że nie każdy może tę równość postrzegać jako nakaz przydziału. Oprócz wyżej wymienionego błędu Wirth zauważył szereg innych błędów, które komplikują języki na tyle, że ich praktyczne wykorzystanie jest poważnie utrudnione. W związku z tym Wirth wyjaśnił, że celowo zaczął używać w swoich językach składni odgórnej, a także wyraził zdziwienie nadal istniejącym poleceniem wirtualnego przekierowania, które było konieczne tylko w czasach, gdy pamięć mierzono w kilobajtach, a nie megabajtach.

Osobnym celem krytyki profesora były popularne języki C i C++, do których niewygodnej i zagmatwanej struktury naukowiec wracał nie raz. I tak na przykład nazwał język Java Oberon, zepsuty składnią języka C. Jako słuszną drogę Wirth zasugerował, aby zacząć aktywnie wykorzystywać Oberona w nauczaniu studentów programowania. Profesor nazwał to, że w C++ pisze się dzisiaj ogromną liczbę programów, że nie jest fundamentalne. Jeśli przedsiębiorstwo pracuje w tym języku, to jego inżynierowie oprogramowania mają wiele problemów, podczas gdy część edukacyjna jednocześnie nadal kształci specjalistów w C i C++ ze względu na ich zapotrzebowanie w przedsiębiorstwach. W rezultacie powstaje zjawisko błędne koło, który po prostu trzeba przełamać jeśli mówimy o rozwoju języków programowania w kierunku funkcjonalności i prostoty. Profesor nie szczędził krytyki języków programowania z nadpisanymi regułami składni (makra języka C i przeciążone operatory).

Chętnych do zdobycia autografu słynnego Wirtha było wiele – profesor podpisywał wszystkie proponowane pozycje przez około pół godziny. Najpoważniejsi studenci z dumą przywieźli ze sobą książki samego Niklausa Wirtha<Алгоритмы и структуры данных>, <Системное программирование>I<Модула-2>. Inni ograniczyli się do przebłysku geniuszu w księdze rekordów lub legitymacji studenckiej. Podczas gdy naukowiec rozdawał autografy, na werandzie NSU zebrało się kilkaset osób, aby uwiecznić podniosły moment w historii.

Program pobytu Niklausa Wirtha w Academgorodok zakończony<круглый стол>z nauczycielami programowania z różnych uczelni i szkół, podczas których omawiano zagadnienia nurtujące współczesnych nauczycieli. Od niechcenia karcąc zawsze poszukiwany C++, uczestnicy doszli do konsensusu, że Oberon lub Component Pascal jest najwygodniejszym ogólnym dzielnikiem całej serii współczesne języki programowania i może równie dobrze odegrać rolę esperanta na kursie szkoleniowym dla studentów programistów.

Za swój liczny wkład w informatykę dr Niklaus Wirth otrzymał wiele nagród i wyróżnień. Amerykańska Rada Mistrzów przyznała mu tytuł członka stowarzyszonego; Towarzystwo Komputerowe Instytutu Elektroniki i Radiotechniki – tytuł pioniera informatyki; otrzymał Europejską Nagrodę Naukowo-Technologiczną IBM; został członkiem Szwajcarskiej Akademii Inżynierii i zagranicznym partnerem Amerykańskiej Akademii Inżynierii, a także otrzymał Order „Pur le merte” i Nagrodę Turinga. Wirth otrzymał doktoraty honoris causa wielu uniwersytetów: University of Lavape w Quebecu (Kanada), University of California, Berkeley, University of York (Anglia), Lehn Johannes Kepler University (Austria), University of Nowosybirsk (Rosja), Open University of England, Uniwersytet w Pretorii (RPA).


Bogatyrev jest szefem „Studio technologii oprogramowania 1024” w wydawnictwie „ Systemy otwarte" E-mail: [e-mail chroniony]. Z biografii N. Wirtha Profesor Niklaus K. Wirth, autor języka Pascal, jest absolwentem Szwajcarskiego Federalnego Instytutu Technologii ETH (Eidgenoessische Technische Hochschule) w rodzinnym Zurychu (1958). Na Uniwersytecie Laval w Quebecu (Kanada) uzyskał...


Opis oprogramowania. 3.1 Praca z podręcznikiem elektronicznym Zasób elektroniczny przeznaczony jest dla studentów uczelni wyższych w celu przygotowania się do wykładów, zajęć praktycznych i laboratoryjnych. Instrukcja elektroniczna została stworzona w programie AutoPlay Media Studio 7.0. Aby rozpocząć pracę z oprogramowaniem, należy uruchomić plik .exe. Strona tytułowa niniejszej instrukcji przedstawiono na rys. ...

Niektórzy uważają, że współczesny świat prawie nie zna Niklausa Wirtha i nawet nie jest świadomy jego ogromnego wkładu w światową informatykę. Niektórzy uważają go za „ojca Pascala”. Wirtha pamiętają nie tylko nauczyciele na uniwersytetach, którzy uczą studentów Turbo Pascala, ale także komercyjni programiści piszący w Delphi.

Tak naprawdę Niklaus Wirth jest inżynierem przez duże „E”, jego wkład w rozwój języków programowania nie ogranicza się do Pascala, ale dopiero od niego się zaczyna. Ponadto Wirth jest nauczycielem, osobą publiczną i, można powiedzieć, filozofem. Spróbujmy ocenić rzeczywistą skalę jego osobowości i wkładu w branżę IT.

Dzieciństwo, edukacja, hobby

Niklaus Wirth urodził się 15 lutego 1934 roku w małym miasteczku Winterthur na obrzeżach Zurychu. Jego rodzice to Walter i Hedwig Wirth. Ojciec Nicklausa był nauczycielem w szkole. Mieszkał niedaleko szkoły, w której uczył jego ojciec. W ich domu znajdowała się dobra biblioteka, w której Wirth znalazł wiele interesujących książek o kolei, turbinach i telegrafach.

Winterthur ma długą historię i słynie z inżynierii mechanicznej: produkowane są tam lokomotywy i silniki wysokoprężne. Od dzieciństwa Wirth interesował się technologią, zwłaszcza modelowaniem samolotów. Aby wystrzelić rakiety, trzeba było zdobyć paliwo, dlatego zajął się chemią. Młody Wirt założył w podziemiach szkoły „tajne” laboratorium. Nic nie mogło go powstrzymać: pewnego dnia wykonany przez niego model zboczył z zadanej trajektorii i wylądował pod nogami dyrektora szkoły. Jednak Wirth nadal uparcie dążył do swojego celu.

Hobby okazało się na tyle poważne, że Wirth zbudował nawet kilkanaście modeli na podstawie własnych rysunków. Nawiasem mówiąc, później zajął się prawdziwym lataniem i zajmował się tym hobby przez całe życie. Nawet w bardzo zaawansowanym wieku twórca popularnego języka programowania nie odmówił sobie przyjemności latania myśliwcem.

Kiedy skończył 18 lat, wraz z dwoma innymi modelarzami samolotów z Zurychu zamówił z Anglii upragniony sprzęt radiowy. To przesądziło o jego przyszłym losie – w 1954 roku Wirth wstąpił na Wydział Elektroniki ETH w Zurychu (Eidgenoessische Technische Hochschule – Szwajcarski Federalny Instytut Technologii). Po czterech latach studiów Wirth uzyskał tytuł licencjata w dziedzinie elektrotechniki. A potem rozpoczyna się chwalebna dziesięcioletnia zagraniczna „tournee” naukowa przyszłego „Ojca Pascala” i „Króla Kompilatorów” wzdłuż trasy Szwajcaria – Kanada – USA – Szwajcaria.

Wirth kontynuował studia na Uniwersytecie Laval w Quebecu (Kanada), gdzie w 1960 roku uzyskał tytuł magistra. Następnie został zaproszony na Uniwersytet Kalifornijski w Berkeley (USA) – przyszłą perłę Doliny Krzemowej. Tam pod kierunkiem profesora Husky'ego w 1963 roku Niklaus Wirth obronił rozprawę doktorską na temat rozwoju Algola przy użyciu Lispa (Eulera).

Początek życia

Ta praca dosłownie dała mu start w życiu: Virt został zauważony przez mistrzów programowania i zaproszony do Komisji IFIP ds. Standaryzacji Algolu.

Ministerstwo postawiło sobie za zadanie opracowanie jednolitego języka programowania dla systemów sterowania dla zautomatyzowanych kompleksów działających w czasie rzeczywistym. Oznaczało to przede wszystkim pokładowe systemy sterowania dla obiektów wojskowych. Nazwa języka pochodzi od nazwiska matematyk Ady Lovelace.

Historia powtórzyła się w przypadku ALGOL-68 – projekt grupy, w której pracowali Wirth i Hoare, nie został zatwierdzony przez komisję językową. Po pierwszym etapie z rywalizacji odpadli Charles Hoar i Niklaus Wirth. Konkurs wygrał projekt oparty na Pascalu, ale znacznie bardziej złożony i obszerny.

Hoar ubolewał, że „dzwonki i gwizdki mają pierwszeństwo przed podstawowymi wymaganiami niezawodności i bezpieczeństwa” i przestrzegł przed „armadą rakiet lecących w złym kierunku z powodu niewykrytego błędu w kompilatorze Ada”.

Niklaus Wirth wypowiadał się bardziej powściągliwie, ale też negatywnie. Powiedział: „Za dużo rzuca się na programistę. Nie sądzę, że po nauczeniu się jednej trzeciej Ady, nie będziesz w stanie prawidłowo pracować. Jeśli nie opanujesz wszystkich szczegółów języka, w przyszłości możesz się o nie potknąć, a to doprowadzi do nieprzyjemne konsekwencje».

Jean Ishbia, szef zespołu programistów Ada, wyrażając swój „szacunek i podziw” dla Wirtha, nie zgodził się z tym, mówiąc: „Wirth wierzy w proste rozwiązania złożonych problemów. Nie wierzę w takie cuda. Złożone problemy wymagają skomplikowanych rozwiązań.”

Oberona

W 1988 roku we współpracy z Jürgiem Gutknechtem Wirth opracował język programowania Oberon. Celem opracowania było stworzenie języka umożliwiającego implementację oprogramowania systemowego projektowanej stacji roboczej. Podstawą dla Oberona był Modula-2, który został znacznie uproszczony, ale jednocześnie uzupełniony o nowe możliwości.


Jurga Gutknechta

Niklaus Wirth i jego współpracownicy opracowali pierwszą wersję systemu Oberon, maszynę, kompilator języka Oberon i system operacyjny System Oberon, który posiadał graficzny interfejs użytkownika, zaawansowane koncepcje wykorzystania tekstu w interfejsie i ogólnie zapewniał namacalne dowód stosowalności koncepcji Wirtha.

Jak już napisano w Habr, w Oberonie moduł jest nie tylko sposobem konstruowania algorytmów i struktur danych, ale także jednostką kompilacji, ładowania i dystrybucji. Oznacza to, że moduł jest minimalną jednostką, którą kompilator może skompilować. Zależności jednego modułu od innych modułów są obliczane automatycznie, ale nie powodują włączenia kodu z jednego modułu do innego. Na potrzeby kontroli wersji kodu uwzględniane są tylko identyfikatory zaimportowanych jednostek i kod skrótu zależności.

Moduł jest jednostką ładującą, to znaczy, z wyjątkiem szczególnych przypadków, kod modułu jest kompletnym programem, który ma punkt wejścia i może działać w nieskończoność. Oznacza to, że jest to pełnoprawny program. Nawet jądro systemu operacyjnego jest tylko pierwszym modułem ładowanym do pamięci. Moduł zakłada również, że będzie dystrybuowany nie tylko w postaci kodu źródłowego, ale także w formie binarnej, a także w postaci części interfejsu oraz aby można go było uruchomić tylko na określonej platformie lub kilku platformach będzie wymagane. Ogólnie rzecz biorąc, koncepcje te zawarte są w koncepcji modułowości w Oberonie i stanowią programowanie modułowe.

W 1992 roku Wirth i Mössenböck opublikowali raport na temat nowego języka programowania Oberon 2, minimalnie rozszerzonej wersji Oberona. W tym samym roku powstała spółka zależna ETH Oberon microsystems, która rozpoczęła rozwój systemów Oberon. Wirth został jednym z członków zarządu. W 1999 roku firma ta wypuściła kolejną wersję Oberona - Component Pascal, bardziej odpowiednią do programowania komponentowego.

Oberon był bezpośrednim przodkiem języka programowania równoległego (Active Oberon), różne modyfikacje języka Oberon dla innych środowisk wykonawczych (Component Pascal, Zonnon), był wdrażany na kilku platformach (JVM, CLR, JS) i służył jako prototyp języka Java. Sam system Oberon posłużył jako prototyp dla projektu Microsoft Singularity.

Jak wiadomo, pojawienie się wirtualnej (abstrakcyjnej) maszyny Java zostało przedstawione przez jej twórców z Sun Labs jako być może fundamentalne odkrycie w praktyce języków programowania.

Jeden z uczniów Wirtha, Michael Franz, zauważył co następuje: „Przenośność Java opiera się na obecności maszyny wirtualnej, która ułatwia symulowanie dużej liczby architektur. Pomysł maszyny wirtualnej był bardzo popularny ponad dwadzieścia lat temu, choć później został zapomniany. Następnie rozmawialiśmy o Pascalu-P, implementacji Pascala stworzonej w ETH, która odegrała decydującą rolę w rozprzestrzenianiu się tego języka. Co ciekawe, maszyny wirtualne dla Pascala i Javy mają dość podobną architekturę.

Na progu lat 2000

„Porozmawiajmy teraz o cechach «najnowocześniejszego, najbardziej obiektowego i bardzo prostego» języka Java” – napisał Siergiej Swierdłow.
Java nie tylko nie jest uważana za prostą, ale jest jednym z najbardziej złożonych języków, bardziej złożonym niż C++ i dwukrotnie bardziej złożonym niż Oberon.

Ale może porównanie z tym samym Oberonem jest błędne? Przecież Java jest prawdopodobnie wciąż bogatszym językiem niż ten twój Oberon? Nic takiego! Java ma tylko dwie istotne rzeczy, których nie ma Oberon: wbudowaną wielowątkowość i obsługę wyjątków. Wielu ekspertów kwestionuje celowość włączania narzędzi programowania równoległego bezpośrednio do języka. Można to rozwiązać na poziomie biblioteki. Poza tym mechanizm zaimplementowany w Javie nie jest bynajmniej rozwiązaniem najbardziej udanym.



Porównanie zakresu składni pomiędzy językami
Całkowita liczba leksemów w opisie składni języka może służyć jako ogólna charakterystyka wielkości tego opisu.

Ale w małym Oberonie znajdują się zarówno pełnoprawne rekordy (obiekty), jak i zwykłe tablice wielowymiarowe, a nie tylko wskaźniki do nich. Oberon ma również zwykłe ciągi znaków zakończone zerem, które są po prostu tablicami znaków, a nie obiektami i dlatego nie wymagają specjalnych środków do manipulacji.
Wbrew propagandzie Java nie zawiera zbyt wielu nowości. Ta sama koncepcja maszyny wirtualnej jest pierwszą rzeczą, która przychodzi na myśl, gdy myślimy o wieloplatformowości. Dwadzieścia pięć lat temu była to udana i świeża decyzja.


Opinia ta została wyrażona ponad 15 lat temu, kiedy takie spory były istotne. Zostawmy pytanie, o ile lepsza lub gorsza stała się obecnie Java pod tym względem.

Działalność pedagogiczna i społeczna

Od 1963 do 1967 Wirth pracował jako adiunkt na Uniwersytecie Stanforda, a w 1967 powrócił z tym stopniem na Uniwersytet w Zurychu. A w 1968 roku otrzymał tytuł profesora informatyki na ETH i zaczął budować swój „szwajcarski” Stanford w swojej ojczyźnie.

Lata dwudzieste od 1969 do 1989 były prawdopodobnie najbardziej owocnym okresem w życiu Wirtha. Kontynuował budowę swojej szkoły, poświęcając wiele czasu na działalność organizacyjną.

Niklaus Wirth urodził się 15 lutego 1934 roku w małym miasteczku Winterthur na obrzeżach Zurychu (Szwajcaria). Niklaus urodził się w rodzinie Waltera i Hedwigi Wirth. Mieszkał niedaleko szkoły, w której uczył jego ojciec. W ich domu znajdowała się dobra biblioteka, w której Wirth znalazł wiele interesujących książek o kolei, turbinach i telegrafach.

Małe miasteczko Winterthur ma długą historię i słynie z inżynierii mechanicznej: produkuje się tam lokomotywy i silniki wysokoprężne. Od dzieciństwa Wirth interesował się technologią, zwłaszcza modelowaniem samolotów. Dosłownie śnił o niebie. Ale żeby wystrzelić rakiety, trzeba było zdobyć paliwo, więc zajął się chemią. Młody Wirt założył w podziemiach szkoły „tajne” laboratorium.

Jego pasja do elektroniki i systemów sterowania programowego rozpoczęła się od opracowania urządzeń do zdalnego sterowania modelami. W 1954 roku rozpoczął studia na Wydziale Elektroniki Szwajcarskiego Federalnego Instytutu Technologii (ETH) w Zurychu, gdzie w ciągu czterech lat uzyskał tytuł licencjata w dziedzinie elektrotechniki. Kontynuował studia na Uniwersytecie Laval (Quebec, Kanada), uzyskując tytuł magistra w 1960 roku. Następnie został zaproszony na Uniwersytet Kalifornijski w Berkeley (USA), gdzie w 1963 roku pod kierunkiem profesora Husky'ego obronił rozprawę doktorską, której tematem był język programowania Euler - rozszerzenie Algola wykorzystujące język Lisp.

Teza Wirtha została dostrzeżona przez środowisko twórców języków programowania i w tym samym 1963 roku został zaproszony do Komitetu Standaryzacji Algol IFIP (Międzynarodowej Federacji Informatyki), który opracowywał nowy standard dla języka Algol, który później stał się ALGOL -68. Razem z Charlesem Hoare’em Wirth opowiadał się w komisji za opracowaniem umiarkowanie zmodyfikowanej wersji Algola, wolnej od wad języka oryginalnego i uzupełnionej o minimum naprawdę niezbędnych narzędzi. Wirth i Hoar przedstawili komisji język ALGOL-W (W jak Wirth), który był właśnie taką przeróbką Algola, ale nie otrzymali oni wsparcia. Na zakończenie prac komisji w 1968 roku Wirth znalazł się wśród tych, którzy krytykowali ALGOL-68, mówiąc o jego braku niezawodności i skrajnej redundancji. Jednocześnie od 1963 do 1967 roku Wirth pracował jako asystent na Uniwersytecie Stanforda (USA). Wspólnie z Jimem Walesem opracował i wdrożył język PL/360, przeznaczony do programowania na platformie IBM/360, język podobny do algolu, który wprowadził szereg zależnych od systemu funkcji związanych z architekturą IBM/360.

W 1967 powrócił w randze profesora nadzwyczajnego Uniwersytetu w Zurychu, a w 1968 otrzymał tytuł profesora informatyki. W ETH pracował przez 31 lat. Zaangażował się w wiele działań organizacyjnych, udoskonalając system nauczania swojej uczelni.

W 1970 roku stworzył język programowania Pascal. W latach 70. wraz z Hoare'em i Dijkstrą opracował technologię programowania strukturalnego. Artykuł Wirtha z 1971 r., „Rozwój programu poprzez przyrostowe udoskonalanie”, opisał i uzasadnił klasyczną obecnie metodologię tworzenia oprogramowania od góry do dołu. Aby przenieść system Pascal na różne platformy obliczeniowe, w 1973 roku przy udziale Wirtha opracowano prototyp maszyny wirtualnej, która wykonywałaby pośredni „kod P” (P jak Pascal) na dowolnej platformie, na którą były wprowadzane wszystkie programy miał zostać skompilowany.

W 1975 roku rozwinął język Modula, w którym zrealizował idee tworzenia programów modułowych z dobrze zdefiniowanymi interfejsami międzymodułowymi i programowaniem równoległym. Dodatkowo w module zmieniono składnię języka - Wirth pozbył się konieczności stosowania operatorów złożonych w strukturach rozgałęziających i pętlach. Moduł nie był powszechnie znany i miał tylko jedną eksperymentalną implementację, jednak jego zmodyfikowana wersja – Modula-2, której rozwój rozpoczął się w 1977 r., a zakończył w 1980 r., przeznaczona była do implementacji oprogramowania systemowego rozwijanego w ETH systemu Lilith – 16-bitowy komputer osobisty stał się sławny i dość popularny, choć popularnością nie przewyższył Pascala, zwłaszcza jego komercyjnych wdrożeń. System Lilith wyprzedził trendy panujące w branży komputerowej o kilka lat; Wirth stwierdził później z żalem, że nie zdając sobie sprawy z potencjału tego systemu, szwajcarski przemysł komputerowy przegapił swoją historyczną szansę.

Za projekt Lilith i język Modula-2 Wirth otrzymał w 1984 roku nagrodę Alana Turinga. Nagroda Alana Turinga jest odpowiednikiem Nagrody Nobla w dziedzinie informatyki, została ustanowiona w 1966 roku i przyznawana jest corocznie przez Association for Computing Machinery za wybitne osiągnięcia w dziedzinie informatyki.

W drugiej połowie lat 70. Wirth wziął udział w konkursie Departamentu Obrony USA na opracowanie nowego języka programowania systemów wbudowanych, co zaowocowało stworzeniem języka Ada. Historia powtórzyła się w przypadku ALGOL-68 – projekt grupy, w której pracowali Wirth i Hoare, nie został zatwierdzony przez komisję językową. W rezultacie konkurs wygrał projekt oparty na Pascalu, ale znacznie bardziej złożony i obszerny.

W latach 1982–1984 i 1988–1990 Wirth kierował Wydziałem Informatyki ETH, a od 1990 r. Instytutem Systemów Komputerowych ETH.

W 1988 roku we współpracy z Jürgiem Gutknechtem Wirth opracował język programowania Oberon. Celem opracowania było stworzenie języka umożliwiającego implementację oprogramowania systemowego projektowanej stacji roboczej. Podstawą dla Oberona był Modula-2, który został znacznie uproszczony, ale jednocześnie uzupełniony o nowe możliwości.

W 1992 roku Wirth i Mössenböck opublikowali raport na temat nowego języka programowania Oberon 2, minimalnie rozszerzonej wersji Oberona. W tym samym roku powstała spółka zależna ETH Oberonmicrosystems, która rozpoczęła rozwój systemów Oberon.

Wirth został jednym z członków zarządu. W 1999 roku firma ta wypuściła kolejną wersję Oberona - Component Pascal, bardziej odpowiednią do programowania komponentowego. W 1996 roku Wirth opracował kolejny oryginalny język programowania, Lola, prosty język do nauki służący do formalnego opisu i symulacji cyfrowych obwodów elektrycznych.

W dniu 1 kwietnia 1999 r. Wirth przeszedł na emeryturę po osiągnięciu granicy wieku urzędnika służby cywilnej w Szwajcarii wynoszącej 65 lat.

19 czerwca 2007 roku Wirth otrzymał tytuł doktora honoris causa Rosyjskiej Akademii Nauk. Inicjatorem prezentacji był rosyjski informatyk Igor Shagaev, profesor London Metropolitan University, który w latach 2005–2008 współpracował z Niklausem Wirthem nad Projekt europejski ONBAS.

Niklaus Wirth jest członkiem akademie narodowe: SwissAcademyofEngineering (Szwajcaria), U.S. AcademyofEngineering (USA), Berlin-BrandenburgAcademy (Niemcy).

Wirth zawsze dążył do harmonii, organicznej jedności komponentów sprzętu i oprogramowania, a jego wytrwałość i talent niewątpliwie wniosły nieoceniony wkład w rozwój informatyki.

Niklaus Wirth (niem. Niklaus Wirth, ur. 15 lutego 1934) to szwajcarski naukowiec, informatyk, jeden z najsłynniejszych teoretyków w dziedzinie rozwoju języków programowania. Główny twórca języków Pascal, Modula-2, Oberon, profesor informatyki (ETH), zdobywca nagrody Turinga 1984.

Niklaus Wirth urodził się 15 lutego 1934 roku w Winterthur na obrzeżach Zurychu (Szwajcaria). Rodzice: Walter i Hedwiga Wirth. Ojciec Nicklausa był nauczycielem w szkole.

Programy nigdy nie zawierają tak małej liczby błędów, jak w przypadku braku narzędzi do debugowania.

Z Wirthem Nicklausem

Już jako dziecko Niklaus Wirth interesował się modelowaniem samolotów i budową rakiet, a jego pasja do elektroniki i oprogramowania do systemów sterowania zaczęła się od opracowania urządzeń do zdalnego sterowania modelami. W 1954 roku rozpoczął studia na Wydziale Elektroniki Szwajcarskiego Federalnego Instytutu Technologii (ETH) w Zurychu, gdzie w ciągu czterech lat uzyskał tytuł licencjata w dziedzinie elektrotechniki.

Kontynuował studia na Uniwersytecie Laval (Quebec, Kanada), uzyskując tytuł magistra w 1960 roku. Następnie został zaproszony na Uniwersytet Kalifornijski w Berkeley (USA), gdzie w 1963 roku pod kierunkiem profesora Husky obronił rozprawę doktorską, której tematem był język programowania Euler – rozszerzenie Algola wykorzystujące język Lisp.

Teza Wirtha została dostrzeżona przez środowisko twórców języków programowania i w tym samym 1963 roku został zaproszony do Komitetu Standaryzacji Algol IFIP (Międzynarodowej Federacji Informatyki), który opracowywał nowy standard dla języka Algol, który później stał się ALGOL -68.

Razem z Charlesem Hoare’em Wirth opowiadał się w komisji za opracowaniem umiarkowanie zmodyfikowanej wersji Algola, wolnej od wad języka oryginalnego i uzupełnionej o minimum naprawdę niezbędnych narzędzi. Wirth i Hoar przedstawili komisji język Algol-W (W jak Wirth), który był właśnie taką przeróbką Algola, ale nie uzyskał on wsparcia.

Na zakończenie prac komisji w 1968 roku Wirth znalazł się wśród tych, którzy krytykowali ALGOL-68, mówiąc o jego braku niezawodności i skrajnej redundancji. Równolegle od 1963 do 1967 Wirth pracował jako asystent na Uniwersytecie Stanforda w USA.

Wspólnie z Jimem Walesem opracował i wdrożył język PL/360, przeznaczony do programowania na platformie IBM/360 - język podobny do algolu, do którego wprowadzono szereg zależnych od systemu funkcji związanych z architekturą IBM/360.

W 1967 powrócił w randze profesora nadzwyczajnego na Uniwersytecie w Zurychu, a w 1968 roku otrzymał tytuł profesora informatyki w ETH. W ETH pracował przez 31 lat. Zaangażował się w wiele działań organizacyjnych, udoskonalając system nauczania swojej uczelni.

W 1970 roku stworzył język programowania Pascal. W latach 70. opracował wraz z C. Hoare i E. Dijkstra technologię programowania strukturalnego. Artykuł Wirtha z 1971 r., „Rozwój programu poprzez przyrostowe udoskonalanie”, opisał i uzasadnił klasyczną obecnie metodologię tworzenia oprogramowania od góry do dołu.

Aby przenieść system Pascal na różne platformy obliczeniowe, w 1973 roku przy udziale Wirtha opracowano prototyp maszyny wirtualnej, która na dowolnej platformie wykonywałaby pośredni „kod pi”, na który miały być wkompilowane wszystkie programy .

W 1975 roku rozwinął język Modula, w którym zrealizował idee tworzenia programów modułowych z dobrze zdefiniowanymi interfejsami międzymodułowymi i programowaniem równoległym. Dodatkowo w module zmieniono składnię języka - Wirth pozbył się odziedziczonej od Algola-60 konieczności stosowania operatorów złożonych w strukturach rozgałęziających i pętlach.

Moduł nie był powszechnie znany i miał tylko jedną eksperymentalną implementację, ale jego zmodyfikowaną wersję - Modula-2, której rozwój rozpoczął się w 1977 r., a zakończył w 1980 r., przeznaczoną do implementacji oprogramowania systemowego systemu Lilith opracowanego w ETH - 16 -bitowy komputer osobisty, stał się znany i dość popularny, choć nie przewyższył popularnością Pascala, zwłaszcza jego komercyjnych wdrożeń.

System Lilith wyprzedził trendy panujące w branży komputerowej o kilka lat; Wirth później żałował, że nie zdając sobie sprawy z potencjału tego systemu, szwajcarski przemysł komputerowy zaprzepaścił swoją historyczną szansę. Rozwój Modula-2 był językiem Modula-3, opracowanym wspólnie przez DEC i Olivetti; Wirth nie brał udziału w jego tworzeniu.

W drugiej połowie lat 70. Wirth wziął udział w konkursie Departamentu Obrony USA na opracowanie nowego języka programowania systemów wbudowanych, co zaowocowało stworzeniem języka Ada. Historia powtórzyła się w przypadku ALGOL-68 – projekt grupy, w której pracowali Wirth i Hoare, nie został zatwierdzony przez komisję językową. W rezultacie konkurs wygrał projekt oparty na Pascalu, ale znacznie bardziej złożony i obszerny.

W latach 1982–1984 i 1988–1990 Wirth kierował Wydziałem Informatyki ETH, a od 1990 r. Instytutem Systemów Komputerowych ETH.

W 1988 roku, we współpracy z Jurgiem Gutknechtem, Wirth opracował język programowania Oberon. Celem opracowania było stworzenie języka umożliwiającego implementację oprogramowania systemowego projektowanej stacji roboczej. Podstawą dla Oberona był Modula-2, który został znacznie uproszczony, ale jednocześnie uzupełniony o nowe możliwości.

W 1992 roku Wirth i Mössenböck opublikowali raport na temat nowego języka programowania Oberon 2, minimalnie rozszerzonej wersji Oberona. W tym samym roku powstała spółka zależna ETH Oberon microsystems, która rozpoczęła rozwój systemów Oberon. Wirth został jednym z członków zarządu.

W 1999 roku firma ta wypuściła kolejną wersję Oberona - Component Pascal, bardziej odpowiednią do programowania komponentowego. W 1996 roku Wirth opracował kolejny oryginalny język programowania, Lola, przeznaczony do tworzenia niestandardowych obwodów elektronicznych.

1 kwietnia 1999 r. Wirth przeszedł na emeryturę po osiągnięciu przez Szwajcarię granicy wieku urzędnika państwowego (ETH jest uniwersytetem państwowym, jego pracownicy są urzędnikami służby cywilnej i ich praca podlega odpowiednim przepisom).

Członek akademii krajowych: Swiss Academy of Engineering (Szwajcaria), U.S. Academy of Engineering (USA), Berlin-Brandenburg Academy (Niemcy).

Poważność akademicka Wirtha od dawna utrudniała uznanie faktu, że jest on jednym z pierwszych prawdziwych maniaków w historii technologii informatycznych. Sprawiedliwość zatriumfowała zaledwie dziesięć lat po jego przejściu na emeryturę.

Nagrody i wyróżnienia

Nagroda IEEE Emanuela Piore'a (1983)
Nagroda ACM Turinga (1984)
Nagroda ACM za wybitny wkład w edukację informatyczną (1987, 1989)
Pionier komputerowy IEEE (1988)
Nagroda Maxa Petitpierre’a (1989)
Europejska Nagroda Naukowo-Technologiczna IBM (1989)
Nagroda Marcela Benoita (1990)
Orden Pour le Merite (1996)
Medal Leonarda da Vinci (1999)
Nagroda ACM za wybitne badania naukowe w dziedzinie inżynierii oprogramowania (1999).

Osiągnięcia

Wirth opracował lub brał udział w rozwoju języków programowania: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Jego najsłynniejszym opracowaniem jest oczywiście język programowania Pascal, który wywarł ogromny wpływ na kilka pokoleń programistów i stał się podstawą do powstania dużej liczby języków programowania.

Kolejnym fundamentalnym dziełem, w którym Wirth stał się uczestnikiem, był rozwój technologii programowania strukturalnego, która stała się oczywiście najpotężniejszą formalizacją w programowaniu przynajmniej w latach 70. i 80. XX wieku. Technologia ta została opracowana, sprawdzona i wdrożona przez zaledwie trzy wybitne osoby – Wirtha, Dijkstrę i Hoara.

Komentatorzy wielokrotnie zauważali, że idee Wirtha często wyprzedzały rozwój przemysłu komputerowego o lata, a czasem o dekady.

System Pascal-P, opracowany na początku lat 70. XX wieku, polega na kompilacji programów Pascala w uniwersalny „kod pi” i implementacji na dowolnej platformie interpretera kodu pi (jedną z jego znanych implementacji jest UCSD-Pascal Uniwersytetu z San Diego), który pozwolił przy minimalnych kosztach przenieść systemy Pascala na nowe platformy sprzętowe, wyprzedził o ponad dwie dekady pomysły pośredniego interpretera kodu wdrażanego w systemach wspierających wykonywanie programów w języku i platformie Java. INTERNET.

Pomysł połączenia systemu programowania z modułem zbierającym śmieci, uwalniającym programistę od konieczności śledzenia czasu życia obiektów dynamicznie alokowanych w pamięci, został wdrożony w 1988 roku w języku i systemie operacyjnym Oberon. Obydwa te pomysły zostały wykorzystane przez programistów Java i. NET w drugiej połowie lat 90.

Zasady naukowe

Być może jednym z najtrafniejszych wyrażeń zasad, którymi kieruje się Wirth przy opracowywaniu wszystkich swoich projektów, jest zdanie Einsteina zawarte w motto do „Przesłania w języku Oberona”: „Uczyń to tak prostym, jak to możliwe, ale nie bardziej .”

We wszystkich jego pracach można prześledzić jego początkowe skupienie się na wdrażaniu najskuteczniejszego rozwiązania konkretnego problemu inżynierskiego w oparciu o gwarantowane działające narzędzia matematyczne. Wirth jest głęboko przekonany, że programowanie powinno być normalną dyscypliną inżynierską, która gwarantuje wystarczający poziom niezawodności jego rozwoju.

Osiągnięcie niezawodności jest, zdaniem Wirtha, możliwe tylko w jeden sposób: poprzez maksymalne uproszczenie zarówno samych systemów, jak i narzędzi służących do ich tworzenia. Zgodnie z tą zasadą opracowane przez Wirtha języki i systemy programowania zawsze były przykładem „rozsądnej wystarczalności”, wręcz swego rodzaju ascezy – zapewniały jedynie to, bez czego nie można się obejść.

Nawet rozwojowi istniejących języków i systemów zawsze towarzyszyło uproszczenie.

Według obliczeń opublikowanych w artykule Siergieja Swierdłowa „Arithmetic of Syntax”, „linia Wirtha”, jak ją nazwał – linia języków obejmujących Pascal, Modula-2, Oberon i Oberon2 – jest jedynym przykładem „genetycznej linia” języków potomnych Algol-60, w której złożoność języka, definiowana jako liczba leksemów w jego opisie, stale maleje i jest obecnie niższa niż w przypadku jego wspólnego „przodka” – ALGOL-60.

Wszystkie języki „linii Wirtha” są prostsze od Algol-60, a każdy kolejny język w tej linii jest prostszy od poprzedniego. Jednocześnie Ada jest ponad dwukrotnie bardziej złożona niż jej poprzedniczka - Pascal, C++ jest około 1,7 razy bardziej złożona niż C, a w linii Pascal - Turbo Pascal różnych wersji - Object Pascal złożoność rośnie wykładniczo z wersji na wersję wersja.

Wirth często krytykuje „amerykańskie podejście” do rozwoju narzędzi programistycznych, w którym względy marketingowe przeważają nad wymogami matematycznej harmonii i gwarantowanej niezawodności, a każdej nowej modnej modzie towarzyszy bezkrytyczne wprowadzanie do języków programowania nowych elementów syntaktycznych.

Prowadzi to do błędnej oceny roli niektórych pomysłów i w efekcie do nieprawidłowego ustalenia priorytetów w rozwoju oprogramowania. W szczególności, mówiąc o OOP, Wirth wielokrotnie zauważał, że jest to dość trywialne rozwinięcie tego samego podejścia strukturalnego, doprawione nową terminologią i trudno nazwać go „rewolucyjną metodologią programowania”.

Wirth wygłosił słynną zjadliwą uwagę na temat amerykańskiego zwyczaju antropocentryzmu w terminologii: „Nazywają rozszerzenia tego typu „dziedziczeniem”, ale ogólnie rzecz biorąc, dziedziczenie zwykle przechodzi na potomka dopiero po śmierci przodka”.

Inną zasadę, która zawsze kierowała Wirthem, można sformułować w następujący sposób: „Narzędzie musi odpowiadać zadaniu. Jeśli narzędzie nie pasuje do zadania, musisz wymyślić nowe, które będzie do niego pasować, zamiast próbować dostosowywać istniejące. Nie z zadowoleniem przyjmuje rozwój „języków, które są w ogóle uniwersalne”.

Każdy system opracowany przez Wirtha miał jasno sformułowany cel, zakres, a on zawsze bez wahania wykluczał z rozwoju wszystko, co nie było potrzebne do tego konkretnego celu.

Tutaj jednak trzeba doprecyzować: „konkretnym celem” np. Oberona jest zapewnienie niezwykle łatwej i bezpiecznej rozszerzalności systemu, a zatem nie będącego „językiem uniwersalnym w ogóle”, czyli nie obejmującym wszystkich możliwe narzędzia do wszystkich możliwych zastosowań, w końcu Oberon jest uniwersalny – „uniwersalny dzięki rozszerzalności”.

Opublikowano w języku rosyjskim:
Programowanie systematyczne. Wstęp. M.: Mir, 1977;
Pascal. Podręcznik użytkownika i opis języka. M.: Finanse i statystyka, 1982 (wspólnie z K. Jensenem);
Algorytmy + struktury danych = programy. M.: Mir, 1985;
Programowanie w języku Modula-2. M.: Mir, 1987;
Algorytmy i struktury danych. M.:Mir, 1989. ISBN 5-03-001045-9 (wersja książki w języku Modula-2)
Algorytmy i struktury danych. SPb.: Dialekt Newski. 2001.

Książka Wirtha „Algorithms + Data Structures = Programs” została kilkakrotnie opublikowana w języku rosyjskim w różnych wersjach i jest uważana za pierwszy z trzech klasycznych podręczników na temat programowania strukturalnego.

Niklaus Wirth – fot

Niklaus Wirth – cytaty

Programy stają się wolniejsze szybciej niż komputery stają się szybsze.

Programy nigdy nie zawierają tak małej liczby błędów, jak w przypadku braku narzędzi do debugowania.

Niklaus Wirth... To nazwisko jest znane wielu osobom w Rosji. Ponad trzydzieści lat temu profesor Wirth stworzył język programowania Pascal w odległej Szwajcarii. Wydawałoby się, że już samo to wystarczyło, aby na zawsze zapisać jego nazwisko w annałach informatyki. Jednak w życiu często zdarza się, że to nie najlepsze i najdoskonalsze dzieła zyskują uznanie i sławę. Zatem w przypadku Pascala widzimy jedynie wierzchołek góry lodowej, a większość twórczości Wirtha wciąż pozostaje dla wielu nieznana.

Niklaus Wirth urodził się 70 lat temu – 15 lutego 1934 roku – w małym miasteczku Winterthur na obrzeżach Zurychu. Niklaus urodził się w rodzinie Waltera i Hedwigi Wirth. Mieszkali niedaleko szkoły, w której uczył jego ojciec. W ich domu znajdowała się dobra biblioteka, w której Wirth znalazł wiele interesujących książek o kolei, turbinach i telegrafie.

Małe miasteczko Winterthur ma długą historię i słynie z inżynierii mechanicznej: produkuje się tam lokomotywy i silniki wysokoprężne. Od dzieciństwa Wirth interesował się technologią, zwłaszcza modelowaniem samolotów. Dosłownie śnił o niebie. Ale żeby wystrzelić rakiety, potrzebował paliwa, więc zajął się chemią. Młody Wirt założył w podziemiach szkoły „tajne” laboratorium. Nic nie mogło go powstrzymać: pewnego dnia wykonany przez niego model zboczył z zadanej trajektorii i wylądował pod nogami dyrektora szkoły. Jednak Wirth nadal uparcie dążył do swojego celu.

Kilkadziesiąt lat później Niklaus Wirth, podobnie jak Ken Thompson, autor UNIX-a, miał okazję polecieć MIG-em z lotniska wojskowego w Kubince, która znajduje się pod Moskwą. Spełniło się jego ukochane marzenie. Motywację do zawodowej kreatywności Wirtha najlepiej ujawnił jego kolega z Uniwersytetu Stanforda (USA), profesor Donald Knuth: „Wirth zawsze chciał tworzyć samoloty i potrzebował najlepszych narzędzi. Dlatego zaprojektował wiele języków komputerowych i mikrokomputerów…”

Od budowania modeli Nicklaus szybko przeszedł do opracowywania dla nich pilotów zdalnego sterowania. Kiedy skończył 18 lat, wraz z dwoma innymi modelarzami samolotów z Zurychu otrzymał z Anglii upragniony sprzęt radiowy. To przesądziło o jego przyszłym losie – w 1954 roku Wirth wstąpił na Wydział Elektroniki ETH w Zurychu (Eidgenoessische Technische Hochschule, Szwajcarski Federalny Instytut Technologii). Po czterech latach studiów Wirth uzyskał tytuł licencjata w dziedzinie elektrotechniki. A potem rozpoczyna się chwalebna dziesięcioletnia zagraniczna „tournee” naukowa przyszłego „Ojca Pascala” i „Króla Kompilatorów” wzdłuż trasy Szwajcaria – Kanada – USA – Szwajcaria.

Wirth kontynuował studia na Uniwersytecie Laval w Quebecu (Kanada), gdzie w 1960 roku uzyskał tytuł magistra. Następnie został zaproszony na Uniwersytet Kalifornijski w Berkeley (USA) – przyszłą perłę Doliny Krzemowej. Tam pod kierunkiem profesora Husky'ego w 1963 roku Niklaus Wirth obronił rozprawę doktorską na temat rozwoju Algola przy użyciu języka Lisp (język Eulera). Ta praca dosłownie dała mu start w życiu: Virt został zauważony przez mistrzów programowania i zaproszony do Komisji IFIP ds. Standaryzacji Algolu. Ta szkoła nie poszła na marne: do końca życia Wirth pamiętał, że trzeba udowadniać czynami, że się ma rację, zwłaszcza gdy nie chcą cię słuchać. Jeśli chodzi o języki rozwijające się, na zawsze porzucił abstrakcyjne podejście naukowe na rzecz inżynierii matematycznej. Według niego lepiej najpierw zaimplementować język, a dopiero potem o nim pisać.

Od 1963 do 1967 Wirth pracował jako adiunkt na Uniwersytecie Stanforda, a w 1967 powrócił z tym tytułem na Uniwersytet w Zurychu. A w 1968 roku otrzymał tytuł profesora informatyki na ETH i zaczął budować swój „szwajcarski” Stanford w swojej ojczyźnie. Dwadzieścia lat od 1969 do 1989 było prawdopodobnie najbardziej owocnym okresem w życiu Wirtha ( tabela 1). Kontynuował budowę swojej szkoły, poświęcając wiele czasu na działalność organizacyjną. Od 1982 do 1984 (a następnie od 1988 do 1990) Wirth kierował Katedrą Informatyki ETH, a od 1990 kierował Instytutem Systemów Komputerowych ETH. Profesor Wirth przeszedł na emeryturę 1 kwietnia 1999 r., po osiągnięciu wieku 65 lat.

Romantyczne lata 60. zapoczątkowały przyjaźń trzech patriarchów programowania strukturalnego – Holendra Edsgera Dijkstry, Anglika Anthony’ego Hoare’a i Szwajcara Niklausa Wirtha. Tych „Noblistów” (nagroda Turinga przyznawana przez stowarzyszenie ACM jest przyznawana raz w życiu i jest równoznaczna z Nagrodą Nobla w dziedzinie informatyki) zjednoczyły nie tyle abstrakcje informatyki, ile wyraźny profesjonalista pozycja.

Najbardziej znanym osiągnięciem profesora Wirtha jest język Pascal. Oczywiście wielu słyszało o tym języku i zna go. Pascal odegrał ogromną rolę w kształtowaniu światopoglądu kilku pokoleń programistów. Ale ten język jest daleki od ideału. Swego czasu Brian Kernighan, znany popularyzator języka C i współautor klasycznego podręcznika C (K&R), napisał krytyczny artykuł „Dlaczego Pascal nie jest moim ulubionym językiem programowania”. Jeśli przeczytasz go uważnie, możesz stwierdzić, że Niklaus Wirth wyciągnął z niego właściwe wnioski i w języku Modula-2 pod wpływem artykułu wyeliminował wiele wad kanonicznego Pascala. Należy jednak pamiętać o jednej istotnej okoliczności. Kontrowersyjne dzieło Kernighana powstało 2 kwietnia 1981 roku, tj. dwa lata (!) po wdrożeniu przez grupę Wirtha na ETH pierwszego kompilatora Modula-2 i rok po wydaniu sprzętowej implementacji Modula-2 – komputera osobistego Lilith. W kwietniu 1993 roku na konferencji ACM poświęconej historii języków programowania Wirth w odpowiedzi na pytanie jednego ze swoich kolegów przyznał Modula-2 wynik 6 punktów (najwyższy wynik w szwajcarskich szkołach).

Przemysł komputerowy pozostawał w tyle za twórczością Wirtha co najmniej 5-7 lat. W tym samym 1979 roku legendarny komputer Apple II, znacznie gorszy od Lilith, właśnie nabył kompilator Apple Pascal, skupiający się na implementacji Pascala w UCSD. Do pojawienia się pierwszego skromnego Turbo Pascala Andersa Hejlsberga pozostały całe cztery lata! Następnie Wirth ze smutkiem powiedział, że dzięki projektowi Lilith szwajcarski przemysł stracił swoją wyjątkową szansę.

Projekt Oberon stał się prawdziwą perłą twórczości Wirtha. Stworzony prawie dwie dekady temu, System Oberon http://www.oberon.ethz.ch) odgrywa dziś mniej więcej tę samą rolę, jaką projekty Alto i Xerox Star odegrały na początku lat 80. w słynnym centrum Xerox PARC, gdzie zrodziły się nowoczesne komputery osobiste i edytory tekstu. Dla korporacji takich jak Microsoft, IBM i Sun Microsystems projekt Oberon stał się źródłem owocnych pomysłów, w tym interfejsu zorientowanego na dokumenty, przeglądarek, języków tworzenia oprogramowania przemysłowego (Java i C#), niezależnego od maszyny kodu mobilnego (JVM i .NET CLR), aplety, oprogramowanie składowe, kompilacja dynamiczna (JIT, AOC, DAC), inteligentne tagi, usługi sieciowe itp.

Żyjemy w erze triumfującego szalonego wyścigu technologicznego i wymyślonej złożoności. Niklaus Wirth całe swoje życie poświęcił walce z tymi szkodliwymi zjawiskami, ale oni go nie słyszą lub nie chcą go słyszeć. „Skrajny stopień inteligencji” – napisał Blaise Pascal – „jest oskarżany o szaleństwo w taki sam sposób, jak całkowity brak inteligencji. Tylko przeciętność jest dobra.”

Wirth był i pozostaje wyznawcą europejskiej kultury inżynieryjnej. Amerykańskie osiągnięcia dały mu bogaty materiał do myślenia: przepuścił przez siebie wiele pomysłów i skrystalizował te najcenniejsze. Wszystkie trzy kluczowe języki (Pascal, Modula-2 i Oberon) zostały stworzone przez Wirtha dosłownie dwa, trzy lata po powrocie z zagranicy. (W 1967 Wirth zakończył prace nad kompilatorem Algol-W w Uniwersytecie Stanforda, a w 1976 i 1984 wyjechał na rok do laboratoriów Xerox PARC.) Praca Wirtha nie powstawała w próżni. Otaczali go ludzie o podobnych poglądach – koledzy i studenci, wśród których byli Jürg Gutknecht (współautor projektu Oberon), Hanspeter Messenbock (współautor języka Oberon-2), Richard Oran (współautor stworzenie Lilith), Kuno Pfister (twórca mikrosystemów Oberon i ideolog zestawu narzędzi BlackBox), Clemens Szyperski (ideolog architektury komponentowej w Systemie Oberon) i Michael Franz (autor koncepcji dynamicznej generacji kodu, prototypu kompilacji Java JIT).

Dużą rolę w popularyzacji języków i systemów Niklausa Wirtha w naszym kraju w latach 1980-1990 odegrała grupa robocza ds. Modula-2, której stałym liderem i inspiratorem był D. M. Saghatelyan z Instytutu fizyka ogólna Akademia Nauk ZSRR. Nie można nie wspomnieć o pracy grupy profesora I.V. Pottosina z Syberyjskiego Oddziału Akademii Nauk ZSRR (NSU i Instytutu Systemów Informatycznych A.P. Ershova). Stworzenie narzędzi do oprogramowania pokładowego krajowych satelitów (projekt SOCRAT), rodziny komputerów KRONOS (Dmitrij Kuzniecow, Aleksiej Nedorya, Jewgienij Tarasow, Władimir Wasekin i in.), rodziny kompilatorów Modula-2/Oberon-2 XDS - to chyba najbardziej uderzające karty historii narodowej związane z imieniem Virt. Rosnąca fala zainteresowania Oberonem, szczytem twórczości patriarchy niezawodnego programowania, w związku z pilną potrzebą wysokiej jakości oprogramowania, zwłaszcza z fizyki, doprowadziła do powstania projektu Informatics-21 ( http://www.inr.ac.ru/~info21/), którym Wirth bardzo się interesuje. Ponadto w marcu tego roku Szwajcarskie Centrum Badań Jądrowych (CERN), w którym 15 lat temu narodziła się sieć WWW, zorganizowało specjalnie dla fizyków Dzień Oberona ( http://cern.ch/oberon.day).

Niklaus Wirth zapoczątkował tradycję nadawania nazw językom programowania imionami matematyków z przeszłości. W 1963 roku nadał imię Leonharda Eulera, wielkiego szwajcarskiego matematyka, który przez wiele lat pracował w Rosji, swojemu pierwszemu dziełu - językowi Eulera. A w 1970 roku Blaise Pascal, wielki francuski matematyk i filozof, którego twórczość podziwiali N. G. Czernyszewski i L. N. Tołstoj, został uwieczniony przez Wirtha w języku pascalowym. Ciekawe podobieństwa: 11 maja 1994 roku w przemówieniu na Uniwersytecie w Petersburgu Donald Knuth podkreślił, że szczególnie cieszy go fakt, że tytuł doktora honoris causa informatyki przyznał mu uniwersytet, na którym wykładał wielki Euler. 27 czerwca 1996 roku Niklaus Wirth nadał w Nowosybirskim Mieście Akademickim tytuł doktora honoris causa, stworzony przez M. A. Ławrentiewa i S. L. Sobolewa na obraz i podobieństwo tego samego Stanforda, który Wirth wziął za podstawę do budowy swojej szkoły europejskiej w ETH . Wysoko doceniono wkład Wirtha w rozwój informatyki i inżynierii oprogramowania. Został nie tylko członkiem trzech akademii (Szwajcarskiej Akademii Inżynierskiej, Amerykańskiej Akademii Inżynierskiej, Akademii Berlińsko-Brandenburskiej), ale także otrzymał najbardziej prestiżowe nagrody ( tabela 2).

Życiowe credo Niklausa Wirtha chyba najlepiej oddają słowa wielkiego Blaise’a Pascala, który ponad trzy wieki temu napisał: „Cała nasza godność leży w myśli. To nie przestrzeń i czas, których nie jesteśmy w stanie wypełnić, unoszą nas, ale to Ona, nasza myśl. Nauczmy się dobrze myśleć...

Rusłan Bogatyrew- redaktor naukowy PC World, Redaktor naczelny„Świat dysków PC” [e-mail chroniony] .

Pełna wersja Artykuły można znaleźć w almanachu elektronicznym „The Art of Programming”, opublikowanym w marcowym dodatku „PC Disk World” (nr 3/04).

Żyjemy w złożonym świecie i staramy się rozwiązywać z natury złożone problemy, które często wymagają skomplikowanych urządzeń do rozwiązania. Nie oznacza to jednak, że nie powinniśmy szukać eleganckich rozwiązań, które przekonują swoją przejrzystością i skutecznością. Proste, eleganckie rozwiązania są skuteczniejsze, ale trudniej je znaleźć niż skomplikowane i zajmują więcej czasu.

Niklausa Wirtha(Szwajcaria, Szwajcarski Federalny Instytut Technologii).

Z przemówienia podczas wręczenia nagrody Turinga (San Francisco, USA, październik 1984).

Kiedy nie było jeszcze komputerów, programowanie nie stanowiło problemu. Kiedy mieliśmy kilka komputerów o małej mocy, programowanie stało się problemem o średniej złożoności. Teraz, gdy mamy gigantyczne komputery, programowanie staje się gigantycznym problemem.

Edsgera Dijkstry(Holandia, Politechnika w Eindhoven).

Prawie wszystko w oprogramowaniu można wdrożyć, sprzedać, a nawet używać z odpowiednią wytrwałością... Ale jest jedna cecha, której nie można kupić, a jest nią niezawodność. Ceną niezawodności jest dążenie do ekstremalnej prostoty. Jest to cena, którą najtrudniej zapłacić najbogatszym.

Antoni Hoare(Wielka Brytania, Uniwersytet Oksfordzki).

Podziel się ze znajomymi lub zapisz dla siebie:

Ładowanie...