Filozofia inżynierii: Alan Kay i wielka idea, czyli przesyłanie komunikatów

Najważniejsze wnioski
- Wielką ideą jest przesyłanie komunikatów, a nie obiekty. Kay żałował, że ukuł termin „obiekty”, ponieważ kieruje on uwagę ludzi na klasy i dziedziczenie — a więc na ideę mniejszej wagi. Liczą się niezależne byty, które wysyłają sobie nawzajem komunikaty i pozwalają odbiorcy zadecydować, co dany komunikat oznacza.
- Zmiana punktu widzenia jest warta 80 punktów IQ. Trudnego problemu nie pokona się intelektem wewnątrz złej ramy; trzeba odnaleźć ramę, w której staje się on łatwy. Przesyłanie komunikatów było właśnie takim posunięciem dla oprogramowania.
- Dynabook przedefiniował obliczenia jako medium myśli, a nie narzędzie do zadań — laptop i tablet naszkicowane w 1972 roku, w służbie temu, by człowiek mógł pomyśleć myśli, których wcześniej pomyśleć nie potrafił.
- To późne wiązanie kupuje niezależność. Ponieważ nadawca nie wie, jak odbiorca odpowie, części mogą się zmieniać, nie psując się nawzajem — a to właśnie tak system rośnie ponad to, co pomieści jeden umysł.
Zasada
„Przykro mi, że dawno temu ukułem termin »obiekty« dla tego zagadnienia, ponieważ skłania on wielu ludzi do skupiania się na idei mniejszej wagi. Wielką ideą jest »przesyłanie komunikatów«.” — Alan Kay1
Ukuł ten termin, w dużej mierze za niego otrzymał Nagrodę Turinga, a potem przez dekady tłumaczył ludziom, że odczytali go opacznie. Słowo obiekt skłania inżynierów do myślenia o klasach, dziedziczeniu i rzeczownikach w ich modelu danych — o meblach wewnątrz pudełka. Sedno wywodu Kaya jest takie, że meble to idea mniejszej wagi. Liczy się pudełko oraz komunikaty między pudełkami: niezależne byty, które przechowują własny prywatny stan i wchodzą w interakcje wyłącznie poprzez wysyłanie sobie komunikatów, gdzie to odbiorca, a nie nadawca, decyduje, co dany komunikat oznacza.1 To późne wiązanie podniesione do rangi filozofii. Nadawca nie sięga do wnętrza i nie obsługuje maszynerii; pyta i ufa, że dany byt wie, jak odpowiedzieć.
Powód, dla którego to właśnie jest wielka idea, jest taki: w ten sposób buduje się coś zbyt wielkiego, by pomieścić to w głowie. Powracająca metafora Kaya jest biologiczna: duży system powinno się hodować niczym ciało, z milionów komórek, z których każda jest kompletnym komputerem chroniącym własny stan i rozmawiającym z sąsiadami wyłącznie poprzez komunikaty.2 Żadna komórka nie sięga do chemii innej komórki. Cały organizm jest odporny właśnie dlatego, że części są niezależne, a jedynym sprzężeniem są wymieniane między nimi komunikaty. Programowanie obiektowe, w sensie, jaki nadawał mu Kay, nie jest sposobem na organizowanie danych — jest sposobem na zbudowanie systemu z wielu małych bytów, które negocjują, tak by żaden pojedynczy element nie musiał rozumieć całości.
Głębsze posunięcie leżące u podstaw tego wszystkiego to postawa wobec problemów, a nie wobec kodu. Zmiana punktu widzenia jest warta 80 punktów IQ — lubił mawiać Kay.3 Trudnego problemu nie pokona się intelektem przez bycie bystrzejszym wewnątrz złej ramy; trzeba odnaleźć ramę, w której problem jest łatwy. Przesyłanie komunikatów jest jedną z takich ram. Komputer osobisty był kolejną. Przekonanie, że właściwa perspektywa bije surową przebiegłość, to to samo przekonanie, które leży u podstaw tezy, że wyczucie jest systemem technicznym, który można poddać analizie, a nie wrażeniem, które się arbitralnie głosi — struktura, przez którą postanawia się patrzeć na problem, jest istotą pracy.
Kontekst
Alan Curtis Kay urodził się 17 maja 1940 roku w Springfield w stanie Massachusetts.4 Do informatyki trafił późno i bocznymi drzwiami — jako jazzowy gitarzysta i dziecko, które czytało zachłannie, które służyło w lotnictwie, gdzie test predyspozycji pociągnął go ku programowaniu, zanim ukończył studia z matematyki i biologii molekularnej w Kolorado.4 Biologia miała znaczenie. Metafora komórki jako komputera, która miała uporządkować całą jego teorię oprogramowania, wzięła się stamtąd, a nie z jakiejkolwiek tradycji programistycznej.
Na początku lat 60. trafił do finansowanego przez ARPA programu informatycznego na Uniwersytecie Utah, gdzie jego promotorem doktoratu był Dave Evans, a w gronie otaczającej go kadry znajdował się Ivan Sutherland.4 Mniej więcej pierwszego dnia Evans wręczył mu do przeczytania rozprawę Sutherlanda Sketchpad z 1963 roku. Sketchpad pozwalał użytkownikowi rysować bezpośrednio na ekranie piórem świetlnym i — co kluczowe — miał wzorce oraz instancje: definiowało się kształt raz i odbijało kopie, które po nim dziedziczyły. Kay przypisuje tej rozprawie, wraz z językiem Simula, na który natknął się wkrótce potem, rolę zalążka swojego myślenia o obiektach.4 Uczestniczył również w „Matce Wszystkich Demonstracji” Douglasa Engelbarta z 1968 roku — żywym pokazie myszy, hipertekstu i interaktywnych obliczeń, który później nazwał jednym z największych przeżyć w swoim życiu.4 Jego praca doktorska z 1969 roku, maszyna i język FLEX, była wczesną próbą zbudowania osobistego, interaktywnego komputera wokół tych idei.4
W 1970 roku dołączył do nowo utworzonego ośrodka Xerox Palo Alto Research Center i powierzono mu kierowanie grupą Learning Research Group.4 PARC w latach 70. był rzadkim miejscem, w którym badacz mógł realizować dwudziestoletnią wizję na korporacyjnym budżecie. Kay miał taką wizję: nie szybszy mainframe, nie lepszy terminal, lecz komputer osobisty, którego dziecko mogłoby używać jako medium myśli. Wszystko, co zbudował w PARC — Smalltalk, interfejs okienkowy, samą ideę laptopa — było próbą urzeczywistnienia tego jednego obrazu.
Dzieło
Smalltalk i przesyłanie komunikatów: co naprawdę oznaczał OOP
W PARC Kay i jego grupa — w centrum Dan Ingalls, autor fundamentalnych implementacji, oraz Adele Goldberg, która zbudowała znaczną część otaczającego systemu i dokumentacji — stworzyli Smalltalk, jeden z pierwszych w pełni obiektowych, dynamicznych języków programowania.45 W Smalltalku wszystko jest obiektem, a jedyne, co obiekty robią, to wysyłanie sobie nawzajem komunikatów. Nie ma operatorów sięgających do stanu innego obiektu; nawet arytmetyka jest komunikatem wysłanym do liczby. System jest dynamicznie typowany i skrajnie późno wiązany: to, co komunikat robi, rozstrzyga odbiorca w chwili, gdy komunikat nadchodzi, a nie nadawca z góry.5 To właśnie owo późne rozstrzyganie pozwalało edytować działający obraz Smalltalka w trakcie jego pracy — język i jego środowisko były jednym i tym samym żywym bytem.
Kay później zdestylował swoją rzeczywistą definicję programowania obiektowego do trzech wymogów: przesyłanie komunikatów; lokalne przechowywanie, ochrona i ukrywanie stanu-procesu wewnątrz każdego obiektu; oraz skrajnie późne wiązanie wszystkich rzeczy.1 Warto zauważyć, czego na tej liście nie ma: klas, dziedziczenia, typów. To udogodnienia implementacyjne. Tym, co nienegocjowalne, jest to, że stan pozostaje prywatny i że wszystko rozstrzyga się tak późno, jak to możliwe. Kiedy mówił, że wymyślił termin „obiektowy” i że „nie miał na myśli C++”, właśnie to miał na myśli — język może mieć klasy i dziedziczenie, a wciąż całkowicie mijać się z sednem, jeśli pozwala jednemu obiektowi sięgać do trzewi drugiego.6
Powód, dla którego to przesyłanie komunikatów jest ideą nośną, a nie obiekty, jest taki: to przesyłanie komunikatów czyni niezależność rzeczywistą. Gdyby nadawca znał wnętrze odbiorcy, oba byłyby ze sobą zespawane i znów byłby to jeden wielki, splątany program. Ponieważ nadawca jedynie wysyła komunikat, a odbiorca decyduje, jak odpowiedzieć, można wymienić, rozszerzyć lub rozbudować odbiorcę, nie tykając nadawcy. To ta sama własność, dzięki której ciało potrafi zagoić ranę, a sieć — wyznaczyć trasę z pominięciem martwego węzła. Kay chciał, by oprogramowanie skalowało się tak, jak skaluje się biologia, a biologia skaluje się poprzez komunikaty między chronionymi komórkami, nigdy poprzez współdzielone wnętrza.
Dynabook: obliczenia jako medium

W 1972 roku Kay napisał „A Personal Computer for Children of All Ages”, przedstawiony na ACM National Conference w Bostonie, i opisał w nim Dynabook: przenośny komputer osobisty wielkości notesu, z płaskim ekranem, zdolny pomieścić całą bibliotekę dziecka, jego muzykę, rysunki i programy, który jednostka posiadałaby i którego używałaby zawsze i wszędzie.7 Naszkicował go jako cienką tabliczkę mniej więcej wielkości notesu i dowodził, że w zasadzie dałoby się go zbudować przy ówczesnej technologii i sprzedawać tanio.7 Żadna taka maszyna nie istniała. Komputer osobisty nie istniał. On opisywał laptop i tablet w 1972 roku.
Ale Dynabook nigdy tak naprawdę nie dotyczył sprzętu. Dotyczył tego, do czego są obliczenia. Rama Kaya — zaczerpnięta z teorii uczenia się Jerome’a Brunera i z pracy Seymoura Paperta nad Logo — głosiła, że komputer jest nowym medium, jak pismo czy prasa drukarska, a celem medium jest umożliwienie ludziom myślenia myśli, których wcześniej pomyśleć nie potrafili.47 Książkę można jedynie czytać; w Dynabooku można tworzyć i symulować. Dziecko powinno móc zbudować dynamiczny model idei i patrzeć, jak działa. Dlatego musiał być osobisty, przenośny i posiadany na własność: medium myśli musi być zawsze pod ręką, tak jak notes, inaczej w ogóle nie jest medium. Wszystko, co Kay zbudował, było pochodną traktowania komputera jako medium, a nie jako narzędzia.
Graficzny interfejs PARC i „wynaleźć przyszłość”

Dynabook potrzebował interfejsu, którego dziecko mogłoby używać, więc grupa Kaya taki zbudowała. Graficzny interfejs użytkownika z nakładającymi się oknami — oknami piętrzącymi się jak kartki na biurku, z myszą służącą do wskazywania i wysuwania jednego z nich na wierzch — został opracowany w jego grupie Learning Research Group w PARC i działał na komputerze Xerox Alto, maszynie, którą grupa nazywała „tymczasowym Dynabookiem”.48 Każdy pulpit, jakiego kiedykolwiek używaliśmy, wywodzi się z tej pracy. W grudniu 1979 roku Steve Jobs i grupa inżynierów Apple odwiedzili PARC i pokazano im Alto z działającym Smalltalkiem: wyświetlacz bitmapowy, mysz, nakładające się okna.8 Te idee trafiły do Lisy, a potem do Macintosha, a stamtąd do Windowsa i do głównego nurtu informatyki.8 Interfejs, którego dziś używa cały świat, zbudowano w służbie wizji dzieci tworzących w nowym medium.
Hasło napędzające tę pracę to najczęściej cytowane zdanie Kaya: „Najlepszym sposobem przewidzenia przyszłości jest jej wynalezienie.” Mówił, że narodziło się ono na początku 1971 roku, na spotkaniu badaczy z planistami Xeroxa w PARC — „w przypływie pasji wypowiedziałem ten cytat” — gdy planiści chcieli prognoz, a odpowiedź Kaya brzmiała, że nie prognozuje się przyszłości, którą zamierza się zbudować.9 PARC był tym zdaniem przełożonym na działanie: zamiast pytać, czym staną się komputery, grupa Kaya zadecydowała, czym komputery powinny się stać, a następnie poświęciła dekadę na ich budowanie. Przyszłości informatyki osobistej w PARC nie przewidziano. Tam ją wynaleziono, z rozmysłem.
Rewolucja komputerowa jeszcze się nie wydarzyła
W 1997 roku Kay wygłosił na OOPSLA przemówienie zatytułowane „The Computer Revolution Hasn’t Happened Yet” i jest ono niezbędną przeciwwagą dla triumfalnej opowieści.10 Jego argument brzmiał, że branża przejęła artefakty wizji PARC — okna, mysz, maszynę osobistą — a przegapiła ideę. Informatyka osobista, mówił, stała się w przeważającej mierze automatyzacją papieru: cyfrowe dokumenty, cyfrowa poczta, cyfrowe szafy na akta, symulacja starego medium zamiast stania się autentycznie nowym. Rewolucja, którą miał na myśli — komputer jako medium wzmacniające ludzką myśl, które zwykli ludzie programują tak, jak piszą — nie nadeszła. Metafora pulpitu zwyciężyła; idea Dynabooka nie.
Przepaść między artefaktem a ideą stała się jego późną, życiową krytyką. Za pośrednictwem Viewpoints Research Institute, który założył w 2001 roku, Kay zaciekle sprzeciwiał się rozdęciu współczesnego oprogramowania: dziesiątki milionów linii kodu, by zrobić to, co — jak dowodził — dałoby się zrobić na drobnym ułamku tego, gdyby system był hodowany z czystych, komunikujących się części, a nie narastał z bibliotek, których nikt do końca nie rozumie.411 Jego projekt „STEPS” próbował odbudować cały system informatyki osobistej — system operacyjny, aplikacje, wszystko — w mniej więcej dwudziestu tysiącach linii, jako dowód istnienia, że rozdęcie jest wyborem, a nie koniecznością.11 Przekonanie o przesyłaniu komunikatów biegnie prosto aż do tego zarzutu: system, którego nie da się ogarnąć, to system, którego części nie były właściwie niezależne. Rozdęcie to to, co się dzieje, gdy granice przeciekają.
Metoda
Metoda jest spójna przez pięćdziesiąt lat — język, maszyna, interfejs i krytyka.
Odnajdź punkt widzenia, który czyni problem łatwym. Pierwszym posunięciem Kaya nigdy nie jest atakowanie problemu wprost, lecz zmiana ramy, w której on tkwi. Przesyłanie komunikatów zamiast procedur; medium zamiast narzędzia; komórki zamiast kodu. Zdanie o 80 punktach IQ to metoda ujęta w hasło: dźwignia tkwi w perspektywie, a nie w wysiłku.3
Buduj z niezależnych bytów, które komunikują, a nie z procedur, które wywołują. Jednostką konstrukcyjną jest obiekt, który chroni własny stan i udostępnia jedynie komunikaty. Duży system hoduje się tak, jak biologia hoduje organizm — komponując wiele małych, niezależnych, komunikujących się części — tak by żaden element nie zależał od wnętrza innego.12
Wiąż tak późno, jak to możliwe. Rozstrzygaj rzeczy w ostatnim odpowiedzialnym momencie. To późne wiązanie utrzymuje system na tyle miękkim, by zmieniać go w trakcie pracy, i utrzymuje nadawców w niewiedzy o wnętrzu odbiorców. Wczesne wiązanie kupuje szybkość i przepada w nim niezależność, która pozwala systemowi rosnąć.1
Traktuj komputer jako medium ludzkiej myśli. Standardem Dynabooka nie jest „co to narzędzie potrafi zrobić dla zadania?”, lecz „co człowiek może teraz pomyśleć, stworzyć i zasymulować, czego wcześniej nie mógł?”. To pytanie przedefiniowuje całe przedsięwzięcie, przesuwając je od automatyzacji ku wzmocnieniu.7
Wynajduj przyszłość, zamiast ją przewidywać. Poproszony o prognozę, zamiast tego zdecyduj. Dyscypliną PARC było wybranie świata, którego się pragnęło, i zbudowanie go, w przekonaniu, że wizja realizowana przez dekadę bije każdą prognozę.9
Łańcuch wpływów
Kto go ukształtował
Ivan Sutherland i Sketchpad. Rozprawa z 1963 roku, którą Dave Evans wręczył Kayowi zaraz po przybyciu — z jej wzorcami i instancjami, z bezpośrednią manipulacją na ekranie — jest udokumentowanym zalążkiem jego myślenia o obiektach i grafice interaktywnej.4 (Wpływ bezpośredni)
Simula i idea obiektu. Język Simula dał Kayowi konkretne pojęcie obiektów wiążących stan z zachowaniem, które następnie zradykalizował do postaci „wszystko jest obiektem, rozmawiającym poprzez komunikaty”.4 (Wpływ bezpośredni)
Seymour Papert i Logo, za pośrednictwem Piageta. Praca Paperta nad programowaniem przez dzieci — i stojąca za nią psychologia rozwojowa Piageta i Brunera — dała Kayowi przekonanie, że prawdziwymi odbiorcami informatyki są uczący się, a jej prawdziwym celem jest medium myśli, a nie przetwarzanie danych. Dynabook to ambicja Logo w przenośnej formie.47 (Wpływ formujący)
Biologia. Wykształcenie Kaya w biologii molekularnej dostarczyło naczelnej metafory: komórki jako kompletnego, samochroniącego się komputera oraz organizmu jako milionów takich komórek, które się komunikują. Obiektowość jest dla niego oprogramowaniem próbującym być biologią.2 (Wpływ formujący)
Kogo ukształtował
Każdy język obiektowy. Model Smalltalka — obiekty, wysyłanie komunikatów, dynamiczne wiązanie — biegnie wprost do Objective-C, Ruby i Javy, a jego słownictwo to dziś domyślne meble programowania. Nawet języki, które zignorowały jego przestrogę o przesyłaniu komunikatów, odziedziczyły ukuty przez niego termin.56
Graficzny interfejs użytkownika, a przez niego Mac i Windows. Graficzny interfejs z nakładającymi się oknami, stworzony w jego grupie w PARC, pokazany Jobsowi w 1979 roku na Alto, stał się Lisą, Macintoshem, a potem interfejsem zasadniczo każdego komputera osobistego od tamtej pory.8
Laptop i tablet. Dynabook opisywał w 1972 roku przenośny komputer osobisty, który dziś nosi cały świat. Maszyna na naszym biurku i tabliczka w naszej torbie to oba, w zarysie, ten byt, który Kay naszkicował.7
Nić przewodnia
Barbara Liskov uczyniła abstrakcję danych prymitywem programowania — typ jest kontraktem, którego dotrzymuje, a podtyp musi honorować każdą obietnicę składaną przez swój nadtyp. To przekonanie Kaya o przesyłaniu komunikatów wyrażone jako teoria typów: liczy się kontrakt między obiektami, a nie ich wnętrze, a wywołujący powinien móc wysłać komunikat i zaufać odpowiedzi, nigdy nie czytając, jak została wytworzona. Tam gdzie Thompson i Ritchie zbudowali Uniksa z małych programów, które „robią jedną rzecz dobrze” i komponują się przez czyste potoki, Kay zbudował systemy z małych obiektów, które robią jedną rzecz i komponują się przez czyste komunikaty — ten sam zakład, że duży system powinien być wieloma niezależnymi małymi bytami, sprzężonymi jedynie na swoich interfejsach. A Grace Hopper obstawała, że komputer powinien wychodzić ludziom naprzeciw w ich własnym języku, przenosząc tłumaczenie do maszyny, tak by człowiek mógł rozumować we własnych kategoriach; Kay doprowadził to do granicy z Dynabookiem — komputer nie tyle mówiący językiem człowieka, ile stający się medium, w którym człowiek myśli. Linia ta biegnie następnie naprzód do Steve’a Jobsa, który w 1979 roku wszedł do PARC, ujrzał interfejs Kaya i poniósł go w świat. (Pomost serii)
Co z tego wynoszę
Lekcja, którą zachowuję, jest taka, że najtrudniejszą częścią każdego systemu jest wybór ramy i że rama jest warta więcej niż przebiegłość wewnątrz niej. Zdanie Kaya o 80 punktach IQ to najużyteczniejsze zdanie w całej tej serii, bo mówi, gdzie wydać wysiłek: nie na intensywniejsze mielenie wewnątrz złego modelu, lecz na odnalezienie modelu, w którym problem się rozpuszcza. Przesyłanie komunikatów było tym posunięciem dla oprogramowania. Traktowanie komputera jako medium było tym posunięciem dla informatyki osobistej. Dyscyplina polega na nieustannym pytaniu jaki punkt widzenia czyni to łatwym?, zanim napisze się choć linijkę. To ten sam standard co jakość jako jedyna zmienna — pytanie nigdy nie brzmi „czy mogę zmusić zły projekt do cięższej pracy?”, lecz „czy znalazłem ten właściwy?”.
W świecie, w którym dziś buduję — agenty, pętle narzędziowe, systemy AI — rzeczywista definicja obiektowości według Kaya jest ideą najbardziej nośną na tej stronie, a niemal nikt jej nie nazywa. Agent jest obiektem Kaya: przechowuje prywatny stan, nie da się odczytać jego wnętrza, a wejść z nim w interakcję można wyłącznie, wysyłając mu komunikat i ufając, że zadecyduje, jak odpowiedzieć. System wieloagentowy to dokładnie biologiczna wizja Kaya — wiele niezależnych komputerów, z których każdy chroni własny kontekst, urastających do czegoś większego poprzez komunikaty, nigdy poprzez sięganie do pamięci jeden drugiego. Cały powód, dla którego to działa, kiedy działa, to późne wiązanie: nadawca nie wie, jak odbiorca odpowie, a ta niewiedza jest zaletą, bo to ona pozwala częściom zmieniać się niezależnie. Dobre budowanie agentów to budowanie komórek Kaya — a porażki są zawsze tą samą porażką, granicą, która przeciekła. To przekonanie, że systemy powinny być hodowane z małych bytów, które się komunikują, a nie składane z części sięgających do swoich wnętrz, jest nicią przewodnią od szkicu Dynabooka z 1972 roku po ramy agenta z 2026 roku — i to właśnie dlatego bramka dowodowa sprawdza odpowiedź komponentu, a nie jego wnętrze.
FAQ
Na czym polega filozofia inżynierii Alana Kaya?
Naczelnym przekonaniem Kaya jest to, że system zbyt duży, by pomieścić go w głowie, musi być zbudowany z niezależnych obiektów, które chronią własny prywatny stan i komunikują się wyłącznie poprzez wysyłanie komunikatów — hodowany niczym organizm biologiczny z wielu małych komórek, nigdy składany z części sięgających do swoich wnętrz. U podstaw tego leży postawa wobec problemów: zmiana punktu widzenia jest warta więcej niż surowa przebiegłość, więc istota pracy polega na odnalezieniu ramy, w której trudny problem staje się łatwy. Zastosował to do programowania (Smalltalk), do samego komputera (Dynabook, komputer jako medium myśli) oraz do branży (jego krytyka, że prawdziwa rewolucja komputerowa jeszcze się nie wydarzyła).13710
Co Alan Kay rozumiał przez „programowanie obiektowe” i „przesyłanie komunikatów”?
Kay ukuł termin „obiektowy”, ale później powiedział, że żałuje tego, ponieważ skłania on ludzi do skupiania się na obiektach, klasach i dziedziczeniu — na „idei mniejszej wagi”. Jego rzeczywista definicja ma trzy części: przesyłanie komunikatów; lokalne przechowywanie, ochrona i ukrywanie stanu każdego obiektu; oraz skrajnie późne wiązanie wszystkich rzeczy.1 Wielką ideą jest przesyłanie komunikatów: obiekty nigdy nie sięgają do wnętrza jeden drugiego; nadawca wysyła komunikat, a to odbiorca decyduje, co on oznacza, w chwili gdy komunikat nadchodzi. Warto zauważyć, że klas i dziedziczenia nie ma na tej liście — język może mieć oba, a wciąż mijać się z sednem, jeśli pozwala jednemu obiektowi operować na prywatnym stanie drugiego. Przesyłanie komunikatów to to, co czyni części prawdziwie niezależnymi, a to właśnie pozwala dużemu systemowi rosnąć i zmieniać się, nie stając się plątaniną.16
Czym był Dynabook?
Dynabook był przenośnym komputerem osobistym, który Kay opisał w swojej pracy z 1972 roku „A Personal Computer for Children of All Ages”, przedstawionej na ACM National Conference: maszyną wielkości notesu, z płaskim ekranem, którą jednostka posiadałaby na własność i której używałaby wszędzie, mieszczącą jej bibliotekę, muzykę, rysunki i programy.7 Żadna taka maszyna nie istniała; opisywał laptop i tablet dekady wcześniej. Ale jego prawdziwe sedno było pojęciowe — komputer jako nowe medium ludzkiej myśli, jak pismo czy druk, w którym człowiek (zwłaszcza dziecko) mógłby budować i uruchamiać dynamiczne modele idei, a nie tylko konsumować treści. Xerox Alto zbudowano jako „tymczasowy Dynabook”, a laptopy i tablety, które dziś nosimy, są tą wizją urzeczywistnioną w sprzęcie.47
Dlaczego Alan Kay otrzymał Nagrodę Turinga?
ACM przyznało Kayowi Nagrodę Turinga im. A.M. Turinga za rok 2003 „za pionierski wkład w wiele idei leżących u podstaw współczesnych obiektowych języków programowania, za kierowanie zespołem, który opracował Smalltalk, oraz za fundamentalny wkład w informatykę osobistą”.12 Uzasadnienie ujmuje obie połowy jego dzieła: język i model przesyłania komunikatów, które ukształtowały to, jak buduje się oprogramowanie, oraz Dynabooka i prace nad graficznym interfejsem w PARC, które ukształtowały to, czym jest komputer osobisty. Był kluczową postacią stojącą za Smalltalkiem, za graficznym interfejsem z nakładającymi się oknami, który Steve Jobs ujrzał w PARC w 1979 roku i poniósł do Macintosha, oraz za samą koncepcją osobistego, przenośnego komputera jako medium myśli.48
Źródła
-
Alan Kay, e-mail do listy mailingowej deweloperów Squeaka, 10 października 1998, zarchiwizowany i szeroko cytowany na picostitch, „Alan Kay On Messaging.” „I’m sorry that I long ago coined the term ‘objects’ for this topic because it gets many people to focus on the lesser idea. The big idea is ‘messaging’…” Trzyczęściowa definicja OOP według Kaya — „messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things” — pojawia się w późniejszej (2003) odpowiedzi na ten sam temat, zarchiwizowanej na Stefan Ram, „Dr. Alan Kay on the Meaning of ‘Object-Oriented Programming.’” Dyskusja: Hacker News. ↩↩↩↩↩↩↩↩
-
Alan Kay, o biologicznej metaforze komórki dla obiektów i skalowaniu oprogramowania niczym organizmu; zob. jego wspomnienia w “The Early History of Smalltalk,” ACM SIGPLAN History of Programming Languages II (1993) oraz ujęcie „milionów komórek, z których każda jest całym komputerem” streszczone w jego haśle “Alan Kay” w Wikipedii. ↩↩↩
-
“Quote Origin: Point of View Is Worth 80 IQ Points,” Quote Investigator. Przypisywane Kayowi; najwcześniejsze udokumentowane wypowiedzenie podczas jego seminaryjnego wykładu Creative Think, 20 lipca 1982 (nagranego przez Andy’ego Hertzfelda), z publikowanymi wystąpieniami w latach 1984–1985. Warianty: „Point of view is worth 80 IQ points”, „A change in perspective is worth 80 IQ points”. Zebrane także na Wikiquote. ↩↩↩
-
“Alan Kay,” Wikipedia. Urodzony 17 maja 1940 w Springfield w stanie Massachusetts; doktorat, Uniwersytet Utah, 1969, promotor David C. Evans (rozprawa FLEX); Sketchpad Ivana Sutherlanda i Simula jako wpływy na jego myślenie o obiektach; uczestnictwo w „Matce Wszystkich Demonstracji” Engelbarta z 1968; dołączenie do Xerox PARC w 1970 i kierowanie grupą Learning Research Group; Smalltalk z Danem Ingallsem i Adele Goldberg; Dynabook; graficzny interfejs z nakładającymi się oknami i Alto jako „tymczasowy Dynabook”; ukucie terminu „obiektowy”; założenie Viewpoints Research Institute (2001). Zob. także Britannica, „Alan Kay.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
“Smalltalk,” Wikipedia. Zaprojektowany w Xerox PARC; jeden z pierwszych w pełni obiektowych, dynamicznie typowanych języków; wszystko jest obiektem, wszelkie obliczenia poprzez przesyłanie komunikatów; dynamiczny, późno wiązany, żywy obraz. Implementacja pod kierunkiem Dana Ingallsa; dokumentacja i prace systemowe autorstwa Adele Goldberg. ↩↩↩
-
Alan Kay, uwagi z przemówienia na OOPSLA 1997, „When I made up the term object-oriented, I did not have C++ in mind”; zob. “The Computer Revolution Hasn’t Happened Yet,” zarchiwizowane nagranie i transkrypcja, Internet Archive. ↩↩↩
-
Alan C. Kay, “A Personal Computer for Children of All Ages,” pierwotnie opublikowane w Proceedings of the ACM National Conference, Boston, sierpień 1972 (wznowione przez Viewpoints Research Institute). Opisuje Dynabook — przenośny komputer osobisty wielkości notesu jako medium nauki — i czerpie z Brunera oraz Paperta/Logo. Omówienie i rodowód „tymczasowego Dynabooka” prowadzący do Alto: “Dynabook,” Wikipedia. ↩↩↩↩↩↩↩↩↩
-
“History of the graphical user interface,” Wikipedia oraz “Xerox Alto,” Wikipedia. Graficzny interfejs z nakładającymi się oknami opracowany w grupie Learning Research Group Kaya w PARC; Steve’owi Jobsowi i inżynierom Apple pokazano Alto z działającym Smalltalkiem-76 — wyświetlacz bitmapowy, mysz, nakładające się okna — w grudniu 1979; idee te przepłynęły do Apple Lisy i Macintosha. ↩↩↩↩↩
-
“Quote Origin: We Cannot Predict the Future, But We Can Invent It,” Quote Investigator. Własna relacja Kaya (e-mail z 1998) wywodzi zdanie „The best way to predict the future is to invent it” ze spotkania badaczy PARC i planistów Xeroxa na początku 1971 roku — „In a fit of passion I uttered the quote!” Najwcześniejsze publikowane przypisanie: InfoWorld, kwiecień 1982. ↩↩
-
Alan Kay, “The Computer Revolution Hasn’t Happened Yet,” przemówienie na OOPSLA 1997 (Internet Archive). Argument, że branża przejęła artefakty informatyki osobistej, mijając się z ideą — „automatyzacja papieru” zamiast budowania autentycznie nowego medium. ↩↩
-
Viewpoints Research Institute, STEPS Toward Expressive Programming Systems — projekt odbudowy całego systemu informatyki osobistej (systemu operacyjnego, aplikacji, wszystkiego) w mniej więcej 20 000 linii kodu jako krytyka rozdęcia oprogramowania. Końcowy raport dla NSF zarchiwizowany na VPRI / Internet Archive (kopia worrydream). Kontekst: Wikipedia, „Viewpoints Research Institute.” ↩↩
-
“A.M. Turing Award Laureates – Alan Kay,” Wikipedia (uzasadnienie z 2003). „For pioneering many of the ideas at the root of contemporary object-oriented programming languages, leading the team that developed Smalltalk, and for fundamental contributions to personal computing.” Strona laureata ACM: amturing.acm.org/award_winners/kay_3972189.cfm. ↩