Om du aldrig har hört talas om Alan Kay, har du åtminstone hört hans berömda citat. Till exempel detta citat från 1971:
Det bästa sättet att förutsäga framtiden är att uppfinna den.
Det bästa sättet att förutsäga framtiden är att uppfinna den.
Alan har en mycket färgstark karriär inom datavetenskap. Han fick
Vi har in
Om mjukvaruutveckling
Alan Kay tror att datorrevolutionen ännu inte kommer (
problemet är svagt, dåligt skalbara idéer och verktyg, lättja, bristande kunskap osv.
Beskriver denna situation väl
Det Andy ger tar Bill bort
Andy gav, Bill tog
Andy Grove, vd för Intel, och Bill Gates, då vd för Microsoft.
Att förbättra det nuvarande utvecklingsläget var målet med forskningsprojektet
I hans ögonöppnande rapport
Alan överväger Internet, TCP/IP-protokoll, LISP-tolkar,
Han kallar Internet (TCP/IP) för ett av få storskaliga programvaruprojekt som utformats korrekt, och dess komplexitetsnivå är i balans med komplexitetsnivån (komplikation vs. komplexitet). Med färre än 20 1969 rader kod fungerar projektet som ett levande, dynamiskt system som kan stödja miljarder noder och har aldrig gått offline sedan det första lanseringen i september XNUMX. Vi slutade helt enkelt betrakta internet som ett normalt programvaruprojekt skapat av människor:
Internet är så välutvecklat att många människor behandlar det som en naturresurs, som Stilla havet, snarare än en produkt av mänskligt arbete. När såg vi senast en så stabil, tydlig och felfri teknik? Som jämförelse är webben nonsens. Webben skapades av amatörer.
Om objektorienterad programmering
Det första som intresserade mig var hans
Jag tänkte på objekt som biologiska celler och/eller enskilda datorer i ett nätverk som bara kunde kommunicera genom meddelanden.
och erfarenhet av matematik:
Min erfarenhet av matematik fick mig att inse att varje objekt kan ha flera algebror, de kan kombineras till familjer, och detta kan vara mycket användbart.
Idéer för sen bindning och kraftfulla metafunktioner hos LISPa:
Den andra fasen är att förstå LISPa och använda den förståelsen för att skapa enklare, mindre, kraftfullare strukturer och senare bindning.
Och snart började Alan stödja tanken att dynamiska språk är
Sen bindning gör att idéer som kom senare i utvecklingsprocessen kan införlivas i projektet med mindre ansträngning (jämfört med tidigare bundna system som C, C++, Java, etc.)
Och potentialen för förändringar i farten och snabbare iterationer:
En av huvudidéerna är att systemet ska fortsätta att fungera under testning, särskilt när förändringar görs. Även stora förändringar bör ske gradvis och inte ta mer än en bråkdel av en sekund.
som saknas i
Om du använder tidigt bindande språk, som de flesta gör, så låser du dig till det du redan har skrivit. Det kommer inte längre att vara möjligt att omformulera det enkelt.
Överraskande nog var hans tankar om OOP begränsade till detta:
OOP för mig är meddelanden, lokalt håll och skydda, statligt döljande och sen bindning av allt. Detta kan göras i Smalltalk och i LISP.
Och inget om arv. Detta är inte OOP
Jag önskar att jag hade använt termen "objekt" för detta ämne för länge sedan eftersom det får många människor att fokusera på den mindre av idéerna.
Den stora idén som moderna statiskt skrivna OO-språk saknar:
Den stora idén är "meddelanden"
Han tror på att fokusera på meddelanden, lös koppling och modulinteraktioner snarare än på det inre av ett objekt:
Nyckeln till att skapa bra skalbara system är att utarbeta kommunikationsmekanismerna mellan moduler och att inte utarbeta deras interna egenskaper och beteende.
Statiskt skrivna språk verkar för honom
Jag är inte emot typer, men jag känner inte till något typsystem som inte orsakar smärta. Så jag gillar fortfarande dynamiskt skrivande.
Vissa populära språk använder idag Smalltalks budskap som skickar idéer, sen bindning och
Förstör allt och skapa något bättre
Alan har en intressant teori om utvecklingen av datavetenskap:
Det verkar för mig att det bara finns en typ av datavetenskap, och att vetenskap är som att bygga broar. Någon bygger broar, och någon förstör dem och skapar nya teorier. Och vi måste fortsätta bygga broar.
Om LISP
Alan Kay tror Lisp
bästa programmeringsspråket genom tiderna
Och att varje utexaminerad datavetenskap bör studera det:
De flesta som läser examen i CS förstår inte vikten av Lisp. Lisp är den viktigaste idén inom datavetenskap.
Om rätt atmosfär och sammanhang
Han minns ofta den unika atmosfären i
Synvinkel är värd 80 IQ-poäng.
Alan Kay säger:
ARPA/PARC-berättelsen visar hur en kombination av vision, blygsam finansiering, rätt sammanhang och process magiskt kan föda ny teknik som inte bara påverkar civilisationen utan också skapar enormt värde för samhället.
Och det är sant.
- Laserskrivare
- Objektorienterad programmering / Smalltalk
- Personliga datorer
- Ethernet / distribuerad datoranvändning
- GUI / datormus / WYSIWYG
Och i
PS
Källa: will.com