Hvis du aldri har hørt om Alan Kay, har du i det minste hørt hans berømte sitater. For eksempel dette sitatet fra 1971:
Den beste måten å forutsi fremtiden er å finne den opp.
Den beste måten å forutsi fremtiden er å finne den opp.
Alan har en veldig fargerik karriere innen informatikk. Han mottok
I vår
Om programvareutvikling
Alan Kay tror at datarevolusjonen ennå ikke kommer (
problemet er svakt, dårlig skalerbare ideer og verktøy, latskap, mangel på kunnskap, etc.
Beskriver denne situasjonen godt
Det Andy gir, tar Bill bort
Andy ga, Bill tok
Andy Grove, administrerende direktør i Intel, og Bill Gates, daværende administrerende direktør i Microsoft.
Å forbedre den nåværende utviklingstilstanden var målet med forskningsprosjektet
I hans øyeåpnende rapport
Alan vurderer Internett, TCP/IP-protokoller, LISP-tolker,
Han kaller Internett (TCP/IP) et av få storskala programvareprosjekter som ble designet riktig, og kompleksitetsnivået er i balanse med kompleksitetsnivået (komplikasjon vs. kompleksitet). Med færre enn 20 1969 linjer med kode, fungerer prosjektet som et levende, dynamisk system som kan støtte milliarder av noder, og har aldri gått offline siden den første lanseringen i september XNUMX. Vi sluttet rett og slett å betrakte Internett som et normalt programvareprosjekt laget av mennesker:
Internett er så godt utviklet at mange mennesker behandler det som en naturressurs, som Stillehavet, snarere enn et produkt av menneskelig arbeidskraft. Når var siste gang vi så en så stabil, klar, feilfri teknologi? Til sammenligning er nettet tull. Nettet ble laget av amatører.
Om objektorientert programmering
Det første som interesserte meg var hans
Jeg tenkte på objekter som biologiske celler, og/eller individuelle datamaskiner på et nettverk som bare kunne kommunisere gjennom meldinger.
og erfaring i matematikk:
Min erfaring i matematikk fikk meg til å innse at hvert objekt kan ha flere algebraer, de kan kombineres til familier, og dette kan være veldig nyttig.
Ideer for sen binding og kraftige metafunksjoner til LISPa:
Den andre fasen er å forstå LISPa og bruke den forståelsen til å skape enklere, mindre, kraftigere strukturer og senere binding.
Og snart begynte Alan å støtte ideen om at dynamiske språk er
Sen binding gjør at ideer som kom senere i utviklingsprosessen kan inkorporeres i prosjektet med mindre innsats (sammenlignet med tidligere bundne systemer som C, C++, Java, etc.)
Og potensialet for endringer i farten og raskere iterasjoner:
En av hovedideene er at systemet skal fortsette å fungere under testing, spesielt mens endringer gjøres. Selv store endringer bør skje gradvis og ikke ta mer enn et brøkdel av et sekund.
som mangler i
Bruker du tidlig bindende språk, som de fleste gjør, så låser du deg til det du allerede har skrevet. Det vil ikke lenger være mulig å omformulere det enkelt.
Overraskende nok var tankene hans om OOP begrenset til dette:
OOP for meg er meldinger, lokalt hold og beskytte, statsskjul og sen binding av alt. Dette kan gjøres i Smalltalk og i LISP.
Og ingenting om arv. Dette er ikke OOP
Jeg skulle ønske jeg hadde brukt begrepet "objekt" for dette emnet for lenge siden fordi det får mange til å fokusere på den minste av ideene.
Den store ideen som moderne statisk skrevet OO-språk mangler:
Den store ideen er "meldinger"
Han tror på å fokusere på meldinger, løs kobling og modulinteraksjoner i stedet for på det indre av et objekt:
Nøkkelen til å skape gode skalerbare systemer er å utarbeide kommunikasjonsmekanismene mellom moduler, og ikke utarbeide deres interne egenskaper og oppførsel.
Statisk skrevet språk virker for ham
Jeg er ikke imot typer, men jeg vet ikke om noe typesystem som ikke forårsaker smerte. Så jeg liker fortsatt dynamisk skriving.
Noen populære språk bruker i dag Smalltalks budskapsformidlingsideer, sen binding og
Ødelegg alt og skap noe bedre
Alan har en interessant teori om utviklingen av informatikk:
Det virker for meg som om det bare finnes én type informatikk, og at vitenskap er som å bygge broer. Noen bygger broer, og noen ødelegger dem og lager nye teorier. Og vi må fortsette å bygge broer.
Om LISP
Alan Kay tror Lisp
tidenes beste programmeringsspråk
Og at enhver nyutdannet informatikk bør studere det:
De fleste som tar grader i CS forstår ikke viktigheten av Lisp. Lisp er den viktigste ideen innen informatikk.
Om den rette atmosfæren og konteksten
Han husker ofte den unike atmosfæren i
Point of view er verdt 80 IQ-poeng.
Alan Kay sier:
ARPA/PARC-historien viser hvordan en kombinasjon av visjon, beskjeden finansiering, riktig kontekst og prosess på magisk vis kan skape nye teknologier som ikke bare påvirker sivilisasjonen, men også skaper enorme verdier for samfunnet.
Og det er sant.
- Laserskrivere
- Objektorientert programmering / Smalltalk
- Personlige datamaskiner
- Ethernet / distribuert databehandling
- GUI / datamus / WYSIWYG
Og i
PS
Kilde: www.habr.com