Dacă nu ai auzit niciodată de Alan Kay, ai auzit cel puțin citatele lui celebre. De exemplu, acest citat din 1971:
Cel mai bun mod de a prezice viitorul este să-l inventezi.
Cel mai bun mod de a prezice viitorul este să-l inventezi.
Alan are o carieră foarte colorată în informatică. El a primit
Avem în
Despre dezvoltarea de software
Alan Kay crede că revoluția computerelor urmează să vină (
problema este slabă, idei și instrumente slab scalabile, lenea, lipsa de cunoștințe etc.
Descrie bine această situație
Ceea ce dă Andy, Bill ia
Andy a dat, Bill a luat
Andy Grove, CEO al Intel și Bill Gates, atunci CEO al Microsoft.
Îmbunătățirea stării actuale de dezvoltare a fost scopul proiectului de cercetare
În raportul său revelator
Alan ia în considerare Internetul, protocoalele TCP/IP, interpreții LISP,
El numește Internetul (TCP/IP) unul dintre puținele proiecte software la scară largă care a fost proiectat corect, iar nivelul său de complexitate este în echilibru cu nivelul de complexitate (complicație vs. complexitate). Cu mai puțin de 20 de linii de cod, proiectul funcționează ca un sistem viu, dinamic, capabil să suporte miliarde de noduri și nu a fost niciodată offline de la lansarea sa inițială în septembrie 1969. Pur și simplu am încetat să considerăm că Internetul este un proiect software normal creat de oameni:
Internetul este atât de bine dezvoltat încât mulți oameni îl tratează mai degrabă ca pe o resursă naturală, precum Oceanul Pacific, decât ca pe un produs al muncii umane. Când a fost ultima dată când am văzut o astfel de tehnologie stabilă, clară, fără erori? Prin comparație, Web-ul este o prostie. Web-ul a fost creat de amatori.
Despre programarea orientată pe obiecte
Primul lucru care m-a interesat a fost al lui
M-am gândit la obiecte ca celule biologice și/sau computere individuale dintr-o rețea care ar putea comunica doar prin mesaje.
și experiență în matematică:
Experiența mea în matematică m-a făcut să realizez că fiecare obiect poate avea mai multe algebre, acestea pot fi combinate în familii, iar acest lucru poate fi foarte util.
Idei pentru legarea tardivă și meta-funcții puternice ale LISPa:
A doua fază este înțelegerea LISPa și utilizarea acestei înțelegeri pentru a crea structuri mai ușoare, mai mici, mai puternice și mai târziu legarea.
Și curând Alan a început să susțină ideea că limbile dinamice sunt
Legarea tardivă permite ca ideile care au venit mai târziu în procesul de dezvoltare să fie încorporate în proiect cu mai puțin efort (comparativ cu sistemele anterioare legate precum C, C++, Java etc.)
Și potențialul de schimbări din mers și iterații mai rapide:
Una dintre ideile cheie este că sistemul ar trebui să continue să funcționeze în timpul testării, mai ales în timp ce se fac modificări. Chiar și schimbările majore ar trebui să fie treptate și să nu dureze mai mult de o fracțiune de secundă.
care lipsește în
Dacă utilizați limbaje de legare timpurie, așa cum o fac majoritatea oamenilor, atunci vă blocați în ceea ce ați scris deja. Nu se va mai putea reformula cu ușurință.
În mod surprinzător, gândurile sale despre OOP s-au limitat la asta:
OOP pentru mine este mesaje, reținere și protecție locală, ascunderea statului și legarea cu întârziere a tuturor. Acest lucru se poate face în Smalltalk și în LISP.
Și nimic despre moștenire. Acesta nu este OOP
Mi-aș fi dorit să fi folosit termenul „obiect” pentru acest subiect cu mult timp în urmă, deoarece îi determină pe mulți să se concentreze asupra ideilor mai mici.
Ideea cea mare care lipsește limbilor moderne OO tipizate static:
Ideea mare sunt „mesajele”
El crede în concentrarea pe mesaje, cuplarea liberă și interacțiunile cu module, mai degrabă decât pe interiorul unui obiect:
Cheia pentru crearea unor sisteme scalabile bune este elaborarea mecanismelor de comunicare între module și nu elaborarea proprietăților și comportamentului lor intern.
I se par limbi scrise static
Nu sunt împotriva tipurilor, dar nu cunosc vreun sistem tip care să nu provoace durere. Deci încă îmi place tastarea dinamică.
Unele limbi populare folosesc astăzi ideile de transmitere a mesajelor Smalltalk, legarea tardivă și
Distruge totul și creează ceva mai bun
Alan are o teorie interesantă despre dezvoltarea informaticii:
Mi se pare că există un singur tip de informatică și că știința este ca și cum a construi punți. Cineva construiește punți, iar cineva le distruge și creează noi teorii. Și trebuie să continuăm să construim poduri.
Despre LISP
Alan Kay îl crede pe Lisp
cel mai bun limbaj de programare din toate timpurile
Și că fiecare absolvent de informatică ar trebui să o studieze:
Majoritatea oamenilor care urmează diplome în CS nu înțeleg importanța Lisp. Lisp este cea mai importantă idee din informatică.
Despre atmosfera și contextul potrivit
Își amintește adesea atmosfera unică din
Punctul de vedere valorează 80 de puncte IQ.
Alan Kay spune:
Povestea ARPA/PARC demonstrează cum o combinație de viziune, finanțare modestă, contextul și procesul potrivit pot da naștere magică a noilor tehnologii care nu numai că influențează civilizația, ci și creează o valoare enormă pentru societate.
Și este adevărat.
- Imprimante laser
- Programare orientată pe obiecte / Smalltalk
- Calculatoare personale
- Ethernet / calcul distribuit
- GUI / mouse de computer / WYSIWYG
Și în
PS
Sursa: www.habr.com