Alan Kay, creatore di OOP, circa u sviluppu, Lisp è OOP

Alan Kay, creatore di OOP, circa u sviluppu, Lisp è OOP

Se ùn avete mai intesu parlà di Alan Kay, avete almenu intesu e so famose citazioni. Per esempiu, sta citazione di u 1971:

U megliu modu di predichendu u futuru hè di inventà.
U megliu modu di predichendu u futuru hè di inventà.

Alan hà una carriera assai culurita in l'informatica. Hà ricevutu Premiu di Kyoto и Premiu Turing per u so travagliu nantu à u paradigma di prugrammazione orientata à l'ughjettu. Era unu di i pionieri in u campu di l'informatica persunale è l'interfaccia grafica, hà sviluppatu piccula conversazione hè unu di i primi linguaggi di prugrammazione più influenti di tutti i tempi.

In u nostru Hexlete, in particulare in chjachjarà, A quistione "chì hè OOP" è "chì significava veramente Alan Kay" hè sempre suscitatu. Questu post cuntene citazioni interessanti da Alan nantu à u statu di u sviluppu mudernu, OOP è a lingua Lisp.

Circa u sviluppu di software

Alan Kay crede chì a rivoluzione di l'informatica hè ancu da vene (A vera rivoluzione di l'informatica ùn hè ancu accaduta), è u sviluppu di u software si sviluppa in proporzione inversa à a Legge di Moore: u hardware migliora ogni annu, ma u software diventa inutilmente gonfiatu:

u prublema hè debbule, idee è arnesi pocu scalabili, pigrizia, mancanza di cunniscenza, etc.

Descrive bè sta situazione scherzu corta:

Ciò chì Andy dà, Bill piglia
Andy hà datu, Bill hà pigliatu

Andy Grove, CEO di Intel, è Bill Gates, allora CEO di Microsoft.

A migliurà u statu attuale di u sviluppu era u scopu di u prughjettu di ricerca PASSI versu a reinvenzione di a prugrammazione (pdf). U scopu hè di ottene "Legge di Moore" in l'espressività da "riducendu a quantità di codice necessariu da 100, 1000, 10000 volte o più".

In u so rapportu di apertura di l'ochji Programmazione è Scala (video) Stu tema hè discutitu in più detail. Sicondu Alan, l'ingegneria di u software s'hè stallatu è diventa una scienza scurdata chì ùn pò micca seguità cù hardware è altre scienze è discipline di l'ingenieria. I grandi prughjetti sò diventati dumps di codice è anu righjuntu un puntu induve nimu incapaci à capisce 100 milioni di linee di codice MS Vista o MS Word. Ma in realità, ci deve esse un ordine di grandezza menu codice in tali prughjetti.

Alan cunsidereghja Internet, protokolli TCP/IP, interpreti LISP, Nile (Math DSL per Vector Graphics) è OMeta (OO PEG) (PDF) esempi di software eleganti cù codice minimu.

Chjama l'Internet (TCP / IP) unu di i pochi prughjetti di software à grande scala chì hè statu cuncepitu currettamente, è u so livellu di cumplessità hè in equilibriu cù u livellu di cumplessità (cumplicazione vs cumplessità). Cù menu di 20 1969 linee di codice, u prughjettu opera cum'è un sistema vivu è dinamicu capace di sustene miliardi di nodi, è ùn hè mai andatu offline da u so lanciu iniziale in settembre di u XNUMX. Avemu solu cessatu di cunsiderà l'Internet per esse un prughjettu di software normale creatu da e persone:

L'Internet hè cusì bè sviluppatu chì assai persone u trattanu cum'è una risorsa naturale, cum'è l'Oceanu Pacificu, piuttostu cà un pruduttu di u travagliu umanu. Quandu era l'ultima volta chì avemu vistu una tecnulugia cusì stabile, chjara è senza errore? In cunfrontu, u Web hè assuciatu. U web hè statu creatu da amatori.

Circa a prugrammazione orientata à l'ughjettu

U primu chì m'interessava era u so uriginale Visione OOP. A so sperienza in microbiologia hà ghjucatu un rolu impurtante:

Pensu à l'uggetti cum'è e cellule biologiche, è / o l'urdinatori individuali in una reta chì puderia cumunicà solu per mezu di missaghji.

è sperienza in matematica:

A mo spirienza in matematica m'hà fattu capisce chì ogni ughjettu pò avè parechje algebres, ponu esse cumminati in famiglie, è questu pò esse assai utile.

Idee per a rilegatura tardiva è putenti meta-caratteristiche di LISPa:

A seconda fase hè di capiscenu a LISPa è aduprà sta cunniscenza per creà strutture più faciuli, più chjuche, più putenti è più tardi ubligatori.

E prestu Alan hà cuminciatu à sustene l'idea chì e lingue dinamiche sò u futuru di u sviluppu di software (pdf). In particulare, a facilità di cambià hè impurtante per ellu:

Late binding permette à l'idee chì venenu più tardi in u prucessu di sviluppu per esse incorporate in u prugettu cù menu sforzu (in paragone à i sistemi prima ligate cum'è C, C++, Java, etc.)

È u putenziale di cambiamenti à a mosca è iterazioni più veloci:

Una di l'idee chjave hè chì u sistema deve cuntinuà à travaglià durante a prova, soprattuttu mentre i cambiamenti sò fatti. Ancu i cambiamenti maiò deve esse graduali è ùn piglià micca più di una split second.

chì manca in lingue tipizzate staticamente:

Sè vo aduprate lingue di prima volta, cum'è a maiò parte di a ghjente, allora vi chjude in ciò chì avete digià scrittu. Ùn serà più pussibule di riformulallu facilmente.

Sorprendentemente, i so pinsamenti nantu à l'OOP eranu limitati à questu:

OOP per mè hè messagi, mantene è prutegge lucale, nasconde statale è rilegatura tardiva di tuttu. Questu pò esse fattu in Smalltalk è in LISP.

È nunda di l'eredità. Questu ùn hè micca l'OOP chì sapemu oghje:

Mi piacerebbe avè usatu u terminu "ughjettu" per questu tema assai tempu fà perchè face parechje persone per fucalizza nantu à u menu di l'idee.

A grande idea chì i lingui OO moderni tipati staticamente mancanu:

A grande idea hè "messages"

Crede in fucalizza nantu à i missaghji, l'accoppiamentu scioltu è l'interazzione di moduli piuttostu cà nantu à l'internu di un oggettu:

A chjave per creà boni sistemi scalabili hè di travaglià i miccanismi di cumunicazione trà i moduli, è micca di travaglià e so proprietà internu è u cumpurtamentu.

Lingui scritti staticamente li parenu difettu:

Ùn sò micca contru à i tipi, ma ùn cunnosci micca un sistema di tipu chì ùn causa micca dolore. Allora mi piace sempre a scrittura dinamica.

Alcune lingue populari oghje utilizanu u messagiu di Smalltalk chì passa idee, rilegatura tardiva, è ùn capisce miccaavantiInvocation в Objective-Cmethod_missing в Ruby и noSuch Method in Google Dart.

Distrughje tuttu è crea qualcosa di megliu

Alan hà una teoria interessante nantu à u sviluppu di l'informatica:

Mi pare chì ci hè solu un tipu d'informatica, è chì a scienza hè cum'è a custruzzione di ponti. Qualchissia custruisce ponti, è qualchissia li distrugge è crea novi teorii. È avemu bisognu di cuntinuà à custruisce ponti.

À propositu di LISP

Alan Kay crede Lisp

megliu lingua di prugrammazione di tutti i tempi

È chì ogni graduatu in informatica duveria studià:

A maiò parte di e persone perseguite i gradi in CS ùn capiscenu micca l'impurtanza di Lisp. Lisp hè l'idea più impurtante in l'informatica.

Circa l'atmosfera è u cuntestu ghjustu

Spessu ricorda l'atmosfera unica in Xerox PARK и Arpa, induve "a visione hè più impurtante chè i scopi" è "finanzià e persone, micca prughjetti".

U puntu di vista vale 80 punti IQ.

Alan Kay dice:

A storia ARPA / PARC dimustra cumu una cumminazione di visione, finanziamentu modestu, u cuntestu ghjustu è u prucessu pò magicamente nascite novi tecnulugii chì ùn solu impactanu a civiltà, ma ancu creanu un valore enormu per a società.

È hè vera. Fighjate à l'impressionante lista di invenzioni di PARC, assai di quali hà ghjucatu un rolu assai impurtante in u sviluppu di u nostru mondu. Per esempiu:

  • Stampanti laser
  • Programmazione orientata à l'ughjettu / Smalltalk
  • Computers persunali
  • Ethernet / informatica distribuita
  • GUI / mouse di l'urdinatore / WYSIWYG

E in Arpa creatu ARPANET, chì divintò u progenitore di l'Internet.

PS Alan Kay risponde à e dumande da a cumunità Hacker News.

Source: www.habr.com

Add a comment