Alan Kay, skepper fan OOP, oer ûntwikkeling, Lisp en OOP

Alan Kay, skepper fan OOP, oer ûntwikkeling, Lisp en OOP

As jo ​​noch noait fan Alan Kay heard hawwe, hawwe jo teminsten syn ferneamde sitaten heard. Bygelyks dit sitaat út 1971:

De bêste manier om de takomst te foarsizzen is it útfine.
De bêste manier om de takomst te foarsizzen is it útfine.

Alan hat in heul kleurrike karriêre yn kompjûterwittenskip. Hy krige Kyoto Priis и Turing Award foar syn wurk oan it objekt-rjochte programmearring paradigma. Hy wie ien fan de pioniers op it mêd fan persoanlike kompjûters en grafyske ynterfaces, hy ûntwikkele Lyts petear is ien fan 'e earste meast ynfloedrike programmeartalen fan alle tiden.

Yn ús Hekslete, benammen yn petear, De fraach "wat is OOP" en "wat betsjutte Alan Kay echt" wurdt hieltyd opheven. Dizze post befettet ynteressante sitaten fan Alan oer de steat fan moderne ûntwikkeling, OOP en de Lisp-taal.

Oer softwareûntwikkeling

Alan Kay is fan betinken dat de kompjûterrevolúsje noch komt (De echte kompjûterrevolúsje is noch net bard), en softwareûntwikkeling ûntwikkelet yn omkearde ferhâlding mei Moore's Law: hardware ferbetteret elk jier, mar software wurdt ûnnedich opblaasd:

it probleem is swak, min skaalberbere ideeën en ark, luiheid, gebrek oan kennis, ensfh.

Beskriuwt dizze situaasje goed koarte grap:

Wat Andy jout, nimt Bill fuort
Andy joech, Bill naam

Andy Grove, CEO fan Intel, en Bill Gates, doe CEO fan Microsoft.

It ferbetterjen fan de hjoeddeistige steat fan ûntwikkeling wie it doel fan it ûndersyksprojekt STAPPEN nei de werynfining fan programmearring (pdf). It doel is om "Moore's Law" te berikken yn ekspressiviteit troch "it ferminderjen fan it bedrach fan fereaske koade troch 100, 1000, 10000 kear of mear."

Yn syn each-opening report Programmearje en skaalfergrutting (fideo) Dit ûnderwerp wurdt besprutsen yn mear detail. Neffens Alan is software-engineering stilstien en wurdt in fergetten wittenskip dy't net byhâlde kin mei hardware en oare wittenskippen en yngenieurdissiplines. Grutte projekten binne wurden koade dumps en hawwe berikt in punt dêr't gjinien net yn steat om 100 miljoen rigels fan MS Vista of MS Word-koade te begripen. Mar yn werklikheid soe d'r in folchoarder fan grutte minder koade wêze moatte yn sokke projekten.

Alan beskôget it ynternet, TCP/IP-protokollen, LISP-tolken, Nile (Math DSL foar Vector Graphics) en OMeta (OO PEG) (PDF) foarbylden fan elegante software mei minimale koade.

Hy neamt it ynternet (TCP / IP) ien fan de pear grutskalige software projekten dy't waard ûntwurpen goed, en syn nivo fan kompleksiteit is yn lykwicht mei it nivo fan kompleksiteit (komplikaasje vs. kompleksiteit). Mei minder dan 20 rigels koade wurket it projekt as in libbend, dynamysk systeem dat miljarden knooppunten kin stypje, en is sûnt syn earste lansearring yn septimber 1969 nea offline gien. Wy stopten gewoan mei it beskôgjen fan it ynternet as in normaal softwareprojekt makke troch minsken:

It ynternet is sa goed ûntwikkele dat in protte minsken it behannelje as in natuerlike boarne, lykas de Stille Oseaan, ynstee fan in produkt fan minsklike arbeid. Wannear wie de lêste kear dat wy sa'n stabile, dúdlike, flaterfrije technology seagen? By fergeliking is it web ûnsin. It web is makke troch amateurs.

Oer objekt-rjochte programmearring

It earste ding dat my ynteressearre wie syn oarspronklik OOP vision. Syn ûnderfining yn mikrobiology spile in wichtige rol:

Ik tocht oan objekten as biologyske sellen, en / of yndividuele kompjûters op in netwurk dat allinnich koe kommunisearje fia berjochten.

en ûnderfining yn wiskunde:

Myn ûnderfining yn 'e wiskunde makke my te realisearjen dat elk objekt ferskate algebra's kin hawwe, se kinne wurde kombineare yn famyljes, en dit kin heul nuttich wêze.

Ideeën foar lette bining en krêftige meta-funksjes fan LISPa:

De twadde faze is it begripen fan LISPa en it brûken fan dat begryp om makliker, lytsere, machtiger struktueren en letter bining te meitsjen.

En al gau begon Alan it idee te stypjen dat dynamyske talen binne De takomst fan softwareûntwikkeling (pdf). Benammen it gemak fan feroaring is wichtich foar him:

Lette bining lit ideeën dy't letter yn it ûntwikkelingsproses kamen mei minder ynspanning yn it projekt wurde opnaam (yn ferliking mei eardere bûnte systemen lykas C, C++, Java, ensfh.)

En it potinsjeel foar feroaringen op 'e flecht en rappere iteraasjes:

Ien fan 'e wichtichste ideeën is dat it systeem moat trochgean te operearjen tidens testen, foaral wylst feroarings wurde makke. Sels grutte feroarings moatte stadichoan wêze en net mear nimme as in split sekonde.

dy't mist yn statysk typte talen:

As jo ​​​​betiid-binende talen brûke, lykas de measte minsken dogge, dan slute jo jo op yn wat jo al skreaun hawwe. It sil net mear maklik te herformuleren wêze.

Ferrassend wiene syn gedachten oer OOP beheind ta dit:

OOP foar my is berjochten, lokale hold en beskermje, steat hiding en lette bining fan alles. Dit kin dien wurde yn Smalltalk en yn LISP.

En neat oer erfenis. Dit is net de OOP dy't wy hjoed kenne:

Ik winskje dat ik de term "objekt" lang lyn brûkt hie foar dit ûnderwerp, om't it feroarsaket dat in protte minsken har rjochtsje op it minste fan 'e ideeën.

It grutte idee dat moderne statysk typte OO-talen ûntbrekt:

It grutte idee is "berjochten"

Hy leaut yn it fokusjen op berjochten, losse keppeling en module-ynteraksjes ynstee fan op 'e ynterne fan in objekt:

De kaai foar it meitsjen fan goede scalable systemen is it útwurkjen fan de kommunikaasje meganismen tusken modules, en net wurkje út harren ynterne eigenskippen en gedrach.

Statysk typte talen lykje him defect:

Ik bin net tsjin typen, mar ik wit net fan in type systeem dat net feroarsaket pine. Dus ik hâld noch altyd fan dynamysk typen.

Guon populêre talen brûke hjoeddedei Smalltalk's berjocht trochjaan fan ideeën, lette bining, en begrypt netfoarútInvocation в Objective-Cmethod_missing в Ruby и noSuchMethod yn Google dart.

Alles ferneatigje en wat better meitsje

Alan hat in nijsgjirrige teory oer de ûntwikkeling fan kompjûterwittenskip:

It liket my ta dat der mar ien soarte fan kompjûterwittenskip is, en dat wittenskip is as it bouwen fan brêgen. Immen bout brêgen, en immen ferneatiget se en skept nije teoryen. En wy moatte brêgen bouwe.

Oer LISP

Alan Kay leaut Lisp

bêste programmeartaal fan alle tiden

En dat elke ôfstudearre kompjûterwittenskip it moat studearje:

De measte minsken dy't graden folgje yn CS begripe it belang fan Lisp net. Lisp is it wichtichste idee yn kompjûterwittenskip.

Oer de juste sfear en kontekst

Hy herinnert faaks de unike sfear yn Xerox PARK и Harp, wêr't "fisy wichtiger is dan doelen" en "minsken finansierje, gjin projekten."

Point of view is wurdich 80 IQ punten.

Alan Kay seit:

It ARPA/PARC-ferhaal lit sjen hoe't in kombinaasje fan fyzje, beskieden finansiering, de juste kontekst en proses op magyske wize nije technologyen berte kinne dy't net allinich de beskaving beynfloedzje, mar ek enoarme wearde meitsje foar de maatskippij.

En it is wier. Besjoch de yndrukwekkende list fan útfinings fan PARC, wêrfan in protte in tige wichtige rol spile yn 'e ûntwikkeling fan ús wrâld. Bygelyks:

  • Laser printers
  • Objekt-rjochte programmearring / Smalltalk
  • Persoanlike kompjûters
  • Ethernet / ferspraat computing
  • GUI / kompjûter mûs / WYSIWYG

En yn Harp makke ARPANET, dy't de foarfaar fan it ynternet waard.

PS Alan Kay beantwurdet fragen fan 'e Hacker News-mienskip.

Boarne: www.habr.com

Add a comment