Alan Kay, OOPren sortzailea, garapenari, Lisp eta OOPri buruz

Alan Kay, OOPren sortzailea, garapenari, Lisp eta OOPri buruz

Alan Kay-en berri inoiz ez baduzu entzun, bere aipamen ospetsuak behintzat entzun dituzu. Adibidez, 1971ko aipamen hau:

Etorkizuna aurreikusteko modurik onena asmatzea da.
Etorkizuna aurreikusteko modurik onena asmatzea da.

Alanek oso karrera koloretsua du informatikan. Jaso zuen Kyoto Saria ΠΈ Turing saria objektuetara zuzendutako programazioaren paradigmari buruz egindako lanagatik. Ordenagailu pertsonalen eta interfaze grafikoen arloan aitzindarietako bat izan zen, garatu zuen Eztabaida txikia Garai guztietako eragin handieneko lehen programazio-lengoaia da.

Gurean Hexlete, batez ere berriketan, "zer da OOP" eta "zer esan nahi zuen Alan Kay-ek benetan" galdera etengabe planteatzen da. Argitalpen honek Alan-en aipamen interesgarriak ditu garapen modernoaren egoerari, OOPari eta Lisp hizkuntzari buruz.

Software garapenari buruz

Alan Kay-ek uste du ordenagailuen iraultza etortzeke dagoela (Benetako ordenagailuen iraultza ez da oraindik gertatu), eta softwarearen garapena Mooreren Legearen alderantzizko proportzioan garatzen da: hardwarea urtero hobetzen da, baina softwarea alferrikako puztu egiten da:

arazoa ahula da, eskala eskaseko ideia eta tresnak, alferkeria, ezagutza falta, etab.

Egoera hau ondo deskribatzen du txantxa laburra:

Andyk ematen duena, Billek kentzen du
Andyk eman zuen, Billek hartu zuen

Andy Grove, Intel-eko zuzendari nagusia, eta Bill Gates, orduan Microsoft-eko zuzendari nagusia.

Gaur egungo garapen egoera hobetzea zen ikerketa proiektuaren helburua Programazioaren berrasmakuntzarako urratsak (pdf). Helburua "Mooreren Legea" adierazkortasunean lortzea da, "beharrezko kodea 100, 1000, 10000 aldiz edo gehiago murriztuz".

Bere erreportaje irekian Programazioa eta eskalatzea (bideoa) Gai hau zehatzago eztabaidatzen da. Alan-en arabera, softwarearen ingeniaritza gelditu egin da eta hardwarearekin eta beste zientzia eta ingeniaritza diziplinekin jarraitu ezin duen ahaztutako zientzia bihurtzen ari da. Proiektu handiak kode-zabortegi bihurtu dira eta puntu batera iritsi dira inork ez MS Vista edo MS Word kodearen 100 milioi lerro ulertu ezinik. Baina errealitatean, halako proiektuetan kode orden bat gutxiago egon beharko litzateke.

Alanek Internet, TCP/IP protokoloak, LISP interpreteak, kontuan hartzen ditu. Nile (Math DSL grafiko bektorialetarako) eta OMeta (OO PEG) (PDF) kode minimodun software dotoreen adibideak.

Internet (TCP/IP) deitzen du behar bezala diseinatutako eskala handiko software proiektu bakanetako bat, eta bere konplexutasun maila konplexutasun mailarekin (konplikazioa vs. konplexutasuna) oreka dago. 20 kode-lerro baino gutxiagorekin, proiektuak milaka milioi nodo onartzen dituen sistema bizi eta dinamiko gisa funtzionatzen du, eta 1969ko irailean abian jarri zenetik ez da inoiz lineaz kanpo utzi. Internet jendeak sortutako software proiektu normaltzat hartzeari utzi diogu:

Internet hain ondo garatuta dago, non jende askok baliabide natural bat bezala tratatzen du, Ozeano Barea bezala, giza lanaren produktua baino. Noiz ikusi genuen azken aldia horrelako teknologia egonkor, argi eta akatsik gabekoa? Alderatuz, Weba zentzugabekeria da. Sarea afizionatuek sortu zuten.

Objektuetara zuzendutako programazioari buruz

Interesatu ninduen lehenengo gauza berea izan zen jatorrizkoa OOP ikuspegia. Mikrobiologian izandako esperientziak zeregin garrantzitsua izan zuen:

Objektuak zelula biologikoak bezalakoak zirela pentsatu nuen, eta/edo mezuen bidez soilik komunika zitezkeen sare bateko ordenagailu indibidualak.

eta matematikan esperientzia:

Matematikan dudan esperientziak konturatu ninduen objektu bakoitzak hainbat aljebra izan ditzakeela, familietan konbina daitezkeela eta hau oso erabilgarria izan daitekeela.

LISParen lotura berandu eta meta-ezaugarri indartsuetarako ideiak:

Bigarren fasea LIPa ulertzea da eta ulermen hori erabiltzea egitura errazagoak, txikiagoak, indartsuagoak eta gero lotzeko.

Eta laster Alan hizkuntza dinamikoak direla ideia onartzen hasi zen software garapenaren etorkizuna (pdf). Bereziki, aldaketa erraztasuna garrantzitsua da berarentzat:

Lotura berantiarrari esker, garapen-prozesuan geroago etorritako ideiak proiektuan txerta daitezke esfortzu gutxiagorekin (aurreko sistema lotuekin alderatuta, C, C++, Java, etab.)

Eta aldaketak egiteko aukera eta iterazio azkarragoak:

Ideia gakoetako bat da sistemak probak egiten ari diren bitartean lanean jarraitu behar duela, batez ere aldaketak egiten diren bitartean. Aldaketa handiek ere pixkanaka-pixkanaka izan behar dute eta ez dute segundo zati bat baino gehiago behar.

barruan falta dena estatikoki idatzitako hizkuntzak:

Hasierako lotura-hizkuntzak erabiltzen badituzu, jende gehienek egiten duten moduan, orduan jada idatzitakoan blokeatzen zara. Jada ezin izango da erraz birformulatu.

Harrigarria bada ere, OOPri buruzko bere pentsamenduak horretara mugatu ziren:

Niretzat OOP mezuak, tokiko atxikipena eta babesa, egoera ezkutatzea eta dena berandu lotzea dira. Hau Smalltalk-en eta LISP-en egin daiteke.

Eta herentziari buruz ezer. Hau ez da OOP gaur ezagutzen duguna:

Aspaldi gai honetarako "objektu" terminoa erabili izana nahiko nuke, jende asko ideia txikietan zentratzea eragiten duelako.

Estatikoki idatzitako OO hizkuntza modernoek falta duten ideia handia:

Ideia handia "mezuak" dira

Objektu baten barnean baino gehiago mezuetan, akoplamendu solteetan eta modulu-interakzioetan zentratu behar dela uste du:

Sistema eskalagarri onak sortzeko gakoa moduluen arteko komunikazio-mekanismoak lantzea da, eta haien barne-propietateak eta portaera ez lantzea.

Estatikoki idatzitako hizkuntzak iruditzen zaizkio akastuna:

Ez nago moten aurka, baina ez dut minik eragiten ez duen sistema motarik ezagutzen. Beraz, idazketa dinamikoa gustatzen zait oraindik.

Gaur egungo hizkuntza ezagun batzuek Smalltalk-en mezuak ideiak transmititzen dituzte, berandu lotzen dituzte eta ez du ulertzenaurreragoDeia Π² Objective-Cmetodoa_falta Π² Ruby ΠΈ noSuchMethod Googlen Dardoak.

Dena suntsitu eta zerbait hobea sortu

Alanek teoria interesgarri bat dauka informatikaren garapenari buruz:

Iruditzen zait informatika mota bakarra dagoela, eta zientzia zubiak eraikitzea bezalakoa dela. Norbaitek zubiak eraikitzen ditu, eta norbaitek suntsitzen ditu eta teoria berriak sortzen ditu. Eta zubiak eraikitzen jarraitu behar dugu.

LISP buruz

Alan Kay-ek Lisp uste du

garai guztietako programazio-lengoaiarik onena

Eta informatikan lizentziatu guztiek ikasi behar dutela:

CS graduak egiten ari diren pertsona gehienek ez dute ulertzen Lisp-en garrantzia. Lisp informatikaren ideiarik garrantzitsuena da.

Giro eta testuinguru egokiari buruz

Askotan gogoratzen du giro paregabea Xerox PARKEA ΠΈ BARLEY, non "ikuspegia helburuak baino garrantzitsuagoa den" eta "pertsonak finantzatzea, ez proiektuak".

Ikuspegiak 80 IQ puntu balio ditu.

Alan Kay-ek dio:

ARPA/PARC istorioak erakusten du nola ikuspegiaren, finantzaketa xumearen, testuinguru eta prozesu egokiaren konbinazioak zibilizazioan eragina izateaz gain gizartearentzat balio izugarria sor dezaketen teknologia berriak magikoki sor ditzaketen.

Eta egia da. Begiratu PARCen asmakizunen zerrenda ikusgarriari, horietako askok oso paper garrantzitsua izan zuten gure munduaren garapenean. Adibidez:

  • Laser inprimagailuak
  • Objektuetara zuzendutako programazioa / Smalltalk
  • Ordenagailu pertsonalak
  • Ethernet / konputazio banatua
  • GUI / ordenagailuaren sagua / WYSIWYG

Eta BARLEY sortu ARPANET, Interneten arbaso bihurtu zena.

PS Alan Kay-ek Hacker News komunitatearen galderei erantzuten die.

Iturria: www.habr.com

Gehitu iruzkin berria