-TWÓRCY PRZYZNAJA: UNIX I JEZYK C TO ZART
W oswiadczeniu, które zbilo z tropu przemysl komputerowy, Ken Thompson, Dennis Ritchie i Brian Kernigham przyznali, ze stworzone przez nich system operacyjny Unix i jezyk programowania C to wyrafinowany psikus, utrzymywany przy zyciu przez ponad 20 lat. W swojej mowie na ostatnim UnixWorld Software Development Forum, Thompson wyjawil, co nastepuje:
"W 1969, AT&T przerwalo wlasnie prace nad projektem GE/Honeywell/AT&T Multics. Brian i ja zaczelismy wlasnie prace z wczesnym wydaniem Pascala od szwajcarskich laboratoriów ETH profesora Niklausa Wirtha, i bylismy pod wrazeniem jego eleganckiej prostoty i wydajnosci. Dennis skonczyl wlasnie lekture wydanego przez Paszkwil Narodowy "Bored of the Rings", parodii trylogii Tolkiena "Wladca Pierscieni".
Zdecydowalismy, ze stworzymy w ramach psoty parodie srodowiska Multics i Pascala. Dennis i ja bylismy odpowiedzialni za srodowisko operacyjne. Obejrzelismy Multicsa i zaprojektowalismy nowy OS na jak najbardziej zlozony i enigmatyczny, jak to tylko mozliwe, zeby zmaksymalizowac poziom frustracji uzytkowników i nazwalismy go Unix (co jest parodia "Multics"), zaraz obok bardziej ryzykowanych odniesien. Wcisnelismy nowicjuszom lapidarny jezyk powloki, mówiac, ze to oszczedza im pisania.
Dennis i Brian pracowali nad `A`, znieksztalcona wersja Pascala. `A` wygladalo w duzym stopniu jak Pascal, ale wynioslo notacje bezposredniego zarzadzania pamiecia (której Wirth sie pozbyl) do rangi centralnej koncepcji wewnatrz jezyka programowania. To byl wklad Dennisa, i to on faktycznie ukul pojecie "wskaznika", jako niewinnie brzmiacej nazwy dla prawdziwie zlowrogiego konstruktu.
Do Briana nalezy pomysl nieposiadania absolutnie zadnej specyfikacji I/O: to zapewnilo, ze co najmniej 50% typowego programu uzytkowego bedzie musialo byc przepisane przy zmianach w sprzecie. To Brian byl równiez odpowiedzialny za ukazanie tego braku I/O jako zalety: pozwalalo to nam opisywac jezyk jako "prawdziwie przenosny".
Gdy zdalismy sobie sprawe, ze inni faktycznie zaczeli tworzyc rzeczywiste programy w A, usunelismy wymóg sprawdzania typów argumentów funkcji.
Pózniej, dodalismy notacje, która nazwalismy "rzutowaniem": to pozwalalo programiscie traktowac inta tak, jakby byla to 50-kilobajtowa struktura zdefiniowana przez uzytkownika. Gdy odkrylismy, ze niektórzy programisci po prostu nie uzywali wskazników, wyeliminowalismy mozliwosc przekazywania struktur do funkcji, wymuszajac uzywanie wskazników przy nawet najprostszych zastosowaniach.
Sprzedalismy to, jak i wiele innych cech, jako uwydatnienia dla jezyka. W ten sposób, nasz zart wyewoluowal w B, BCPL, i w koncu C. Zatrzymalismy sie, gdy otrzymalismy kompilacje bez ostrzezen przy nastepujacej skladni:
for (;P("\n"),R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
W pewnej chwili zartowalismy, ze sprzedamy to Sowietom, zeby cofnac ich postep w informatyce o 20 albo i wiecej lat.
Na nieszczescie, AT&T i inne korporacje w Stanach zaczely faktycznie uzywac Unixa i C. Uznalismy, ze lepiej siedziec cicho, zakladajac, ze to tylko przejsciowe. W rzeczywistosci, amerykanskim korporacjom potrzeba bylo 20 lat doswiadczenia, aby zaczac tworzyc uzyteczne aplikacje przy uzyciu tej technologicznej parodii z lat `60.
Bylismy pod wrazeniem przebieglosci typowego programisty Unixa i C. Tak naprawde, Brian, Dennis i ja nigdy nie podjelismy próby napisania zarobkowej aplikacji w tym srodowisku. Czulismy sie naprawde winni z powodu chaosu, dezorientacji i prawdziwie niesamowitych projektów programistycznych, bedacych skutkiem naszego glupiego kawalu sprzed tak dawna."
Dennis Ritchie powiedzial:
"Tym, co naprawde nas rozwalilo (wlasnie, gdy zaczela wchodzic ADA), bylo to, ze Bjarne Stroustrup zalapal nasz zart. On to rozszerzyl do postaci jeszcze wiekszej parodii, Smalltalka. Tak jak nas, spotkala go niespodzianka, gdy nikt nie widzial powodu do smiechu. Dodal wiec wielodziedziczenie, wirtualne klasy bazowe, i w koncu … szablony. Bezskutecznie. Mamy teraz kompilatory, które potrafia kompilowac 100.000 linijek na sekunde, ale musza mielic pliki naglówkowe przez 25 minut, zeby dostac sie do wlasciwej czesci helloworlda."
Wieksi uzytkownicy i dostawcy Unixa i C, w tym AT&T, Microsoft, Hewlett-Packard, GTE, NCR i DEC, odmówili komentarza nt. tego oswiadczenia. Przedstawiciele Borland International, czolowego dostawcy narzedzi do programowania zorientowanego obiektowo, w tym Turbo Pascala i C++, zadeklarowali, ze podejrzewali to od paru lat.
Po prawdzie, notorycznie spózniony Quattro Pro dla Windowsa byl z poczatku napisany w C++. CEO Borlanda, Del Yocam, stwierdzil: "Powiedziano mi, ze po dwóch i pól roku programowania i masowych odejsciach programistów, napisalismy cala rzecz w Turbo Pascalu w ciagu trzech miesiecy. Mozemy jasno powiedziec, ze Turbo Pascal uratowal wtedy nasze tylki". Inny przedstawiciel Borlanda powiedzial, ze beda kontynuowac rozwijanie swoich produktów opartych na Pascalu i wstrzymuja dalsze wysilki przy rozwijaniu C i C++.
Profesor Wirth z instytutu ETH, ojciec jezyków programowania Pascal, Modula 2 i Oberon, stwierdzil tajemniczo, ze "P. T. Barnum mial racje". Nie udzielil dalszego komentarza.