Jeśli nigdy nie słyszałeś o Alanie Kaya, przynajmniej słyszałeś jego słynne cytaty. Na przykład ten cytat z 1971 roku:
Najlepszym sposobem przewidywania przyszłości jest jej wymyślanie.
Najlepszym sposobem na przewidzenie przyszłości jest jej wymyślenie.
Alan ma bardzo barwną karierę w informatyce. Otrzymał
Mamy w
O tworzeniu oprogramowania
Alan Kay uważa, że rewolucja komputerowa dopiero nadchodzi (
problemem są słabe, słabo skalowalne pomysły i narzędzia, lenistwo, brak wiedzy itp.
Dobrze opisuje tę sytuację
Co Andy daje, Bill zabiera
Andy dał, Bill wziął
Andy Grove, dyrektor generalny Intela i Bill Gates, ówczesny dyrektor generalny Microsoftu.
Celem projektu badawczego była poprawa obecnego stanu rozwoju
W swoim otwierającym oczy raporcie
Alan bierze pod uwagę Internet, protokoły TCP/IP, interpretery LISP,
Nazywa Internet (TCP/IP) jednym z niewielu wielkoskalowych projektów oprogramowania, który został poprawnie zaprojektowany, a jego poziom złożoności jest równoważony poziomem złożoności (komplikacja kontra złożoność). Projekt, składający się z mniej niż 20 1969 linii kodu, działa jak żywy, dynamiczny system zdolny do obsługi miliardów węzłów i nigdy nie przeszedł w tryb offline od czasu jego pierwszego uruchomienia we wrześniu XNUMX r. Po prostu przestaliśmy uważać Internet za normalny projekt oprogramowania tworzony przez ludzi:
Internet jest tak dobrze rozwinięty, że wiele osób traktuje go jak zasób naturalny, taki jak Ocean Spokojny, a nie produkt ludzkiej pracy. Kiedy ostatni raz widzieliśmy tak stabilną, przejrzystą i bezbłędną technologię? Dla porównania, Internet to nonsens. Sieć została stworzona przez amatorów.
O programowaniu obiektowym
Pierwszą rzeczą, która mnie zainteresowała, był jego
Myślałem o obiektach jak o komórkach biologicznych i/lub o pojedynczych komputerach w sieci, które mogą komunikować się jedynie za pomocą wiadomości.
i doświadczenie w matematyce:
Moje doświadczenie z matematyką uświadomiło mi, że każdy obiekt może mieć kilka algebr, można je łączyć w rodziny, a to może być bardzo przydatne.
Pomysły na późne wiązanie i potężne meta-funkcje LISPa:
Druga faza to zrozumienie LISPa i wykorzystanie tego zrozumienia do stworzenia łatwiejszych, mniejszych, potężniejszych struktur i późniejszego wiązania.
Wkrótce Alan zaczął popierać pogląd, że języki są dynamiczne
Późne wiązanie pozwala na włączenie do projektu pomysłów, które pojawiły się później w procesie programowania, przy mniejszym wysiłku (w porównaniu z wcześniejszymi systemami związanymi, takimi jak C, C++, Java itp.).
Oraz potencjał zmian na bieżąco i szybszych iteracji:
Jedną z kluczowych idei jest to, że system powinien kontynuować pracę podczas testowania, zwłaszcza podczas wprowadzania zmian. Nawet większe zmiany powinny być stopniowe i trwać nie dłużej niż ułamek sekundy.
którego brakuje w
Jeśli używasz języków wcześnie wiążących, jak robi to większość ludzi, zamykasz się w tym, co już napisałeś. Nie będzie już możliwe łatwe jego przeformułowanie.
Co zaskakujące, jego przemyślenia na temat OOP ograniczały się do tego:
Dla mnie OOP to wiadomości, lokalne przechowywanie i ochrona, ukrywanie stanu i późne wiązanie wszystkiego. Można to zrobić w Smalltalk i LISP.
I nic o dziedziczeniu. To nie jest OOP
Żałuję, że dawno temu nie użyłem terminu „obiekt” na określenie tego tematu, ponieważ powoduje to, że wiele osób skupia się na mniejszych pomysłach.
Wielka idea, której brakuje współczesnym językom OO ze statycznym typem:
Najważniejszym pomysłem są „wiadomości”
Wierzy w skupianie się na komunikatach, luźnych powiązaniach i interakcjach modułów, a nie na wnętrzu obiektu:
Kluczem do stworzenia dobrych, skalowalnych systemów jest wypracowanie mechanizmów komunikacji pomiędzy modułami, a nie rozpracowywanie ich wewnętrznych właściwości i zachowania.
Wydaje mu się, że języki są statycznie pisane
Nie jestem przeciwny typom, ale nie znam żadnego systemu typów, który nie powoduje bólu. Dlatego nadal lubię dynamiczne pisanie.
Niektóre popularne obecnie języki korzystają z pomysłów przekazywania wiadomości Smalltalk, późnego wiązania i
Zniszcz wszystko i stwórz coś lepszego
Alan ma ciekawą teorię na temat rozwoju informatyki:
Wydaje mi się, że istnieje tylko jeden rodzaj informatyki i że nauka jest jak budowanie mostów. Ktoś buduje mosty, a ktoś je niszczy i tworzy nowe teorie. Musimy nadal budować mosty.
O LISP-ie
Alan Kay wierzy w Lisp
najlepszy język programowania wszechczasów
I że każdy absolwent informatyki powinien się tego uczyć:
Większość ludzi zdobywających stopnie naukowe w CS nie rozumie znaczenia Lisp. Lisp jest najważniejszą ideą w informatyce.
O odpowiedniej atmosferze i kontekście
Często wspomina niepowtarzalną atmosferę panującą w
Punkt widzenia jest wart 80 punktów IQ.
Alan Kay mówi:
Historia ARPA/PARC pokazuje, jak połączenie wizji, skromnych funduszy, odpowiedniego kontekstu i procesu może w magiczny sposób narodzić nowe technologie, które nie tylko wpływają na cywilizację, ale także tworzą ogromną wartość dla społeczeństwa.
I to prawda.
- Drukarki laserowe
- Programowanie obiektowe / Smalltalk
- Komputery osobiste
- Ethernet / przetwarzanie rozproszone
- GUI / mysz komputerowa / WYSIWYG
Oraz w
PS
Źródło: www.habr.com