Alors, pour info, je suis en train de regarder une vidéo où Gosling présente les origines de Java. Avant de faire des études, il a programmé et écrit (ou maintenu) plusieurs langages. Entre autres il a maintenu une implémentation de Simula.
Sa thèse décrit comment considérer l'expression d'un programme sous forme algébrique (repris d'un de ses slides : « Code-as-algebra is awesome! »,: il a bossé sur les Arbres syntaxiques abstraits (AST)) [1]
Gosling décrit Java comme étant une tentative d'obtenir un langage avec un « "scripting" feel », sans perdre trop en termes de performance. [2] Il parle ensuite d'introduire le loup dans la bergerie, en gardant une syntaxe à-la-C, mais en introduisant les bonnes idées d'autres langages (Lisp,Smalltalk,Simula,etc.). [3]
Il dit que Java (et la JVM) est quasiment un copier-coller de Simula. [4]
À propos des types : les types primitifs ont été uniquement introduits à cause des performances (pouvoir faire a = b + c en une instruction de la JVM). Malheureusement il ne parle pas des types mis à part ça.
[^] # Re: Encore le type Null...
Posté par lasher . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 3.
Alors, pour info, je suis en train de regarder une vidéo où Gosling présente les origines de Java. Avant de faire des études, il a programmé et écrit (ou maintenu) plusieurs langages. Entre autres il a maintenu une implémentation de Simula.
Sa thèse décrit comment considérer l'expression d'un programme sous forme algébrique (repris d'un de ses slides : « Code-as-algebra is awesome! »,: il a bossé sur les Arbres syntaxiques abstraits (AST)) [1]
Gosling décrit Java comme étant une tentative d'obtenir un langage avec un « "scripting" feel », sans perdre trop en termes de performance. [2] Il parle ensuite d'introduire le loup dans la bergerie, en gardant une syntaxe à-la-C, mais en introduisant les bonnes idées d'autres langages (Lisp,Smalltalk,Simula,etc.). [3]
Il dit que Java (et la JVM) est quasiment un copier-coller de Simula. [4]
À propos des types : les types primitifs ont été uniquement introduits à cause des performances (pouvoir faire
a = b + cen une instruction de la JVM). Malheureusement il ne parle pas des types mis à part ça.[1] 07:30
[2] 26:30
[3] 27:00
[4] 42:00
[5] 46:00