Se non hai mai sentito parlare di Alan Kay, almeno hai sentito le sue famose citazioni. Ad esempio, questa citazione del 1971:
Il modo migliore per prevedere il futuro è inventarlo.
Il modo migliore per predire il futuro è inventarlo.
Alan ha una carriera molto movimentata nel campo dell'informatica. Ha ricevuto
Nel nostro
Informazioni sullo sviluppo del software
Alan Kay ritiene che la rivoluzione informatica debba ancora arrivare (
il problema sono idee e strumenti deboli, poco scalabili, pigrizia, mancanza di conoscenza, ecc.
Descrive bene questa situazione
Ciò che Andy dà, Bill toglie
Andy ha dato, Bill ha preso
Andy Grove, CEO di Intel, e Bill Gates, allora CEO di Microsoft.
Migliorare lo stato attuale dello sviluppo era l’obiettivo del progetto di ricerca
Nel suo rapporto illuminante
Alan considera Internet, i protocolli TCP/IP, gli interpreti LISP,
Egli definisce Internet (TCP/IP) uno dei pochi progetti software su larga scala che è stato progettato correttamente e il suo livello di complessità è in equilibrio con il livello di complessità (complicazione contro complessità). Con meno di 20 righe di codice, il progetto opera come un sistema vivo e dinamico in grado di supportare miliardi di nodi e non è mai andato offline dal suo lancio iniziale nel settembre 1969. Abbiamo semplicemente smesso di considerare Internet come un normale progetto software creato dalle persone:
Internet è così ben sviluppata che molte persone la considerano una risorsa naturale, come l’Oceano Pacifico, piuttosto che un prodotto del lavoro umano. Quando è stata l'ultima volta che abbiamo visto una tecnologia così stabile, chiara e priva di errori? In confronto, il Web è una sciocchezza. Il web è stato creato da dilettanti.
Informazioni sulla programmazione orientata agli oggetti
La prima cosa che mi interessò fu la sua
Pensavo agli oggetti come a cellule biologiche e/o singoli computer su una rete che potevano comunicare solo tramite messaggi.
ed esperienza in matematica:
La mia esperienza in matematica mi ha fatto capire che ogni oggetto può avere più algebre, che possono essere combinati in famiglie, e questo può essere molto utile.
Idee per l'associazione tardiva e potenti meta-funzionalità di LISPa:
La seconda fase consiste nel comprendere LISPa e utilizzare tale comprensione per creare strutture più semplici, più piccole e più potenti e successivamente legarle.
E presto Alan iniziò a sostenere l'idea che i linguaggi dinamici siano
L'associazione tardiva consente di incorporare nel progetto le idee che sono arrivate più tardi nel processo di sviluppo con meno sforzo (rispetto ai sistemi associati precedenti come C, C++, Java, ecc.)
E il potenziale per modifiche al volo e iterazioni più veloci:
Una delle idee chiave è che il sistema dovrebbe continuare a funzionare durante i test, soprattutto mentre vengono apportate modifiche. Anche i cambiamenti più importanti dovrebbero essere graduali e non richiedere più di una frazione di secondo.
che manca
Se usi linguaggi vincolanti, come fa la maggior parte delle persone, ti blocchi in ciò che hai già scritto. Non sarà più possibile riformularlo facilmente.
Sorprendentemente, i suoi pensieri sull'OOP erano limitati a questo:
L'OOP per me significa messaggi, blocco e protezione locale, occultamento statale e rilegatura tardiva di tutto. Questo può essere fatto in Smalltalk e in LISP.
E niente sull'eredità. Questa non è l'OOP
Vorrei aver usato il termine "oggetto" per questo argomento molto tempo fa perché induce molte persone a concentrarsi sulla minore delle idee.
La grande idea che manca ai moderni linguaggi OO tipizzati staticamente:
La grande idea sono i "messaggi"
Crede nel concentrarsi sui messaggi, sull'accoppiamento libero e sulle interazioni dei moduli piuttosto che sugli aspetti interni di un oggetto:
La chiave per creare buoni sistemi scalabili è elaborare i meccanismi di comunicazione tra i moduli e non elaborare le loro proprietà e comportamenti interni.
Gli sembrano linguaggi tipizzati staticamente
Non sono contrario ai tipi, ma non conosco nessun sistema di tipi che non causi dolore. Quindi mi piace ancora la digitazione dinamica.
Alcune lingue popolari oggi utilizzano le idee di passaggio dei messaggi di Smalltalk, la rilegatura tardiva e
Distruggi tutto e crea qualcosa di meglio
Alan ha un'interessante teoria sullo sviluppo dell'informatica:
Mi sembra che esista un solo tipo di informatica, e che la scienza sia come costruire ponti. Qualcuno costruisce ponti e qualcuno li distrugge e crea nuove teorie. E dobbiamo continuare a costruire ponti.
Informazioni su LISP
Alan Kay crede al Lisp
miglior linguaggio di programmazione di tutti i tempi
E che ogni laureato in informatica dovrebbe studiarlo:
La maggior parte delle persone che conseguono una laurea in informatica non comprendono l'importanza del Lisp. Lisp è l'idea più importante nell'informatica.
Sulla giusta atmosfera e contesto
Ricorda spesso l'atmosfera unica di
Il punto di vista vale 80 punti QI.
Alan Kay dice:
La storia dell’ARPA/PARC dimostra come una combinazione di visione, finanziamenti modesti, contesto e processo giusti possano magicamente far nascere nuove tecnologie che non solo hanno un impatto sulla civiltà, ma creano anche un enorme valore per la società.
Ed è vero
- Stampanti laser
- Programmazione orientata agli oggetti/Smalltalk
- Computer personale
- Ethernet/calcolo distribuito
- GUI/mouse del computer/WYSIWYG
E in
PS
Fonte: habr.com