Alan Kay, tvorca OOP, o vývoji, Lisp a OOP

Alan Kay, tvorca OOP, o vývoji, Lisp a OOP

Ak ste nikdy nepočuli o Alanovi Kayovi, počuli ste aspoň jeho slávne citáty. Napríklad tento citát z roku 1971:

Najlepší spôsob, ako predpovedať budúcnosť, je vynájsť ju.
Najlepší spôsob, ako predpovedať budúcnosť, je vynájsť ju.

Alan má veľmi pestrú kariéru v informatike. Dostal Kjótska cena и Turingovu cenu za jeho prácu na paradigme objektovo orientovaného programovania. Bol jedným z priekopníkov v oblasti osobných počítačov a grafických rozhraní, ktoré vyvinul Malá prednáška je jedným z prvých najvplyvnejších programovacích jazykov všetkých čias.

V našom Hexlete, najmä v chatovanie, neustále sa objavuje otázka „čo je OOP“ a „čo tým vlastne myslel Alan Kay“. Tento príspevok obsahuje zaujímavé citáty od Alana o stave moderného vývoja, OOP a jazyku Lisp.

O vývoji softvéru

Alan Kay verí, že počítačová revolúcia ešte len príde (Skutočná počítačová revolúcia sa ešte nestala) a vývoj softvéru sa vyvíja nepriamo úmerne k Moorovmu zákonu: hardvér sa každým rokom zlepšuje, ale softvér sa zbytočne nafukuje:

problémom sú slabé, zle škálovateľné nápady a nástroje, lenivosť, nedostatok vedomostí atď.

Dobre popisuje túto situáciu krátky vtip:

Čo Andy dáva, Bill berie
Andy dal, Bill vzal

Andy Grove, generálny riaditeľ spoločnosti Intel, a Bill Gates, vtedajší generálny riaditeľ spoločnosti Microsoft.

Cieľom výskumného projektu bolo zlepšiť súčasný stav vývoja STEPS Toward The Reinvention of Programming (pdf). Cieľom je dosiahnuť "Mooreov zákon" v expresívnosti "znížením množstva požadovaného kódu 100, 1000, 10000 XNUMX krát alebo viac."

Vo svojej prehľadnej správe Programovanie a škálovanie (video) Táto téma je diskutovaná podrobnejšie. Podľa Alana sa softvérové ​​inžinierstvo zastavilo a stáva sa zabudnutou vedou, ktorá nedokáže držať krok s hardvérom a inými vedami a inžinierskymi disciplínami. Veľké projekty sa stali skládkami kódu a dosiahli bod, kedy nikto nedokáže porozumieť 100 miliónom riadkov kódu MS Vista alebo MS Word. Ale v skutočnosti by v takýchto projektoch malo byť rádovo menej kódu.

Alan uvažuje o internete, protokoloch TCP/IP, interpretoch LISP, Nile (Math DSL pre vektorovú grafiku) a OMeta (OO PEG) (PDF) príklady elegantného softvéru s minimálnym kódom.

Internet (TCP/IP) označuje za jeden z mála rozsiahlych softvérových projektov, ktorý bol navrhnutý správne a jeho úroveň zložitosti je v rovnováhe s úrovňou zložitosti (komplikácia vs. zložitosť). Projekt s menej ako 20 1969 riadkami kódu funguje ako živý, dynamický systém schopný podporovať miliardy uzlov a od svojho prvého spustenia v septembri XNUMX sa nikdy neodpojil. Jednoducho sme prestali považovať internet za normálny softvérový projekt vytvorený ľuďmi:

Internet je tak dobre rozvinutý, že mnohí s ním zaobchádzajú ako s prírodným zdrojom, ako je Tichý oceán, a nie ako s produktom ľudskej práce. Kedy sme naposledy videli takú stabilnú, jasnú a bezchybnú technológiu? Pre porovnanie, web je nezmysel. Web vytvorili amatéri.

O objektovo orientovanom programovaní

Prvá vec, ktorá ma zaujala, bola jeho originálny OOP vízia. Jeho skúsenosti v mikrobiológii zohrali dôležitú úlohu:

Myslel som si, že objekty sú ako biologické bunky a/alebo jednotlivé počítače v sieti, ktoré môžu komunikovať iba prostredníctvom správ.

a skúsenosti z matematiky:

Vďaka skúsenostiam z matematiky som si uvedomil, že každý objekt môže mať niekoľko algebier, možno ich kombinovať do rodín, čo môže byť veľmi užitočné.

Nápady na neskoré viazanie a výkonné meta-funkcie LISPa:

Druhou fázou je pochopenie LISPa a využitie tohto pochopenia na vytvorenie jednoduchších, menších, výkonnejších štruktúr a neskoršie viazanie.

Čoskoro Alan začal podporovať myšlienku, že dynamické jazyky sú budúcnosť vývoja softvéru (pdf). Pre neho je dôležitá najmä jednoduchosť zmeny:

Neskorá väzba umožňuje začleniť nápady, ktoré prišli neskôr v procese vývoja, do projektu s menším úsilím (v porovnaní so skoršími viazanými systémami ako C, C++, Java atď.)

A potenciál pre zmeny za chodu a rýchlejšie iterácie:

Jednou z kľúčových myšlienok je, že systém by mal naďalej fungovať počas testovania, najmä počas vykonávania zmien. Dokonca aj veľké zmeny by mali byť postupné a nemali by trvať dlhšie ako zlomok sekundy.

ktorý chýba v staticky typované jazyky:

Ak používate jazyky s počiatočnou väzbou, ako to robí väčšina ľudí, uzamknete sa v tom, čo ste už napísali. Už to nebude možné jednoducho preformulovať.

Prekvapivo sa jeho myšlienky o OOP obmedzili na toto:

OOP sú pre mňa správy, lokálne zadržiavanie a ochrana, štátne schovávanie a neskoré viazanie všetkého. Dá sa to urobiť v Smalltalku a LISP.

A nič o dedičstve. Toto nie je OOP ktoré dnes poznáme:

Prial by som si, aby som výraz „objekt“ pre túto tému použil už dávno, pretože to spôsobuje, že veľa ľudí sa sústredí na tie menšie myšlienky.

Veľká myšlienka, že moderným staticky typovaným OO jazykom chýba:

Veľkou myšlienkou sú „správy“

Verí v zameranie sa na správy, voľné spojenie a interakcie modulov, a nie na vnútorné časti objektu:

Kľúčom k vytvoreniu dobrých škálovateľných systémov je vypracovanie komunikačných mechanizmov medzi modulmi a nie riešenie ich vnútorných vlastností a správania.

Zdajú sa mu staticky napísané jazyky defektný:

Nie som proti typom, ale nepoznám žiadny typový systém, ktorý by nespôsoboval bolesť. Takže stále mám rád dynamické písanie.

Niektoré populárne jazyky dnes používajú nápady na odovzdávanie správ Smalltalk, neskoré viazanie a nerozumieforwardInvocation в Objective-Cmetóda_chýba в rubín и noSuchMethod v Google Oštep.

Zničte všetko a vytvorte niečo lepšie

Alan má zaujímavú teóriu o rozvoji informatiky:

Zdá sa mi, že existuje len jeden druh informatiky a že veda je ako stavanie mostov. Niekto stavia mosty a niekto ich ničí a vytvára nové teórie. A musíme pokračovať v budovaní mostov.

O LISP

Alan Kay verí Lispovi

najlepší programovací jazyk všetkých čias

A že by to mal študovať každý absolvent informatiky:

Väčšina ľudí, ktorí študujú v CS, nerozumie dôležitosti Lisp. Lisp je najdôležitejšou myšlienkou v informatike.

O správnej atmosfére a kontexte

Často si spomína na jedinečnú atmosféru v Xerox PARK и ARPA, kde „vízia je dôležitejšia ako ciele“ a „financovanie ľudí, nie projektov“.

Pohľad má hodnotu 80 bodov IQ.

Alan Kay hovorí:

Príbeh ARPA/PARC ukazuje, ako môže kombinácia vízie, skromného financovania, správneho kontextu a procesu magicky zrodiť nové technológie, ktoré nielen ovplyvňujú civilizáciu, ale vytvárajú aj obrovskú hodnotu pre spoločnosť.

A je to pravda. Pozrite sa na pôsobivý zoznam vynálezov PARC, z ktorých mnohé zohrali veľmi dôležitú úlohu vo vývoji nášho sveta. Napríklad:

  • Laserové tlačiarne
  • Objektovo orientované programovanie / Smalltalk
  • Osobné počítače
  • Ethernet / distribuované výpočty
  • GUI / počítačová myš / WYSIWYG

A v ARPA vytvorené ARPANET, ktorý sa stal predchodcom internetu.

PS Alan Kay odpovedá na otázky komunity Hacker News.

Zdroj: hab.com

Pridať komentár