Alan Kay, tus tsim ntawm OOP, hais txog kev txhim kho, Lisp thiab OOP

Alan Kay, tus tsim ntawm OOP, hais txog kev txhim kho, Lisp thiab OOP

Yog tias koj tsis tau hnov ​​​​txog Alan Kay, tsawg kawg koj tau hnov ​​​​nws cov lus nto moo. Piv txwv li, lo lus no los ntawm 1971:

Txoj hauv kev zoo tshaj plaws los twv seb yav tom ntej yog los tsim nws.
Txoj hauv kev zoo tshaj plaws los twv seb yav tom ntej yog los tsim nws.

Alan muaj xim zoo nkauj heev hauv computer science. Nws tau txais Kyoto nqi zog и Turing Award rau nws txoj haujlwm ntawm cov khoom-oriented programming paradigm. Nws yog ib tug ntawm cov pioneers nyob rau hauv lub tshav pob ntawm tus kheej computers thiab graphical interfaces, nws tsim Tham me me yog ib qho ntawm thawj feem cuam tshuam cov lus programming txhua lub sijhawm.

Hauv peb Hexlete, tshwj xeeb hauv sib tham, lo lus nug "OOP yog dab tsi" thiab "Alan Kay tiag tiag txhais li cas" tau tsa los tas li. Cov ntawv tshaj tawm no muaj cov lus nthuav tawm los ntawm Alan txog lub xeev ntawm kev txhim kho niaj hnub no, OOP thiab lus Lisp.

Hais txog kev txhim kho software

Alan Kay ntseeg hais tias lub kiv puag ncig lub computer tseem tab tom los (Qhov tiag Computer Revolution tseem tsis tau tshwm sim), thiab kev txhim kho software txhim kho nyob rau hauv qhov sib piv rau Moore Txoj Cai: kho vajtse txhim kho txhua xyoo, tab sis software ua tsis tsim nyog bloated:

qhov teeb meem yog qaug zog, tsis zoo scalable tswv yim thiab cov cuab yeej, tub nkeeg, tsis paub, thiab lwm yam.

Piav qhov xwm txheej no zoo luv luv:

Yam dab tsi Andy muab, Bill coj mus
Andy muab, Bill coj

Andy Grove, CEO ntawm Intel, thiab Bill Gates, tom qab ntawd CEO ntawm Microsoft.

Txhim kho lub xeev tam sim no ntawm kev txhim kho yog lub hom phiaj ntawm kev tshawb fawb qhov project CEEB TOOM Rau Kev Rov Ua Haujlwm ntawm Kev Ua Haujlwm (pdf). Lub hom phiaj yog kom ua tiav "Moore Txoj Cai" hauv kev nthuav tawm los ntawm "txo cov lej uas yuav tsum tau ua los ntawm 100, 1000, 10000 zaug lossis ntau dua."

Nyob rau hauv nws daim ntawv qhia qhov muag qhib Programming thiab Scaling (Video) Lub ntsiab lus no tau tham ntau yam ntxiv. Raws li Alan, software engineering tau nres thiab tab tom dhau los ua kev tshawb fawb tsis nco qab uas tsis tuaj yeem nrog kho vajtse thiab lwm yam kev kawm thiab kev qhuab qhia engineering. Cov phiaj xwm loj tau dhau los ua cov ntawv pov tseg thiab tau mus txog qhov chaw tsis muaj leej twg tsis tuaj yeem nkag siab 100 lab kab ntawm MS Vista lossis MS Word code. Tab sis nyob rau hauv kev muaj tiag, yuav tsum muaj ib tug txiav txim ntawm magnitude tsawg code nyob rau hauv xws li tej yaam num.

Alan xav txog Internet, TCP/IP raws tu qauv, LISP neeg txhais lus, Nile ( lej DSL rau Vector Graphics) thiab OMeta (OO PEG) (PDF) piv txwv ntawm elegant software nrog tsawg code.

Nws hu rau Is Taws Nem (TCP/IP) yog ib qho ntawm ob peb qhov loj-teev software tej yaam num uas tau tsim kom raug, thiab nws theem ntawm complexity yog sib npaug nrog rau theem ntawm complexity (complication vs. complexity). Nrog tsawg dua 20 kab ntawm txoj cai, qhov project ua haujlwm raws li kev ua neej nyob, lub zog muaj peev xwm txhawb nqa ntau lab ntawm cov nodes, thiab tsis tau mus offline txij li thaum nws pib pib thaum lub Cuaj Hlis 1969. Peb tsuas tso tseg kev xav hauv Is Taws Nem los ua ib qho software ib txwm tsim los ntawm tib neeg:

Is Taws Nem tsim tau zoo heev uas ntau tus neeg kho nws zoo li cov peev txheej ntuj, xws li Dej Hiav Txwv Pacific, tsis yog khoom ntawm tib neeg kev ua haujlwm. Thaum twg yog zaum kawg peb pom xws li ruaj khov, meej, tsis muaj kev ua yuam kev thev naus laus zis? Los ntawm kev sib piv, Web yog tsis muaj tseeb. Lub vev xaib tau tsim los ntawm amateurs.

Hais txog object-oriented programming

Thawj qhov uas kuv nyiam yog nws tus thawj OOP kev pom. Nws kev paub hauv microbiology tau ua lub luag haujlwm tseem ceeb:

Kuv xav txog cov khoom xws li cov hlwb, thiab/lossis ib lub khoos phis tawj ntawm lub network uas tuaj yeem sib txuas lus los ntawm cov lus.

thiab kev paub hauv lej:

Kuv qhov kev paub txog lej ua rau kuv paub tias txhua yam khoom muaj peev xwm muaj ob peb algebras, lawv tuaj yeem ua ke rau hauv tsev neeg, thiab qhov no tuaj yeem muaj txiaj ntsig zoo.

Cov tswv yim rau kev khi lig thiab muaj zog meta-features ntawm LISPa:

Qhov thib ob yog nkag siab LISPa thiab siv qhov kev nkag siab ntawd los tsim kom yooj yim dua, me dua, muaj zog dua cov qauv thiab tom qab ntawd khi.

Thiab tsis ntev Alan pib txhawb lub tswv yim hais tias cov lus dynamic yog yav tom ntej ntawm kev txhim kho software (pdf). Tshwj xeeb, kev hloov pauv yooj yim yog qhov tseem ceeb rau nws:

Late binding tso cai rau cov tswv yim uas tuaj tom qab hauv txoj kev loj hlob tuaj yeem muab tso rau hauv qhov project nrog kev siv zog tsawg (piv rau cov kab ke ua ntej xws li C, C ++, Java, thiab lwm yam)

Thiab lub peev xwm rau kev hloov pauv ntawm ya thiab nrawm dua:

Ib qho ntawm cov tswv yim tseem ceeb yog tias lub kaw lus yuav tsum ua haujlwm txuas ntxiv thaum sim, tshwj xeeb tshaj yog thaum hloov pauv. Txawm tias qhov kev hloov pauv loj yuav tsum maj mam thiab tsis pub ntau tshaj qhov sib cais thib ob.

uas ploj lawm hauv statically ntaus hom lus:

Yog tias koj siv cov lus thaum ntxov, zoo li cov neeg feem coob ua, ces koj kaw koj tus kheej rau hauv qhov koj tau sau lawm. Nws yuav tsis muaj peev xwm hloov kho nws yooj yim dua.

Kuj ceeb tias, nws cov kev xav txog OOP tau txwv rau qhov no:

OOP rau kuv yog cov lus, hauv zos tuav thiab tiv thaiv, xeev zais thiab lig khi ntawm txhua yam. Qhov no tuaj yeem ua tiav hauv Smalltalk thiab hauv LISP.

Thiab tsis muaj dab tsi txog qub txeeg qub teg. Qhov no tsis yog OOP uas peb paub niaj hnub no:

Kuv xav tias kuv tau siv lo lus "khoom" rau lub ncauj lus no ntev dhau los vim nws ua rau ntau tus neeg tsom mus rau qhov tsawg dua ntawm cov tswv yim.

Lub tswv yim loj uas niaj hnub statically ntaus ntawv OO tsis muaj:

Lub tswv yim loj yog "cov lus"

Nws ntseeg hais tias nyob rau hauv tsom rau cov lus, xoob coupling, thiab module kev sib cuam tshuam es tsis yog nyob rau hauv lub internals ntawm ib yam khoom:

Tus yuam sij rau kev tsim kom zoo scalable systems yog ua hauj lwm tawm kev sib txuas lus mechanisms ntawm modules, thiab tsis ua hauj lwm tawm lawv cov khoom thiab tus cwj pwm.

Statically typed languages ​​zoo li nws ua txhaum:

Kuv tsis tawm tsam hom, tab sis kuv tsis paub txog txhua hom kab ke uas tsis ua rau mob. Yog li kuv tseem nyiam dynamic typing.

Qee hom lus nrov niaj hnub no siv Smalltalk cov lus dhau los ntawm cov tswv yim, kev sib tw lig, thiab tsis nkag siabforwardInvocation в Hom phiaj-Cmethod_tsis muaj в Ruby и noSuchMethod hauv Google dart.

Ua kom puas txhua yam thiab tsim ib yam dab tsi zoo dua

Alan muaj ib qho kev xav nthuav dav txog kev txhim kho computer science:

Nws zoo nkaus li kuv tias tsuas muaj ib hom kev tshawb fawb hauv computer xwb, thiab kev tshawb fawb zoo li kev tsim choj. Ib tug neeg tsim choj, thiab ib tug neeg rhuav tshem lawv thiab tsim cov kev xav tshiab. Thiab peb yuav tsum khaws cov choj.

Hais txog LISP

Alan Kay ntseeg Lisp

zoo tshaj plaws programming lus txhua lub sijhawm

Thiab txhua tus kawm tiav computer science yuav tsum kawm nws:

Cov neeg feem coob kawm qib siab hauv CS tsis nkag siab qhov tseem ceeb ntawm Lisp. Lisp yog lub tswv yim tseem ceeb tshaj plaws hauv computer science.

Hais txog qhov chaw zoo thiab cov ntsiab lus

Nws feem ntau nco qab lub cim huab cua hauv Xerox PAB и barley, qhov twg "lub zeem muag tseem ceeb dua li cov hom phiaj" thiab "nyiaj pab tib neeg, tsis yog cov haujlwm."

Cov ntsiab lus ntawm kev pom muaj nqis 80 IQ ntsiab lus.

Alan Kay hais tias:

Zaj dab neeg ARPA/PARC qhia tau hais tias kev sib koom ua ke ntawm lub zeem muag, nyiaj txiag me me, cov ntsiab lus raug thiab txheej txheem tuaj yeem tsim cov thev naus laus zis tshiab uas tsis yog tsuas yog cuam tshuam rau kev vam meej tab sis kuj tsim muaj txiaj ntsig zoo rau tib neeg.

Thiab nws muaj tseeb. Ua tibzoo saib PARC cov npe zoo tshaj plaws ntawm kev tsim khoom, ntau yam uas tau ua lub luag haujlwm tseem ceeb hauv kev txhim kho peb lub ntiaj teb. Piv txwv li:

  • Laser tshuab luam ntawv
  • Object-Oriented Programming / Smalltalk
  • Tej computers
  • Ethernet / faib xam
  • GUI / computer nas / WYSIWYG

Thiab nyob rau hauv barley tsim ARPANET, uas tau los ua tus progenitor ntawm Internet.

PS Alan Kay teb cov lus nug los ntawm Hacker News zej zog.

Tau qhov twg los: www.hab.com

Ntxiv ib saib