Alan Kay, ustvarjalec OOP, o razvoju, Lispu in OOP

Alan Kay, ustvarjalec OOP, o razvoju, Lispu in OOP

Če še nikoli niste slišali za Alana Kaya, ste vsaj slišali njegove slavne citate. Na primer, ta citat iz leta 1971:

Najboljši način za napovedovanje prihodnosti je, da si jo izmislimo.
Najboljši način za napovedovanje prihodnosti je, da si jo izmislite.

Alan ima zelo pestro kariero na področju računalništva. Prejel je Kjotska nagrada и Turingovo nagrado za svoje delo na paradigmi objektno usmerjenega programiranja. Bil je eden od pionirjev na področju osebnih računalnikov in grafičnih vmesnikov, ki jih je razvijal Majhen pogovor je eden prvih najvplivnejših programskih jezikov vseh časov.

V našem Hexlete, zlasti v klepet, se nenehno postavlja vprašanje "kaj je OOP" in "kaj je v resnici mislil Alan Kay". Ta objava vsebuje zanimive citate Alana o stanju sodobnega razvoja, OOP in jeziku Lisp.

O razvoju programske opreme

Alan Kay meni, da računalniška revolucija šele prihaja (Prava računalniška revolucija se še ni zgodila), razvoj programske opreme pa se razvija v obratnem sorazmerju z Moorovim zakonom: strojna oprema se vsako leto izboljša, programska oprema pa postane po nepotrebnem napihnjena:

problem so šibke, slabo razširljive ideje in orodja, lenoba, pomanjkanje znanja itd.

Dobro opisuje to situacijo kratka šala:

Kar Andy da, Bill vzame
Andy je dal, Bill je vzel

Andy Grove, izvršni direktor Intela, in Bill Gates, takratni izvršni direktor Microsofta.

Izboljšanje trenutnega stanja razvoja je bil cilj raziskovalnega projekta KORAKI K REINVENCIJI PROGRAMIRANJA (pdf). Cilj je doseči "Moorov zakon" v izraznosti z "zmanjšanjem količine zahtevane kode za 100, 1000, 10000-krat ali več."

V svojem osupljivem poročilu Programiranje in skaliranje (video) Ta tema je podrobneje obravnavana. Po besedah ​​Alana je programsko inženirstvo zastalo in postaja pozabljena veda, ki ne more dohajati strojne opreme ter drugih ved in inženirskih disciplin. Veliki projekti so postali odlagališča kod in dosegli točko, ko Nihče ne more razumeti 100 milijonov vrstic kode MS Vista ali MS Word. Toda v resnici bi moralo biti v takšnih projektih za red velikosti manj kode.

Alan meni, da so internet, protokoli TCP/IP, tolmači LISP, Nile (Math DSL za vektorsko grafiko) in OMeta (OO PEG) (PDF) primeri elegantne programske opreme z minimalno kodo.

Internet (TCP/IP) imenuje eden redkih obsežnih programskih projektov, ki je bil zasnovan pravilno, njegova stopnja kompleksnosti pa je v ravnotežju s stopnjo kompleksnosti (complication vs. complexity). Z manj kot 20 vrsticami kode projekt deluje kot živ, dinamičen sistem, ki lahko podpira milijarde vozlišč, in od svoje začetne uvedbe septembra 1969 ni nikoli prekinil povezave. Preprosto smo prenehali obravnavati internet kot običajen programski projekt, ki so ga ustvarili ljudje:

Internet je tako dobro razvit, da ga mnogi obravnavajo kot naravni vir, kot je Tihi ocean, in ne kot proizvod človeškega dela. Kdaj smo nazadnje videli tako stabilno, jasno tehnologijo brez napak? Za primerjavo, splet je nesmisel. Splet so ustvarili amaterji.

O objektno orientiranem programiranju

Prva stvar, ki me je zanimala, je bila njegova original OOP vizija. Njegove izkušnje v mikrobiologiji so imele pomembno vlogo:

O predmetih sem razmišljal kot o bioloških celicah in/ali posameznih računalnikih v omrežju, ki lahko komunicirajo samo prek sporočil.

in izkušnje z matematiko:

Moje matematične izkušnje so mi dale vedeti, da ima lahko vsak objekt več algeber, da jih je mogoče združiti v družine, kar je lahko zelo koristno.

Ideje za pozno vezavo in močne metafunkcije LISPa:

Druga faza je razumevanje LISPa in uporaba tega razumevanja za ustvarjanje lažjih, manjših, močnejših struktur in kasnejše vezave.

In kmalu je Alan začel podpirati idejo, da so dinamični jeziki prihodnost razvoja programske opreme (pdf). Zlasti mu je pomembna enostavnost spreminjanja:

Pozna vezava omogoča, da se ideje, ki so prišle pozneje v razvojnem procesu, vključijo v projekt z manj truda (v primerjavi s prejšnjimi vezanimi sistemi, kot so C, C++, Java itd.)

In potencial za sprotne spremembe in hitrejše ponovitve:

Ena od ključnih idej je, da mora sistem med testiranjem še naprej delovati, še posebej, ko se izvajajo spremembe. Tudi večje spremembe naj bodo postopne in ne bodo trajale več kot delček sekunde.

ki manjka v statično tipizirani jeziki:

Če uporabljate jezike z zgodnjo vezavo, kot to počne večina ljudi, se zaprete v to, kar ste že napisali. Ne bo ga več mogoče zlahka preoblikovati.

Presenetljivo so bile njegove misli o OOP omejene na to:

OOP so zame sporočila, lokalno zadržanje in zaščita, skrivanje stanja in pozno vezanje vsega. To je mogoče narediti v Smalltalku in LISP.

In nič o dedovanju. To ni OOP ki jih poznamo danes:

Želel bi si, da bi za to temo že zdavnaj uporabil izraz "objekt", ker se zaradi tega mnogi ljudje osredotočijo na manj pomembno idejo.

Velika ideja, ki manjka sodobnim statično tipkanim OO jezikom:

Velika ideja so "sporočila"

Verjame v osredotočanje na sporočila, ohlapno povezavo in interakcije modulov, ne pa na notranjost predmeta:

Ključ do ustvarjanja dobrih razširljivih sistemov je izdelava komunikacijskih mehanizmov med moduli in ne izdelava njihovih notranjih lastnosti in obnašanja.

Statično tipkani jeziki se mu zdijo okvarjen:

Nisem proti tipom, vendar ne poznam nobenega sistema tipov, ki ne povzroča bolečine. Tako da mi je še vedno všeč dinamično tipkanje.

Nekateri priljubljeni jeziki danes uporabljajo Smalltalkove ideje za posredovanje sporočil, pozno vezavo in neRazumeforwardInvocation в Cilj-Cmetoda_manjka в Ruby и noSuchMethod v Googlu Dart.

Uniči vse in ustvari nekaj boljšega

Alan ima zanimivo teorijo o razvoju računalništva:

Zdi se mi, da obstaja samo ena vrsta računalništva in da je znanost kot gradnja mostov. Nekdo gradi mostove, nekdo pa jih ruši in ustvarja nove teorije. In še naprej moramo graditi mostove.

O LISP

Alan Kay verjame v Lisp

najboljši programski jezik vseh časov

In da bi ga moral študirati vsak diplomant računalništva:

Večina ljudi, ki diplomirajo iz CS, ne razume pomena Lispa. Lisp je najpomembnejša ideja v računalništvu.

O pravem vzdušju in kontekstu

Pogosto spomni enkratno vzdušje v Xerox PARK и ARPA, kjer je »vizija pomembnejša od ciljev« in »financiranje ljudi, ne projektov«.

Pogled je vreden 80 IQ točk.

Alan Kay pravi:

Zgodba ARPA/PARC prikazuje, kako lahko kombinacija vizije, skromnega financiranja, pravega konteksta in procesa čudežno rodi nove tehnologije, ki ne le vplivajo na civilizacijo, temveč ustvarjajo tudi ogromno vrednost za družbo.

In res je. Oglejte si impresiven seznam izumov PARC, od katerih so mnoge igrale zelo pomembno vlogo pri razvoju našega sveta. Na primer:

  • Laserski tiskalniki
  • Objektno usmerjeno programiranje / Smalltalk
  • Osebni računalniki
  • Ethernet / porazdeljeno računalništvo
  • GUI / računalniška miška / WYSIWYG

In ARPA ustvaril ARPANET, ki je postal začetnik interneta.

PS Alan Kay odgovarja na vprašanja skupnosti Hacker News.

Vir: www.habr.com

Dodaj komentar