Alans Kejs, OOP radītājs, par attīstību, Lisp un OOP

Alans Kejs, OOP radītājs, par attīstību, Lisp un OOP

Ja jÅ«s nekad neesat dzirdējuÅ”i par Alanu Keju, jÅ«s vismaz esat dzirdējuÅ”i viņa slavenos citātus. Piemēram, Å”is citāts no 1971. gada:

Labākais veids, kā paredzēt nākotni, ir to izgudrot.
Labākais veids, kā paredzēt nākotni, ir to izgudrot.

Alanam ir ļoti krāsaina karjera datorzinātnēs. ViņŔ saņēma Kioto balva Šø TjÅ«ringa balva par viņa darbu pie objektorientētās programmÄ“Å”anas paradigmas. ViņŔ bija viens no pionieriem personālo datoru un grafisko saskarņu jomā, viņŔ izstrādāja Maza saruna ir viena no pirmajām visu laiku ietekmÄ«gākajām programmÄ“Å”anas valodām.

MÅ«su Hekslete, Ä«paÅ”i iekŔā čatā, pastāvÄ«gi tiek izvirzÄ«ti jautājumi ā€œkas ir OOPā€ un ā€œko Ä«sti nozÄ«mēja Alans Kejsā€. Å ajā ziņā ir interesanti Alana citāti par mÅ«sdienu attÄ«stÄ«bas stāvokli, OOP un Lisp valodu.

Par programmatūras izstrādi

Alans Kejs uzskata, ka datoru revolÅ«cija vēl tikai priekŔā (ÄŖstā datoru revolÅ«cija vēl nav notikusi), un programmatÅ«ras izstrāde attÄ«stās apgriezti proporcionāli MÅ«ra likumam: aparatÅ«ra katru gadu uzlabojas, bet programmatÅ«ra kļūst nevajadzÄ«gi uzpÅ«sta:

problēma ir vājas, slikti mērogojamas idejas un rÄ«ki, slinkums, zināŔanu trÅ«kums utt.

Labi raksturo Ŕo situāciju īss joks:

Ko Endijs dod, Bils atņem
Endijs deva, Bils paņēma

Endijs Grovs, Intel izpilddirektors, un Bils Geitss, toreizējais Microsoft izpilddirektors.

PaÅ”reizējā attÄ«stÄ«bas stāvokļa uzlaboÅ”ana bija pētÄ«juma projekta mērÄ·is SOÄ»I ceļā uz programmÄ“Å”anas atjaunoÅ”anu (pdf). MērÄ·is ir panākt "MÅ«ra likumu" izteiksmÄ«gumā, "samazinot nepiecieÅ”amā koda daudzumu par 100, 1000, 10000 XNUMX vai vairāk reižu".

Savā acis atveroÅ”ajā ziņojumā ProgrammÄ“Å”ana un mērogoÅ”ana (video) Å Ä« tēma tiek apspriesta sÄ«kāk. Pēc Alana teiktā, programmatÅ«ras inženierija ir apstājusies un kļūst par aizmirstu zinātni, kas nespēj sekot lÄ«dzi aparatÅ«rai un citām zinātnēm un inženierzinātņu disciplÄ«nām. Lielie projekti ir kļuvuÅ”i par kodu izgāztuvēm un sasnieguÅ”i punktu neviens nespēj saprast 100 miljonus MS Vista vai MS Word koda rindiņu. Bet patiesÄ«bā Ŕādos projektos vajadzētu bÅ«t par lielumu mazāk koda.

Alans apsver internetu, TCP/IP protokolus, LISP tulkus, Nile (matemātikas DSL vektorgrafikai) un OMEta (OO PEG) (PDF) elegantas programmatÅ«ras piemēri ar minimālu kodu.

Internetu (TCP/IP) viņŔ sauc par vienu no nedaudzajiem liela mēroga programmatÅ«ras projektiem, kas tika izstrādāts pareizi, un tā sarežģītÄ«bas lÄ«menis ir lÄ«dzsvarā ar sarežģītÄ«bas lÄ«meni (komplicēts pret sarežģītÄ«bu). Ar mazāk nekā 20 1969 koda rindiņu projekts darbojas kā dzÄ«va, dinamiska sistēma, kas spēj atbalstÄ«t miljardus mezglu, un kopÅ” tā sākotnējās palaiÅ”anas XNUMX. gada septembrÄ« nekad nav palicis bezsaistē. Mēs vienkārÅ”i pārstājām uzskatÄ«t internetu par parastu programmatÅ«ras projektu, ko radÄ«juÅ”i cilvēki:

Internets ir tik labi attīstīts, ka daudzi cilvēki to uzskata par dabas resursu, piemēram, Kluso okeānu, nevis cilvēku darba produktu. Kad pēdējo reizi mēs redzējām tik stabilu, skaidru, bez kļūdām tehnoloģiju? Salīdzinājumam, tīmeklis ir muļķības. Tīmekli izveidoja amatieri.

Par objektorientēto programmÄ“Å”anu

Pirmā lieta, kas mani ieinteresēja, bija viņa oriģināls OOP redzējums. Viņa pieredzei mikrobioloģijā bija svarīga loma:

Es domāju par objektiem kā kaut ko lÄ«dzÄ«gu bioloÄ£iskām Ŕūnām un/vai atseviŔķiem datoriem tÄ«klā, kas var sazināties tikai ar ziņojumu starpniecÄ«bu.

un pieredze matemātikā:

Mana pieredze matemātikā man lika saprast, ka katram objektam var būt vairākas algebras, tās var apvienot ģimenēs, un tas var ļoti noderēt.

Idejas vēlai iesieÅ”anai un spēcÄ«gām LIPa metafunkcijām:

Otrais posms ir LIPa izpratne un Ŕīs izpratnes izmantoÅ”ana, lai izveidotu vieglākas, mazākas, jaudÄ«gākas struktÅ«ras un vēlāku saistÄ«Å”anu.

Un drÄ«z Alans sāka atbalstÄ«t ideju, ka dinamiskās valodas ir programmatÅ«ras izstrādes nākotne (pdf). Jo Ä«paÅ”i viņam ir svarÄ«ga maiņas vieglums:

Vēlā saistÄ«Å”ana ļauj projektā iekļaut idejas, kas raduŔās vēlāk izstrādes procesā, ar mazāku piepÅ«li (salÄ«dzinājumā ar agrāk saistÄ«tajām sistēmām, piemēram, C, C++, Java utt.)

Un iespējamās izmaiņas lidojuma laikā un ātrākas iterācijas:

Viena no galvenajām idejām ir tāda, ka sistēmai jāturpina darboties testÄ“Å”anas laikā, it Ä«paÅ”i, kamēr tiek veiktas izmaiņas. Pat lielām izmaiņām vajadzētu bÅ«t pakāpeniskām un tām nevajadzētu aizņemt vairāk par sekundes daļu.

kas tajā trūkst statiski drukātas valodas:

Ja izmantojat agrÄ«nās saistoŔās valodas, kā to dara vairums cilvēku, jÅ«s ieslēdzaties tajā, ko jau esat uzrakstÄ«jis. To vairs nebÅ«s iespējams viegli pārformulēt.

PārsteidzoÅ”i, viņa domas par OOP aprobežojās ar Å”o:

Man OOP ir ziņojumi, vietēja aizturÄ“Å”ana un aizsardzÄ«ba, stāvokļa slēpÅ”ana un visa novēlota saistÄ«Å”ana. To var izdarÄ«t programmā Smalltalk un LISP.

Un nekas par mantojumu. Tas nav OOP ko mēs zinām Å”odien:

Es vēlos, lai es jau sen bÅ«tu lietojis terminu "objekts" Å”ai tēmai, jo tas liek daudziem cilvēkiem koncentrēties uz mazākajām idejām.

Lielā ideja, kuras trūkst mūsdienu statiski drukātajām OO valodām:

Galvenā ideja ir "ziņojumi"

ViņŔ uzskata, ka jākoncentrējas uz ziņojumiem, brÄ«vu savienojumu un moduļu mijiedarbÄ«bu, nevis uz objekta iekŔējiem elementiem:

Labu mērogojamu sistēmu izveides atslēga ir komunikācijas mehānismu izstrāde starp moduļiem, nevis to iekŔējo Ä«paŔību un uzvedÄ«bas izstrāde.

Viņam Ŕķiet statiski drukātas valodas defektÄ«vs:

Es neesmu pret tipiem, bet nezinu nevienu tipu sistēmu, kas nerada sāpes. Tāpēc man joprojām patÄ«k dinamiskā rakstÄ«Å”ana.

Dažas populāras valodas mÅ«sdienās izmanto Smalltalk ziņojumu nodoÅ”anas idejas, vēlu iesieÅ”anu un Nesaprotuz priekÅ”uAicinājums Š² MērÄ·is-Cmetodes_trÅ«kst Š² rubÄ«ns Šø noSuchMethod Google tÄ«klā Å”autra.

Iznīcini visu un izveido kaut ko labāku

Alanam ir interesanta teorija par datorzinātņu attīstību:

Man Ŕķiet, ka ir tikai viens datorzinātnes veids, un zinātne ir kā tiltu veidoÅ”ana. Kāds bÅ«vē tiltus, un kāds tos iznÄ«cina un rada jaunas teorijas. Un mums ir jāturpina bÅ«vēt tiltus.

Par LISP

Alans Kejs tic Lispam

visu laiku labākā programmÄ“Å”anas valoda

Un ka katram datorzinātņu absolventam tas būtu jāapgūst:

Lielākā daļa cilvēku, kas iegūst grādu CS, nesaprot Lisp nozīmi. Lisp ir vissvarīgākā ideja datorzinātnēs.

Par pareizo atmosfēru un kontekstu

ViņŔ bieži atceras unikālo atmosfēru Xerox PARK Šø Arfa, kur ā€œvÄ«zija ir svarÄ«gāka par mērÄ·iemā€ un ā€œfinansēt cilvēkus, nevis projektusā€.

Skata punkts ir 80 IQ punktu vērts.

Alans Kejs saka:

ARPA/PARC stāsts parāda, kā vīzijas, pieticīga finansējuma, pareizā konteksta un procesa kombinācija var maģiski radīt jaunas tehnoloģijas, kas ne tikai ietekmē civilizāciju, bet arī rada milzīgu vērtību sabiedrībai.

Un tā ir taisnÄ«ba. Apskatiet PARC iespaidÄ«go izgudrojumu sarakstu, no kuriem daudziem bija ļoti svarÄ«ga loma mÅ«su pasaules attÄ«stÄ«bā. Piemēram:

  • Lāzerprinteri
  • Objektorientētā programmÄ“Å”ana / Smalltalk
  • Personālie datori
  • Ethernet / sadalÄ«tā skaitļoÅ”ana
  • GUI / datora pele / WYSIWYG

Un Arfa izveidots ARPANET, kas kļuva par interneta priekÅ”teci.

PS Alans Kejs atbild uz Hacker News kopienas jautājumiem.

Avots: www.habr.com

Pievieno komentāru