Alan Kay, tiglalang sa OOP, bahin sa kalamboan, Lisp ug OOP

Alan Kay, tiglalang sa OOP, bahin sa kalamboan, Lisp ug OOP

Kung wala ka pa makadungog bahin ni Alan Kay, labing menos nakadungog ka sa iyang bantog nga mga kinutlo. Pananglitan, kini nga kinutlo gikan sa 1971:

Ang labing maayong paagi sa pagtagna sa umaabot mao ang pag-imbento niini.
Ang labing maayong paagi sa pagtagna sa umaabot mao ang pag-imbento niini.

Si Alan adunay usa ka mabulukon kaayo nga karera sa computer science. Iyang nadawat Kyoto Prize ΠΈ Turing Award alang sa iyang trabaho sa object-oriented programming paradigm. Usa siya sa mga pioneer sa natad sa personal nga mga kompyuter ug mga graphical interface, iyang gipalambo Gamay nga pakigpulong mao ang usa sa una nga labing impluwensyal nga programming language sa tanang panahon.

Sa among Hexlete, ilabi na sa chat, ang pangutana nga "unsa ang OOP" ug "unsa gyud ang gipasabut ni Alan Kay" kanunay nga gipatungha. Kini nga post naglangkob sa makapaikag nga mga kinutlo gikan ni Alan bahin sa kahimtang sa modernong pag-uswag, OOP ug ang Lisp nga sinultian.

Mahitungod sa pagpalambo sa software

Nagtuo si Alan Kay nga umaabot pa ang computer revolution (Ang Tinuod nga Rebolusyon sa Kompyuter Wala pa Mahitabo), ug ang pag-uswag sa software nag-uswag sa balit-ad nga proporsyon sa Balaod ni Moore: ang hardware mouswag matag tuig, apan ang software mahimong dili kinahanglan nga mobuak:

ang problema huyang, dili maayo nga scalable nga mga ideya ug himan, pagkatapulan, kakulang sa kahibalo, ug uban pa.

Gihulagway kini nga sitwasyon nga maayo mubo nga joke:

Ang gihatag ni Andy, gikuha ni Bill
Gihatag ni Andy, gikuha ni Bill

Andy Grove, CEO sa Intel, ug Bill Gates, dayon CEO sa Microsoft.

Ang pagpauswag sa kasamtangan nga kahimtang sa kalamboan mao ang tumong sa proyekto sa panukiduki MGA LAKANG Ngadto sa Reinvention sa Programming (pdf). Ang tumong mao ang pagkab-ot sa "Moore's Law" sa pagpahayag pinaagi sa "pagkunhod sa gidaghanon sa gikinahanglan nga code sa 100, 1000, 10000 ka beses o labaw pa."

Sa iyang pagbukas sa mata nga taho Programming ug Scaling (video) Kini nga hilisgutan gihisgutan sa mas detalyado. Sumala ni Alan, ang software engineering nahunong ug nahimong usa ka nakalimtan nga siyensya nga dili makasunod sa hardware ug uban pang mga siyensya ug disiplina sa engineering. Ang dagkong mga proyekto nahimong code dumps ug niabot sa punto diin walay usa dili makasabot sa 100 ka milyon nga linya sa MS Vista o MS Word code. Apan sa pagkatinuod, kinahanglan nga adunay usa ka han-ay sa magnitude nga mas gamay nga code sa maong mga proyekto.

Gikonsiderar ni Alan ang Internet, mga protocol sa TCP/IP, mga tighubad sa LISP, Nile (Math DSL para sa Vector Graphics) ug OMeta (OO PEG) (PDF) mga pananglitan sa elegante nga software nga adunay gamay nga code.

Gitawag niya ang Internet (TCP/IP) nga usa sa pipila ka dagkong mga proyekto sa software nga gidesinyo sa husto, ug ang lebel sa pagkakomplikado niini balanse sa lebel sa pagkakomplikado (complication vs. complexity). Uban sa ubos sa 20 ka linya sa code, ang proyekto naglihok isip usa ka buhi, dinamikong sistema nga makahimo sa pagsuporta sa bilyon-bilyon nga mga node, ug wala pa ma-offline sukad sa unang paglusad niini niadtong Septiyembre 1969. Gihunong ra namo ang pagkonsiderar sa Internet nga usa ka normal nga proyekto sa software nga gihimo sa mga tawo:

Ang Internet maayo kaayo nga naugmad nga daghang mga tawo ang nagtratar niini sama sa usa ka natural nga kahinguhaan, sama sa Dagat Pasipiko, kaysa usa ka produkto sa pagtrabaho sa tawo. Kanus-a ang katapusang higayon nga nakita namon ang ingon ka lig-on, klaro, wala’y sayup nga teknolohiya? Sa pagtandi, ang Web walay pulos. Ang web gihimo sa mga amateur.

Mahitungod sa object-oriented programming

Ang unang butang nga nakapainteres kanako mao ang iyaha orihinal OOP nga panan-awon. Ang iyang kasinatian sa microbiology adunay hinungdanon nga papel:

Naghunahuna ko sa mga butang sama sa biological nga mga selula, ug/o indibidwal nga mga kompyuter sa usa ka network nga makakomunikar lamang pinaagi sa mga mensahe.

ug kasinatian sa matematika:

Ang akong kasinatian sa matematika nakapaamgo kanako nga ang matag butang mahimong adunay daghang mga algebra, kini mahimong ihiusa sa mga pamilya, ug kini mahimong mapuslanon kaayo.

Mga ideya alang sa ulahi nga pagbugkos ug kusog nga meta-feature sa LISPa:

Ang ikaduhang hugna mao ang pagsabot sa LISPa ug paggamit niana nga pagsabot sa paghimo nga mas sayon, mas gamay, mas gamhanan nga mga istruktura ug sa ulahi nagbugkos.

Ug sa wala madugay si Alan nagsugod sa pagsuporta sa ideya nga ang dinamikong mga pinulongan ang kaugmaon sa software development (pdf). Sa partikular, ang kadali sa pagbag-o hinungdanon alang kaniya:

Ang ulahi nga pagbugkos nagtugot sa mga ideya nga moabut sa ulahi sa proseso sa pag-uswag nga ilakip sa proyekto nga adunay gamay nga paningkamot (itandi sa nauna nga mga sistema sama sa C, C ++, Java, ug uban pa)

Ug ang potensyal alang sa mga pagbag-o sa kadali ug mas paspas nga mga pag-uli:

Usa sa hinungdanon nga mga ideya mao nga ang sistema kinahanglan magpadayon sa pagtrabaho sa panahon sa pagsulay, labi na samtang gihimo ang mga pagbag-o. Bisan ang dagkong mga pagbag-o kinahanglan nga hinay-hinay ug dili molapas sa usa ka segundo.

nga kulang sa statically type nga mga pinulongan:

Kung mogamit ka og sayo nga mga pinulongan, sama sa gibuhat sa kadaghanan sa mga tawo, nan imong i-lock ang imong kaugalingon sa imong nasulat na. Dili na mahimo ang pag-reporma niini nga dali.

Katingad-an, ang iyang mga hunahuna bahin sa OOP limitado niini:

Ang OOP alang kanako mao ang mga mensahe, lokal nga paghupot ug pagpanalipod, pagtago sa estado ug ulahi nga pagbugkos sa tanan. Mahimo kini sa Smalltalk ug sa LISP.

Ug walay bisan unsa mahitungod sa kabilin. Dili kini ang OOP nga atong nahibaloan karon:

Nanghinaut ko nga gigamit nako ang termino nga "butang" alang niini nga hilisgutan sa dugay na nga panahon tungod kay kini hinungdan sa daghang mga tawo nga magpunting sa labing gamay nga mga ideya.

Ang dako nga ideya nga ang modernong statically typed OO nga mga pinulongan kulang:

Ang dako nga ideya mao ang "mga mensahe"

Nagtuo siya sa pag-focus sa mga mensahe, loose coupling, ug module interactions kay sa internals sa usa ka butang:

Ang yawe sa paghimo og maayo nga scalable nga mga sistema mao ang pagtrabaho sa mga mekanismo sa komunikasyon tali sa mga module, ug dili pagtrabaho sa ilang mga internal nga kabtangan ug pamatasan.

Ang mga static nga gi-type nga mga pinulongan ingon kaniya depektoso:

Dili ko supak sa mga tipo, pero wala ko kabalo sa bisan unsang klase nga sistema nga dili hinungdan sa kasakit. Mao nga ganahan gihapon ko sa dinamikong pag-type.

Ang pipila ka sikat nga mga pinulongan karon naggamit sa mga ideya sa pagpasa sa mensahe sa Smalltalk, ulahi nga pagbugkos, ug dili MakasabotforwardInvocation Π² Tumong-Cmethod_missing Π² Ruby ΠΈ walaySuchMethod sa Google igpalantig.

Gub-a ang tanan ug paghimo og mas maayo

Si Alan adunay usa ka makapaikag nga teorya bahin sa pag-uswag sa siyensya sa kompyuter:

Para nako adunay usa lamang ka matang sa siyensya sa kompyuter, ug ang siyensya sama sa pagtukod og mga tulay. Adunay nagtukod og mga taytayan, ug adunay usa nga nagguba niini ug nagmugna og bag-ong mga teorya. Ug kinahanglan nga magpadayon kita sa pagtukod og mga taytayan.

Mahitungod sa LISP

Nagtuo si Alan Kay ni Lisp

labing maayo nga programming language sa tanang panahon

Ug nga ang matag gradwado sa computer science kinahanglan nga magtuon niini:

Kadaghanan sa mga tawo nga nagtinguha sa mga degree sa CS wala makasabut sa kamahinungdanon sa Lisp. Lisp mao ang labing importante nga ideya sa computer science.

Mahitungod sa husto nga atmospera ug konteksto

Kanunay niyang mahinumduman ang talagsaon nga atmospera sa Xerox PARK ΠΈ Harp, diin ang "panan-awon mas importante kay sa mga tumong" ug "pagpondo sa mga tawo, dili mga proyekto."

Ang punto sa panglantaw nagkantidad og 80 IQ points.

Alan Kay nag-ingon:

Ang istorya sa ARPA/PARC nagpakita kon sa unsang paagi ang kombinasyon sa panan-awon, kasarangang pondo, hustong konteksto ug proseso makapatunghag mga bag-ong teknolohiya nga dili lang maka-epekto sa sibilisasyon kondili makamugna usab ug dakong bili sa katilingban.

Ug kini tinuod. Tan-awa ang impresibong listahan sa mga imbensyon sa PARC, nga daghan niini adunay importante kaayo nga papel sa pag-uswag sa atong kalibutan. Pananglitan:

  • Laser nga mga tig-imprenta
  • Object-Oriented Programming / Smalltalk
  • Personal nga mga kompyuter
  • Ethernet / giapod-apod nga kompyuter
  • GUI / computer mouse / WYSIWYG

Ug sa Harp gibuhat ARPANET, nga nahimong katigulangan sa Internet.

PS Gitubag ni Alan Kay ang mga pangutana gikan sa komunidad sa Hacker News.

Source: www.habr.com

Idugang sa usa ka comment