Alan Kay, muundaji wa OOP, kuhusu maendeleo, Lisp na OOP

Alan Kay, muundaji wa OOP, kuhusu maendeleo, Lisp na OOP

Ikiwa hujawahi kusikia kuhusu Alan Kay, angalau umesikia kuhusu nukuu zake maarufu. Kwa mfano, taarifa hii kutoka 1971:

Njia bora ya kutabiri siku zijazo ni kuunda.
Njia bora ya kutabiri siku zijazo ni kubuni.

Alan ana kazi nzuri sana katika sayansi ya kompyuta. Alipokea Tuzo la Kyoto ΠΈ Tuzo ya Turing kwa kazi yake juu ya dhana ya programu inayolengwa na kitu. Alikuwa mmoja wa waanzilishi katika uwanja wa kompyuta za kibinafsi na kiolesura cha picha, alichoendeleza Mazungumzo madogo Moja ya lugha za kwanza za ushawishi zaidi za wakati wote.

Tumeingia Hexlete, hasa katika gumzo, swali "OOP ni nini" na "nini Alan Kay alimaanisha" mara kwa mara huulizwa. Chapisho hili ni mkusanyiko wa dondoo za kuvutia kutoka kwa Alan kuhusu hali ya maendeleo ya kisasa, OOP, na lugha ya Lisp.

Kuhusu maendeleo ya programu

Alan Kay anaamini kwamba mapinduzi ya kompyuta bado yanakuja (Mapinduzi Halisi ya Kompyuta Bado Hayajatokea), na ukuzaji wa programu hubadilika kinyume na Sheria ya Moore: maunzi huwa bora kila mwaka, na programu huvimba bila sababu:

tatizo ni dhaifu, mawazo duni na zana, uvivu, ukosefu wa maarifa, nk.

Hali hii imeelezewa vizuri utani mfupi:

Nini Andy anatoa, Bill huchukua
Andy alitoa, Bill alichukua

Andy Grove, Mkurugenzi Mtendaji wa Intel, na Bill Gates, kisha Mkurugenzi Mtendaji wa Microsoft.

Kuboresha hali ya sasa ya maendeleo ilikuwa lengo la mradi wa utafiti HATUA Kuelekea Urejeshaji wa Kuandaa Programu (pdf). Lengo ni kufikia "Sheria ya Moore" kwa uwazi kwa "kupunguza kiasi cha kanuni zinazohitajika kwa mara 100, 1000, 10000 au zaidi."

Katika ripoti yake iliyofumbua macho Kupanga na Kuongeza (video) mada hii inajadiliwa kwa undani zaidi. Kulingana na Alan, uhandisi wa programu umekwama na inakuwa sayansi iliyosahaulika ambayo haiendani na vifaa, sayansi zingine na taaluma za uhandisi. Miradi mikubwa imekuwa utupaji wa kanuni na imefikia mahali hakuna haiwezi kuelewa laini milioni 100 za MS Vista au msimbo wa MS Word. Lakini kwa kweli, kanuni katika miradi kama hiyo inapaswa kuwa amri ya ukubwa mdogo.

Alan anazingatia mtandao, itifaki za TCP/IP, wakalimani wa LISP, Nile (Hisabati DSL ya Picha za Vekta) na OMeta (OO PEG) (PDF) mifano ya programu ya kifahari yenye msimbo mdogo.

Anaita Internet (TCP/IP) mojawapo ya miradi michache mikubwa ya programu ambayo imeundwa ipasavyo, na kiwango chake cha uchangamano kinawiana na kiwango cha utata (complication vs. complexity). Ukiwa na mistari ya chini ya 20 ya msimbo, mradi huu unaendeshwa kama mfumo hai, unaoweza kuhimili mabilioni ya nodi, na haujawahi kufungwa tangu ulipozinduliwa kwa mara ya kwanza Septemba 1969. Tumeacha kuzingatia Mtandao kama mradi wa kawaida wa programu iliyoundwa na watu:

Mtandao umeundwa vizuri sana hivi kwamba wengi huiona kuwa maliasili, kama vile Bahari ya Pasifiki, badala ya kuwa bidhaa ya kazi ya binadamu. Je, ni lini mara ya mwisho tulipoona teknolojia ambayo ilikuwa thabiti, safi na isiyo na makosa? Kwa kulinganisha, Mtandao ni wa ujinga. Wavuti iliundwa na wasomi.

Kuhusu upangaji unaolenga kitu

Jambo la kwanza lililonivutia lilikuwa lake awali maono ya OOP. Uzoefu wake katika biolojia ulichukua jukumu muhimu:

Nilifikiria vitu kama chembechembe za kibaolojia, na/au kompyuta binafsi kwenye mtandao inayoweza kuwasiliana kupitia ujumbe pekee.

na uzoefu katika hisabati:

Uzoefu wangu katika hisabati ulinifanya kuelewa kwamba kila kitu kinaweza kuwa na algebra kadhaa, zinaweza kuunganishwa katika familia, na hii inaweza kuwa muhimu sana.

Mawazo ya vipengele vya kuchelewa na vya nguvu vya meta vya LISPa:

Awamu ya pili ni kuelewa LISPa na kutumia ufahamu huo kuunda miundo bora zaidi, ndogo, na yenye nguvu zaidi na inayofunga baadaye.

Na hivi karibuni Alan alianza kuunga mkono wazo kwamba lugha zenye nguvu ni mustakabali wa ukuzaji wa programu (pdf). Hasa, urahisi wa mabadiliko ni muhimu kwake:

Kufunga kwa kuchelewa hurahisisha kujumuisha mawazo yanayokuja baadaye katika mchakato wa maendeleo katika mradi (ikilinganishwa na mifumo ya awali ya kumfunga kama C, C++, Java, n.k.)

Na uwezekano wa mabadiliko popote ulipo na marudio ya haraka:

Moja ya mawazo muhimu ni kwamba mfumo lazima uendelee kufanya kazi wakati wa kupima na hasa wakati wa mabadiliko. Hata mabadiliko makubwa yanapaswa kuwa ya ziada na kuchukua si zaidi ya sekunde iliyogawanyika.

ambayo inakosekana ndani lugha zilizopigwa chapa:

Ikiwa unatumia lugha zinazounganisha mapema, kama wengi wanavyofanya, basi unajifungia katika yale ambayo tayari umeandika. Si rahisi kuunda upya.

Kwa kushangaza, mawazo yake juu ya OOP yalipunguzwa kwa hii:

OOP kwangu ni ujumbe, kushikilia na ulinzi wa ndani, kufichwa kwa serikali na kuchelewa kwa kila kitu. Hii inaweza kufanywa katika Smalltalk na LISP.

Na hakuna chochote kuhusu urithi. Hii sio OOP ambayo tunaijua leo:

Samahani kwamba muda mrefu uliopita nilitumia neno "kitu" kwa mada hii kwa sababu husababisha watu wengi kuzingatia mawazo madogo.

Wazo kubwa ambalo lugha za kisasa zilizoandikwa kwa takwimu za OO hazina:

Wazo kubwa ni "ujumbe"

Anaamini kwamba lengo linapaswa kuwa juu ya ujumbe, uunganishaji huru, na mwingiliano wa moduli, na sio juu ya mambo ya ndani ya kitu:

Ufunguo wa kuunda mifumo mizuri inayoweza kupanuka ni kujua jinsi moduli zinavyowasiliana, sio kufanyia kazi sifa na tabia zao za ndani.

Lugha zilizochapwa tuli zinaonekana kwake kasoro:

Sipingani na aina, lakini sijui aina yoyote ya mfumo ambao hausababishi maumivu. Kwa hivyo bado napenda kuandika kwa nguvu.

Lugha kadhaa maarufu leo ​​hutumia mawazo ya kupitisha ujumbe wa Smalltalk, kufunga kwa kuchelewa, na muundo HaielewiMaombi ya mbele Π² Lengo-Cmbinu_haipo Π² Ruby ΠΈ noSuchMethod katika Google Dart.

Kuharibu kila kitu na kuunda kitu bora zaidi

Alan ana nadharia ya kuvutia juu ya maendeleo ya sayansi ya kompyuta:

Inaonekana kwangu kwamba kuna aina moja tu ya sayansi ya kompyuta, na kwamba sayansi ni kama kujenga madaraja. Mtu hujenga madaraja, na mtu huwaangamiza na kuunda nadharia mpya. Na tunahitaji kuendelea kujenga madaraja.

Kuhusu LISP

Alan Kay anamfikiria Lisp

lugha bora ya programu ya wakati wote

Na kwamba kila mhitimu katika sayansi ya kompyuta anapaswa kuisoma:

Watu wengi wanaopata digrii katika CS hawaelewi umuhimu wa Lisp. Lisp ni wazo muhimu zaidi katika sayansi ya kompyuta.

Kuhusu mazingira na muktadha sahihi

Mara nyingi anakumbuka hali ya kipekee ndani Xerox PARK ΠΈ Kinubi, ambapo "maono ni muhimu zaidi kuliko malengo" na "kufadhili watu, si miradi."

Mtazamo unatoa alama 80 za IQ.

Alan Kay anasema:

Hadithi ya ARPA/PARC inaonyesha jinsi mchanganyiko wa maono, ufadhili wa kiasi, muktadha na mchakato unaofaa unaweza kuzalisha teknolojia mpya ambazo sio tu huathiri ustaarabu, lakini kuunda thamani kubwa kwa jamii.

Na ni kweli. Angalia orodha ya kuvutia ya PARC ya uvumbuzi, nyingi zimekuwa na jukumu muhimu sana katika maendeleo ya ulimwengu wetu. Kwa mfano:

  • Printers za laser
  • Utayarishaji Unaoelekezwa na Kitu / Smalltalk
  • Kompyuta za kibinafsi
  • Ethernet / kompyuta iliyosambazwa
  • GUI / kipanya cha kompyuta / WYSIWYG

Na ndani Kinubi imeundwa ARPANET, ambayo ikawa mzalishaji wa mtandao.

PS Alan Kay anajibu maswali ya jamii Hacker News.

Chanzo: mapenzi.com

Kuongeza maoni