Hvis du aldrig har hørt om Alan Kay, har du i det mindste hørt hans berømte citater. For eksempel dette citat fra 1971:
Den bedste måde at forudsige fremtiden er at opfinde den.
Den bedste måde at forudsige fremtiden er at opfinde den.
Alan har en meget farverig karriere inden for datalogi. Han modtog
I vores
Om softwareudvikling
Alan Kay mener, at computerrevolutionen er endnu ikke kommet (
problemet er svagt, dårligt skalerbare ideer og værktøjer, dovenskab, manglende viden mv.
Beskriver denne situation godt
Hvad Andy giver, tager Bill væk
Andy gav, Bill tog
Andy Grove, CEO for Intel, og Bill Gates, daværende CEO for Microsoft.
Målet med forskningsprojektet var at forbedre den nuværende udviklingstilstand
I sin øjenåbnende rapport
Alan overvejer internettet, TCP/IP-protokoller, LISP-tolke,
Han kalder internettet (TCP/IP) for et af de få storstilede softwareprojekter, der er designet korrekt, og dets kompleksitetsniveau er i balance med kompleksitetsniveauet (komplikation vs. kompleksitet). Med færre end 20 linjer kode fungerer projektet som et levende, dynamisk system, der er i stand til at understøtte milliarder af noder, og det er aldrig gået offline siden dets første lancering i september 1969. Vi holdt simpelthen op med at betragte internettet som et normalt softwareprojekt skabt af mennesker:
Internettet er så veludviklet, at mange mennesker behandler det som en naturressource, som Stillehavet, snarere end et produkt af menneskelig arbejdskraft. Hvornår har vi sidst set en så stabil, klar og fejlfri teknologi? Til sammenligning er nettet noget vrøvl. Nettet er skabt af amatører.
Om objektorienteret programmering
Det første, der interesserede mig, var hans
Jeg tænkte på objekter som biologiske celler og/eller individuelle computere på et netværk, der kun kunne kommunikere gennem beskeder.
og erfaring med matematik:
Min erfaring med matematik fik mig til at indse, at hvert objekt kan have flere algebraer, de kan kombineres til familier, og det kan være meget nyttigt.
Idéer til sen binding og kraftfulde metafunktioner i LISPa:
Den anden fase er at forstå LISPa og bruge denne forståelse til at skabe lettere, mindre, mere kraftfulde strukturer og senere binding.
Og snart begyndte Alan at støtte ideen om, at dynamiske sprog er
Sen binding tillader ideer, der kom senere i udviklingsprocessen, at blive inkorporeret i projektet med mindre indsats (sammenlignet med tidligere bundne systemer som C, C++, Java osv.)
Og potentialet for ændringer i farten og hurtigere iterationer:
En af de vigtigste idéer er, at systemet skal fortsætte med at fungere under test, især mens der foretages ændringer. Selv større ændringer bør være gradvise og ikke tage mere end et splitsekund.
som mangler i
Hvis du bruger tidligt bindende sprog, som de fleste gør, så låser du dig fast i det, du allerede har skrevet. Det vil ikke længere være muligt at omformulere det nemt.
Overraskende nok var hans tanker om OOP begrænset til dette:
OOP for mig er beskeder, lokalt hold og beskyt, statsskjul og sen binding af alt. Dette kan gøres i Smalltalk og i LISP.
Og intet om arv. Dette er ikke OOP
Jeg ville ønske, at jeg havde brugt udtrykket "objekt" for dette emne for længe siden, fordi det får mange mennesker til at fokusere på den mindste af ideerne.
Den store idé, som moderne statisk indtastede OO-sprog mangler:
Den store idé er "beskeder"
Han tror på at fokusere på beskeder, løs kobling og modulinteraktioner snarere end på det indre af et objekt:
Nøglen til at skabe gode skalerbare systemer er at udarbejde kommunikationsmekanismerne mellem moduler, og ikke at udarbejde deres interne egenskaber og adfærd.
Statisk maskinskrevne sprog forekommer ham
Jeg er ikke imod typer, men jeg kender ikke til noget typesystem, der ikke forårsager smerte. Så jeg kan stadig godt lide dynamisk skrivning.
Nogle populære sprog bruger i dag Smalltalks budskabsformidlingsideer, sen binding og
Ødelæg alt og skab noget bedre
Alan har en interessant teori om udviklingen af datalogi:
Det forekommer mig, at der kun er én type datalogi, og at videnskab er som at bygge broer. Nogen bygger broer, og nogen ødelægger dem og skaber nye teorier. Og vi skal blive ved med at bygge broer.
Om LISP
Alan Kay tror på Lisp
det bedste programmeringssprog nogensinde
Og at enhver kandidat i datalogi bør studere det:
De fleste mennesker, der forfølger grader i CS, forstår ikke vigtigheden af Lisp. Lisp er den vigtigste idé inden for datalogi.
Om den rette atmosfære og kontekst
Han husker ofte den unikke atmosfære i
Point of view er 80 IQ-point værd.
Alan Kay siger:
ARPA/PARC-historien demonstrerer, hvordan en kombination af vision, beskeden finansiering, den rigtige kontekst og proces på magisk vis kan føde nye teknologier, der ikke kun påvirker civilisationen, men også skaber enorm værdi for samfundet.
Og det er sandt.
- Laser printere
- Objektorienteret programmering / Smalltalk
- Personlige computere
- Ethernet / distribueret databehandling
- GUI / computermus / WYSIWYG
Og i
PS
Kilde: www.habr.com