Java (technique)

Un article de Wikipédia, l'encyclopédie libre.
Logo de Java représentant une tasse de café.

Java est une technique informatique développée initialement par Sun Microsystems puis acquise par Oracle à la suite du rachat de l'entreprise. Défini à l'origine comme un langage de programmation, Java a évolué pour devenir un ensemble cohérent d'éléments techniques et non techniques. Ainsi, la technologie Java regroupe :

  • des standards (la plateforme Java) définis sous forme de spécification par le Java Community Process (JCP), en trois éditions :
    • Java SE (standard edition),
    • Java EE (enterprise edition), s'appuyant sur Java SE,
    • Java ME (micro edition), indépendante des deux précédentes ;
  • des logiciels (langages informatiques, bibliothèques, frameworks, serveurs d'application, outils d'aide au développement), dont :
    • des implémentations (concurrentes) de ces spécifications,
    • un écosystème d'autres logiciels s'appuyant sur tout ou partie de ces standards, voire leur faisant concurrence ;
  • des communautés d'entreprises, organisations à but non lucratif (fondations, Java User Groups, universités) et indépendants, membres ou non du JCP, possédant tout ou partie des marques, brevets, parts de marché liés à la technologie Java.

Java est un des termes les plus connus du monde de l'informatique et de l'Internet. Sa notoriété est telle que Sun, avant d'être acheté par Oracle Corporation, a décidé de l'utiliser pour son symbole boursier au Nasdaq, symbole qui était SUNW à l'origine, et est devenu JAVA[1].

Java est utilisé dans une grande variété de plateformes depuis les systèmes embarqués et les téléphones mobiles, les ordinateurs individuels, les serveurs, les applications d’entreprise, les superordinateurs, etc.

Histoire[modifier | modifier le code]

Langage Java[modifier | modifier le code]

Le langage Java a débuté dans les années 1990 avec James Gosling qui souhaitait développer un langage de programmation indépendant de la plateforme hardware. Oak (traduction : « Chêne ») fut un échec.

Par la suite, Bill Joy (cofondateur de la firme Sun Microsystems) proposa une nouvelle version de Oak appelée « Java ». Son but était de pallier une déficience des langages de programmation en produisant un langage conçu pour des machines et des logiciels hétérogènes.

On trouve gratuitement sur le marché une machine virtuelle (Java Virtual Machine), qui inclut un compilateur, ainsi que de nombreux outils visant à faciliter l'investissement du Web par Java. Cette machine virtuelle exécute un bytecode Java (similaire à de l'assembleur) qui ajoute des étapes supplémentaires (décodage et interpretation) lors du runtime ce qui a pour conséquence de ralentir fortement le fonctionnement d'une application par rapport à sa version compilée nativement (obtenue par exemple avec des langages tels que C ou C++).

Après de très nombreuses modifications visant à améliorer le système, Java est devenu plus qu’une simple solution Internet, c’est dorénavant un langage utilisé pour toutes sortes de développements, distribués, client lourd ou léger, etc.

Internet[modifier | modifier le code]

Java fut créé en même temps que le Web, et toutes les qualités que requiert le Web étaient implémentées dans Java :

  • un langage permettant un fonctionnement sur des machines structurées différemment ;
  • une nécessité de bande passante la plus minime possible, pour pallier l’étroitesse de celle offerte par le Web.

Un navigateur Java apparut dès 1994 (HotJava) qui, tout en intégrant Java, était capable de faire fonctionner les applets Java (applications Java exécutées par le navigateur).

Netscape fut l’un des éléments essentiels dans la création et l’implantation de Java dans le parc informatique, en intégrant Java dans son logiciel.

L'idée de départ a été de réduire le travail du serveur ainsi que la quantité de données transmises via le réseau, en confiant davantage de tâches à chaque ordinateur client.

Ouverture[modifier | modifier le code]

Sun a annoncé le que l’environnement Java serait sous licence libre GNU GPL (avec extension « ClassPath ») par étapes : immédiatement pour le code source du compilateur Java ainsi que pour celui de la machine virtuelle Java HotSpot[2]. En , lors de la conférence JavaOne, c’est l’ensemble du code Java qui a été mis en open source (à l’exception de quelques rares parties fournies en format binaire pour l’instant encore). L’exception « ClassPath » permet d’utiliser cette JVM GPL sans pour autant que les applications soient elles aussi nécessairement sous licence GPL. Quelque temps auparavant Sun avait déjà mis en Open Source son serveur d’application Java EE 5 complet GlassFish.

Historique des versions de Java SE[modifier | modifier le code]

  • 1.0 : Version initiale lancée en 1995
  • 1.1 : 1997, ajout de jdbc pour les connexions aux bases de données, fichier Jar, introspection et sérialisation entre autres
  • 1.2 : 1998, Playground : JDBC 2 et compilateur JIT
  • 1.3 : 2000, Kestrel : Grandes améliorations de performances
  • 1.4 : 2002, Merlin : JDBC 3, API de Logging et Java Web Start
  • 5.0 : 2004, Tiger : Grandes améliorations du langage (boucle foreach, génériques…)
  • 6.0 : 2006, Mustang : meilleure intégration avec le système d’exploitation, avec les classes Desktop et Systrays
  • 7.0 : 2011, Dolphin : diverses améliorations[3].
  • 8.0 : 2014, Kenai : 56 nouvelles fonctionnalités dont les expressions lambda ou les méthodes d'interface[4]

Standard Java[modifier | modifier le code]

Java Community Process[modifier | modifier le code]

Spécifications[modifier | modifier le code]

Java SE[modifier | modifier le code]

Java, édition standard, est une plateforme normalisée, destinée au développement de logiciels pour des ordinateurs personnels ainsi que des serveurs. La plateforme comporte une suite d'interfaces de programmation, qui permettent notamment de créer des interfaces graphiques, de manipuler des bases de données, des fichiers, d'utiliser le réseau, ainsi que les annuaires.

Java EE[modifier | modifier le code]

Java, édition entreprise, est une plateforme normalisée, destinée au développement de logiciels pour les entreprises et les serveurs d'application. La plateforme comporte toutes les interfaces de programmation de Java SE, ainsi que des interfaces de programmation destinées à créer des applications Web, envoyer des courriels, mettre en œuvre et utiliser des services Web, mettre en œuvre de la persistance et des transactions.

Java ME[modifier | modifier le code]

Java, micro edition, est une plateforme normalisée, destinée au développement de logiciels sur des appareils informatiques qui n'ont que peu de ressources, tels que les téléphones portables, les smartphones ou les assistants personnels. La plateforme comporte un ensemble réduit d'interfaces de programmation, qui permettent notamment d'utiliser la mémoire flash, créer des interfaces graphiques et utiliser le réseau téléphonique.

Logiciels[modifier | modifier le code]

Selon l'usage et le vecteur d'utilisation[modifier | modifier le code]

Java est une technologie particulièrement bien indiquée pour tout ce qui concerne les environnements informatiques de postes hétérogènes reliés ou non par un réseau de type Internet.

  • sur ordinateur
    • plateformes de développement (JDK) et d'exécution (JRE), adaptées à chaque ordinateur d'accueil, et compatibles entre elles aux niveaux source et byte-code.
      • applications d'entreprise (Java EE), souvent associées à un serveur.
    • applications graphiques (Java FX, JRE)
  • sur portable
    • Java Me
    • Java FX
  • sur des navigateurs Web
    • applications graphiques (Java FX, Applets java, JSP avec le serveur)
    • applications de gestion (Nombreuses technologies couplées avec JavaScript et les standards du Web : GWT, JSP, JSF...)
    • applications mails (Google Mail, Yahoo Mail...)

Cette technologie est également très utilisée dans le rodage et la mise en œuvre des bonnes pratiques de la profession informatique elle-même : tests avec par exemple JUnit, organisation et manipulation des projets informatiques avec Maven, Ant, Eclipse ou Netbeans, nouveaux langages ou même langages existants qui trouvent appui sur le JRE tels Groovy, Scala, JRuby, etc.

Langages de programmation[modifier | modifier le code]

Via son langage intermédiaire (bytecode), la machine virtuelle Java peut exécuter différents langages de programmation (après compilation) :

Communautés[modifier | modifier le code]

Java pour toutes les tailles
Technologies Java selon les ordinateurs et les humains.

Java rassemble un nombre considérable de personnes et de sociétés, aux intérêts divers. Parmi les principaux :

  • Sun, le créateur, réalisait les versions principales (pour Windows, Linux, et téléphones), des outils de développement (Netbeans), animait une communauté de développeurs, ainsi que des comités de standardisation (les JCP : Java Community Process), avant d'être repris par Oracle ;
  • La fondation Apache ; de nombreux projets java phares, dont certains sont intégrés à la plateforme elle-même ; un siège de Executive Comittee au JCP[5] ;
  • La fondation Eclipse : cette fondation est la plus importante concernant Java et sa stratégie de développement à laquelle Sun n'ait pas participé. Oracle a depuis intégré cette fondation ;
  • Des sociétés de stature internationale telles Google, IBM[6], Oracle ; Microsoft et Netscape ont également été des acteurs majeurs. Le cas de Microsoft est un peu particulier, puisque, si cette société a accompagné les débuts de cette technologie, c'était surtout dans le but de contrer ses concurrents[7] ;
  • Plusieurs fabricants d'appareils portables (mais Apple et Windows ne permettent pas d'utiliser Java sur leurs systèmes iOS et Windows Phone) ;
  • Les lecteurs de disques Blu-ray ;
  • Le monde open source a longtemps été réservé, voire opposé, mais depuis le passage de Java en licence GPL, ce n'est plus le cas ; RedHat, par exemple, en est devenu un acteur majeur.

Depuis une dizaine d'années[Quand ?], Java est dans le trio de tête pour la popularité des systèmes informatiques, que ce soit en termes d'offres d'emploi, d'estime des développeurs ou des décideurs[8],[9].

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. Sun Microsystems to Change Stock Ticker Symbol to JAVA (annonce officielle) et Bonjour JAVA - Adieu SUNW : explications en français par Jonathan I. Schwartz, Chief Executive Officer and President Sun Microsystems, Inc.
  2. Clubic, 13 novembre 2006 http://www.clubic.com/actualite-65334-sun-ouvre-code-java-licence-gpl.html
  3. http://www.java.com/fr/download/faq/java7.xml.
  4. http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html Java 8]www.oracle.com
  5. Apache And The JCP.
  6. 2001 Eclipse
  7. Dans La Commission ouvre une procédure à l'encontre de Microsoft pour discrimination dans l'octroi de licences et refus de fournir des informations relatives à ses logiciels : La procédure engagée aux États-Unis par le Département de la Justice porte essentiellement sur les mesures prises par Microsoft pour protéger sa position dominante dans les systèmes d'exploitation pour micro-ordinateurs, en visant à affaiblir la position du navigateur web Navigator de Netscape et le système Java de Sun.
  8. (en) « Programming Language Popularity » (Popularité des langages de programmation - lien rompu).
  9. (en) Tiobe Index.