Oak (langage de programmation)
Oak est un langage de programmation inventé par James Gosling en 1991. Initialement créé pour le projet de décodeur TV de Sun Microsystems, ce langage est aujourd'hui abandonné pour son évolution : Java.
Le nom Oak a été choisi par Gosling en regardant un chêne qui se trouvait à l'extérieur de son bureau.
Histoire
[modifier | modifier le code]En 1995, l'entreprise Sun Microsystems tentait de créer une nouvelle technologie pour programmer des appareils intelligents de nouvelle génération, car Sun jugeait que ceci était une nouvelle opportunité majeure.
L'équipe de développement a tout d'abord envisagé d'utiliser le langage de programmation C++, mais a rejeté l'idée pour plusieurs raisons (voir l'historique de Java).
Au départ, Gosling a tenté de modifier et d'étendre les fonctionnalités du C++. Par la suite, il a rapidement abandonné l'idée et a créé une nouvelle plate-forme appelée Green munit d'un nouveau langage qu'il a appelé Oak, d'après l'arbre qui se trouvait juste à l'extérieur de son bureau[1].
Durant l'été 1992, l'équipe de développement a pu présenter des parties de la nouvelle plate-forme, notamment le système d'exploitation Green OS, le langage de programmation Oak, les bibliothèques logicielles et le matériel de leur machine. Leur première tentative, démontrée le 3 septembre 1992, s'est concentrée sur la construction d'un PDA nommé Star7 : Celui-ci avait une interface graphique et un agent intelligent appelé "Duke" pour aider l'utilisateur (A la manière de Clippy).
Oak a finalement été renommé Java en 1994 car Oak était une marque déposée déjà utilisé par l'entreprise Oak Technology[2]. Ainsi c'est sous le nom de Java 1.0 en 1996 que fut livré le logiciel[3].
Différences avec Java
[modifier | modifier le code]Oak a servi de base à Java 1.0, mais il a cependant quelques différences[4],[5]. Plusieurs concepts pourtant planifiés dans les spécifications de Oak n'ont pu être implémentés en raison de contraintes de temps :
- Les types primitifs non signés ne sont d'ailleurs toujours pas implémentés en Java[6].
- Le mot clé enum pour les types énumérés n'a été implémenté qu'à partir de Java 5.0.
- Le mot-clé assert pour les assertion a été implémenté pour Java 1.4[7].
D'autres concepts ont été améliorés plus tard pour Java[4] :
- Les méthodes abstraites copié du C++.
- Les niveaux d'accès de Java (private, public, ...) n’existaient pas en Oak : En effet, tout se comporte comme si les éléments sont privés pour Oak.
Et finalement, certains concepts ont été supprimés par la suite :
- Toutes les exceptions pouvaient être désactivées.
- De la même manière, il était aussi possible, grâce au mot clé unprotect, d'écrire du code qui ne levait pas d' exceptions asynchrones.
- Oak supportait assez bien la programmation par contrat[8] : Les attributs d'une classe pouvaient avoir des contraintes appliqués à chaque entrée et sortie d'une méthode de la classe. Et les méthodes pouvaient également avoir leurs propres pré-conditions et post-conditions [4],[9].
Voir également
[modifier | modifier le code]Références
[modifier | modifier le code]- Jon Byous, « Java Technology: An early history », Sun Microsystems, (consulté le ) : « Gosling called the new language "Oak", after the tree outside his window »
- Murphy, « So why did they decide to call it Java? », JavaWorld, (consulté le ) : « 'The lawyers had told us that we couldn't use the name "OAK" because [it was already trademarked by] Oak Technologies,' said Frank Yellin, a senior engineer at Sun. 'So a brainstorming session was held to come up with ideas for a new name.' »
- Jonathan I. Schwartz, « Different Isn't Always Better, But Better's Always » [archive du ], (consulté le )
- Heinz Kabutz, « Once Upon an Oak ... », javaspecialists.eu, (consulté le )
- « Oak Language Specification » [archive du ], Sun Microsystems, Inc. (consulté le )
- « Java and unsigned int, unsigned short, unsigned byte, unsigned long, etc. (Or rather, the lack thereof) » (consulté le )
- « A Simple Assertion Facility For the Java Programming Language », Sun Microsystems (consulté le )
- Johannes Rieken, « Design by Contract for Java - Revised », (consulté le )
- « Support For 'Design by Contract', beyond "a simple assertion facility" », Sun Microsystems (consulté le )