Alan Kay, tvůrce OOP, o vývoji, Lisp a OOP

Alan Kay, tvůrce OOP, o vývoji, Lisp a OOP

Pokud jste nikdy neslyšeli o Alanu Kayovi, slyšeli jste alespoň jeho slavné citáty. Například tento citát z roku 1971:

Nejlepší způsob, jak předpovědět budoucnost, je vymyslet si ji.
Nejlepší způsob, jak předpovědět budoucnost, je vymyslet si ji.

Alan má velmi pestrou kariéru v informatice. Obdržel Kjótská cena и Turingova cena za jeho práci na paradigmatu objektově orientovaného programování. Patřil k průkopníkům v oblasti osobních počítačů a grafických rozhraní, vyvinul Malá řeč je jedním z prvních nejvlivnějších programovacích jazyků všech dob.

V našem Hexlete, speciálně v chatování, neustále se objevuje otázka „co je OOP“ a „co měl Alan Kay skutečně na mysli“. Tento příspěvek obsahuje zajímavé citáty od Alana o stavu moderního vývoje, OOP a jazyku Lisp.

O vývoji softwaru

Alan Kay věří, že počítačová revoluce teprve přijde (Skutečná počítačová revoluce se ještě nestala) a vývoj softwaru se vyvíjí nepřímo úměrně Moorovu zákonu: hardware se každým rokem zlepšuje, ale software se zbytečně nafukuje:

problémem jsou slabé, špatně škálovatelné nápady a nástroje, lenost, nedostatek znalostí atd.

Dobře popisuje tuto situaci krátký vtip:

Co Andy dává, Bill bere
Andy dal, Bill vzal

Andy Grove, generální ředitel společnosti Intel, a Bill Gates, tehdejší generální ředitel společnosti Microsoft.

Cílem výzkumného projektu bylo zlepšení současného stavu vývoje STEPS Toward The Reinvention of Programming (pdf). Cílem je dosáhnout "Mooreova zákona" v expresivitě "snížením množství požadovaného kódu 100, 1000, 10000 XNUMXkrát nebo více."

V jeho oči otevírající zprávě Programování a škálování (video) Toto téma je probráno podrobněji. Softwarové inženýrství se podle Alana zastavilo a stává se zapomenutou vědou, která nedokáže držet krok s hardwarem a dalšími vědami a inženýrskými obory. Velké projekty se staly skládkami kódu a dosáhly bodu, kdy nikdo nerozuměl 100 milionům řádků kódu MS Vista nebo MS Word. Ale ve skutečnosti by v takových projektech mělo být kódu o řád méně.

Alan zvažuje internet, protokoly TCP/IP, interprety LISP, Nile (Math DSL pro vektorovou grafiku) a OMeta (OO PEG) (PDF) příklady elegantního softwaru s minimálním kódem.

Internet (TCP/IP) nazývá jedním z mála rozsáhlých softwarových projektů, který byl navržen správně a jeho úroveň složitosti je v rovnováze s úrovní složitosti (komplikace vs. složitost). S méně než 20 1969 řádky kódu funguje projekt jako živý, dynamický systém schopný podporovat miliardy uzlů a od svého prvního spuštění v září XNUMX nikdy nepřešel do režimu offline. Jednoduše jsme přestali považovat internet za normální softwarový projekt vytvořený lidmi:

Internet je tak dobře rozvinutý, že mnoho lidí s ním zachází jako s přírodním zdrojem, jako je Tichý oceán, spíše než jako s produktem lidské práce. Kdy jsme naposledy viděli tak stabilní, jasnou a bezchybnou technologii? Pro srovnání, Web je nesmysl. Web vytvořili amatéři.

O objektově orientovaném programování

První, co mě zaujalo, byl jeho počáteční OOP vize. Jeho zkušenosti v mikrobiologii hrály důležitou roli:

Myslel jsem, že objekty jsou jako biologické buňky a/nebo jednotlivé počítače v síti, které mohou komunikovat pouze prostřednictvím zpráv.

a zkušenosti v matematice:

Díky matematice jsem si uvědomil, že každý objekt může mít několik algeber, lze je kombinovat do rodin, což může být velmi užitečné.

Nápady pro pozdní vazbu a výkonné meta-funkce LISPa:

Druhou fází je pochopení LISPa a použití tohoto porozumění k vytvoření jednodušších, menších, výkonnějších struktur a pozdějších vazeb.

A brzy začal Alan podporovat myšlenku, že dynamické jazyky jsou budoucnost vývoje softwaru (pdf). Důležitá je pro něj zejména snadnost změny:

Pozdní vazba umožňuje, aby nápady, které se objevily později v procesu vývoje, byly začleněny do projektu s menším úsilím (ve srovnání s dřívějšími vázanými systémy jako C, C++, Java atd.)

A potenciál pro změny za běhu a rychlejší iterace:

Jednou z klíčových myšlenek je, že systém by měl i nadále fungovat během testování, zejména při provádění změn. I velké změny by měly být postupné a neměly by trvat déle než zlomek sekundy.

který v něm chybí staticky typované jazyky:

Pokud používáte rané vazebné jazyky, jako to dělá většina lidí, uzamknete se v tom, co jste již napsali. Přeformulovat jej již nebude možné jednoduše.

Překvapivě se jeho myšlenky o OOP omezovaly na toto:

OOP jsou pro mě zprávy, lokální držení a ochrana, skrývání státu a pozdní vazba všeho. To lze provést ve Smalltalku a v LISPu.

A nic o dědictví. Toto není OOP které dnes známe:

Přál bych si, abych pro toto téma už dávno použil termín „objekt“, protože to způsobuje, že se mnoho lidí soustředí na ty menší myšlenky.

Velká myšlenka, že moderní staticky typované OO jazyky postrádají:

Velkou myšlenkou jsou „zprávy“

Věří v zaměření na zprávy, volné vazby a interakce modulů spíše než na vnitřnosti objektu:

Klíčem k vytvoření dobrých škálovatelných systémů je vypracování komunikačních mechanismů mezi moduly, nikoli řešení jejich vnitřních vlastností a chování.

Připadají mu staticky psané jazyky vadný:

Nejsem proti typům, ale neznám žádný typový systém, který by nezpůsoboval bolest. Takže dynamické psaní mám stále rád.

Některé populární jazyky dnes používají myšlenky předávání zpráv Smalltalk, pozdní vazbu a nerozumíforwardInvocation в Cíl Cmetoda_chybí в Rubín и noSuchMethod v Google Šipka.

Všechno zničit a vytvořit něco lepšího

Alan má zajímavou teorii o vývoji informatiky:

Zdá se mi, že existuje jen jeden druh informatiky a že věda je jako stavění mostů. Někdo staví mosty a někdo je ničí a vytváří nové teorie. A musíme dál stavět mosty.

O LISP

Alan Kay Lispovi věří

nejlepší programovací jazyk všech dob

A že by to měl studovat každý absolvent informatiky:

Většina lidí, kteří studují v CS, nerozumí důležitosti Lisp. Lisp je nejdůležitější myšlenka v informatice.

O správné atmosféře a kontextu

Často vzpomíná na jedinečnou atmosféru v Xerox PARK и Harp, kde „vize je důležitější než cíle“ a „financování lidí, ne projektů“.

Úhel pohledu má hodnotu 80 bodů IQ.

Alan Kay říká:

Příběh ARPA/PARC demonstruje, jak kombinace vize, skromného financování, správného kontextu a procesu může magicky zrodit nové technologie, které nejen ovlivňují civilizaci, ale také vytvářejí obrovskou hodnotu pro společnost.

A je to pravda. Podívejte se na působivý seznam vynálezů PARC, z nichž mnohé sehrály velmi důležitou roli ve vývoji našeho světa. Například:

  • Laserové tiskárny
  • Objektově orientované programování / Smalltalk
  • Osobní počítače
  • Ethernet / distribuované výpočty
  • GUI / počítačová myš / WYSIWYG

A v Harp vytvořili ARPANET, který se stal praotcem internetu.

PS Alan Kay odpovídá na otázky komunity Hacker News.

Zdroj: www.habr.com

Přidat komentář