Java (technique)
Pour les articles homonymes, voir Java.
Java est une technique informatique developpee initialement par Sun Microsystems puis acquise par Oracle a la suite du rachat de l'entreprise. Defini a l'origine comme un langage de programmation, Java a evolue pour devenir un ensemble coherent d'elements techniques et non techniques. Ainsi, la technologie Java regroupe :
- des standards (la plateforme Java) definis sous forme de specification par le Java Community Process (JCP), en trois editions :
- des logiciels (langages informatiques, bibliotheques, frameworks, serveurs d'application, outils d'aide au developpement), dont :
- des implementations (concurrentes) de ces specifications,
- un ecosysteme d'autres logiciels s'appuyant sur tout ou partie de ces standards, voire leur faisant concurrence ;
- des communautes d'entreprises, organisations a but non lucratif (fondations, Java User Groups, universites) et independants, membres ou non du JCP, possedant tout ou partie des marques, brevets, parts de marche lies a la technologie Java.
Java est un des termes les plus connus du monde de l'informatique et de l'Internet. Sa notoriete est telle que Sun, avant d'etre achete par Oracle Corporation, a decide de l'utiliser pour son symbole boursier au Nasdaq, symbole qui etait SUNW a l'origine, et est devenu JAVA[1].
Java est utilise dans une grande variete de plateformes depuis les systemes embarques et les telephones 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 debute dans les annees 1990 avec James Gosling qui souhaitait developper un langage de programmation independant de la plateforme hardware. Oak (traduction : << Chene >>) fut un echec.
Par la suite, Bill Joy (cofondateur de la firme Sun Microsystems) proposa une nouvelle version de Oak appelee << Java >>. Son but etait de pallier une deficience des langages de programmation en produisant un langage concu pour des machines et des logiciels heterogenes.
On trouve gratuitement sur le marche une machine virtuelle (Java Virtual Machine), qui inclut un compilateur, ainsi que de nombreux outils visant a faciliter l'investissement du Web par Java. Cette machine virtuelle execute un bytecode Java (similaire a de l'assembleur) qui ajoute des etapes supplementaires (decodage et interpretation) lors du runtime ce qui a pour consequence de ralentir fortement le fonctionnement d'une application par rapport a sa version compilee nativement (obtenue par exemple avec des langages tels que C ou C++).
Apres de tres nombreuses modifications visant a ameliorer le systeme, Java est devenu plus qu'une simple solution Internet, c'est dorenavant un langage utilise pour toutes sortes de developpements, distribues, client lourd ou leger, etc.
Internet
[modifier | modifier le code]Java fut cree en meme temps que le Web, et toutes les qualites que requiert le Web etaient implementees dans Java :
- un langage permettant un fonctionnement sur des machines structurees differemment ;
- une necessite de bande passante la plus minime possible, pour pallier l'etroitesse de celle offerte par le Web.
Un navigateur Java apparut des 1994 (HotJava) qui, tout en integrant Java, etait capable de faire fonctionner les applets Java (applications Java executees par le navigateur).
Netscape fut l'un des elements essentiels dans la creation et l'implantation de Java dans le parc informatique, en integrant Java dans son logiciel.
L'idee de depart a ete de reduire le travail du serveur ainsi que la quantite de donnees transmises via le reseau, en confiant davantage de taches a chaque ordinateur client.
Ouverture
[modifier | modifier le code]Sun a annonce le que l'environnement Java serait sous licence libre GNU GPL (avec extension << ClassPath >>) par etapes : immediatement pour le code source du compilateur Java ainsi que pour celui de la machine virtuelle Java HotSpot[2]. En , lors de la conference JavaOne, c'est l'ensemble du code Java qui a ete mis en open source (a 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 necessairement sous licence GPL. Quelque temps auparavant Sun avait deja 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 lancee en 1995
- 1.1 : 1997, ajout de jdbc pour les connexions aux bases de donnees, fichier Jar, introspection et serialisation entre autres
- 1.2 : 1998, Playground : JDBC 2 et compilateur JIT
- 1.3 : 2000, Kestrel : Grandes ameliorations de performances
- 1.4 : 2002, Merlin : JDBC 3, API de Logging et Java Web Start
- 5.0 : 2004, Tiger : Grandes ameliorations du langage (boucle foreach, generiques...)
- 6.0 : 2006, Mustang : meilleure integration avec le systeme d'exploitation, avec les classes Desktop et Systrays
- 7.0 : 2011, Dolphin : diverses ameliorations[3].
- 8.0 : 2014, Kenai : 56 nouvelles fonctionnalites dont les expressions lambda ou les methodes d'interface[4]
Standard Java
[modifier | modifier le code]Java Community Process
[modifier | modifier le code]Specifications
[modifier | modifier le code]Java SE
[modifier | modifier le code]Java, edition standard, est une plateforme normalisee, destinee au developpement de logiciels pour des ordinateurs personnels ainsi que des serveurs. La plateforme comporte une suite d'interfaces de programmation, qui permettent notamment de creer des interfaces graphiques, de manipuler des bases de donnees, des fichiers, d'utiliser le reseau, ainsi que les annuaires.
Java EE
[modifier | modifier le code]Java, edition entreprise, est une plateforme normalisee, destinee au developpement 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 destinees a creer des applications Web, envoyer des courriels, mettre en oeuvre et utiliser des services Web, mettre en oeuvre de la persistance et des transactions.
Java ME
[modifier | modifier le code]Java, micro edition, est une plateforme normalisee, destinee au developpement de logiciels sur des appareils informatiques qui n'ont que peu de ressources, tels que les telephones portables, les smartphones ou les assistants personnels. La plateforme comporte un ensemble reduit d'interfaces de programmation, qui permettent notamment d'utiliser la memoire flash, creer des interfaces graphiques et utiliser le reseau telephonique.
Logiciels
[modifier | modifier le code]Selon l'usage et le vecteur d'utilisation
[modifier | modifier le code]Java est une technologie particulierement bien indiquee pour tout ce qui concerne les environnements informatiques de postes heterogenes relies ou non par un reseau de type Internet.
- sur ordinateur
- 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 couplees avec JavaScript et les standards du Web : GWT, JSP, JSF...)
- applications mails (Google Mail, Yahoo Mail...)
Cette technologie est egalement tres utilisee dans le rodage et la mise en oeuvre des bonnes pratiques de la profession informatique elle-meme : tests avec par exemple JUnit, organisation et manipulation des projets informatiques avec Maven, Ant, Eclipse ou Netbeans, nouveaux langages ou meme langages existants qui trouvent appui sur le JRE tels Groovy, Scala, JRuby, etc.
Langages de programmation
[modifier | modifier le code]Via son langage intermediaire (bytecode), la machine virtuelle Java peut executer differents langages de programmation (apres compilation) :
- Java ;
- autres langages ecrits specifiquement pour la JVM :
- langages preexistants portes sur la JVM :
- JRuby (portage de Ruby),
- Jython (portage de Python),
- Rhino (moteur JavaScript),
- ColdFusion (migration complete),
- Clojure (dialecte de Lisp),
- Kawa (en) (dialecte de Lisp).
Communautes
[modifier | modifier le code]Java rassemble un nombre considerable de personnes et de societes, aux interets divers. Parmi les principaux :
- Sun, le createur, realisait les versions principales (pour Windows, Linux, et telephones), des outils de developpement (Netbeans), animait une communaute de developpeurs, ainsi que des comites de standardisation (les JCP : Java Community Process), avant d'etre repris par Oracle ;
- La fondation Apache ; de nombreux projets java phares, dont certains sont integres a la plateforme elle-meme ; un siege de Executive Comittee au JCP[5] ;
- La fondation Eclipse : cette fondation est la plus importante concernant Java et sa strategie de developpement a laquelle Sun n'ait pas participe. Oracle a depuis integre cette fondation ;
- Des societes de stature internationale telles Google, IBM[6], Oracle ; Microsoft et Netscape ont egalement ete des acteurs majeurs. Le cas de Microsoft est un peu particulier, puisque, si cette societe a accompagne les debuts de cette technologie, c'etait 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 systemes iOS et Windows Phone) ;
- Les lecteurs de disques Blu-ray ;
- Le monde open source a longtemps ete reserve, voire oppose, 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'annees[Quand ?], Java est dans le trio de tete pour la popularite des systemes informatiques, que ce soit en termes d'offres d'emploi, d'estime des developpeurs ou des decideurs[8],[9].
Annexes
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]- Langage Java
- Sun Microsystems, entreprise a l'origine de Java
- Machine virtuelle Java
Liens externes
[modifier | modifier le code]- (fr) Site officiel
References
[modifier | modifier le code]- | Sun Microsystems to Change Stock Ticker Symbol to JAVA (annonce officielle) et Bonjour JAVA - Adieu SUNW : explications en francais par Jonathan I. Schwartz, Chief Executive Officer and President Sun Microsystems, Inc.
- | Clubic, 13 novembre 2006 http://www.clubic.com/actualite-65334-sun-ouvre-code-java-licence-gpl.html
- | http://www.java.com/fr/download/faq/java7.xml.
- | http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html Java 8]www.oracle.com
- | Apache And The JCP.
- | 2001 Eclipse
- | Dans La Commission ouvre une procedure a l'encontre de Microsoft pour discrimination dans l'octroi de licences et refus de fournir des informations relatives a ses logiciels : La procedure engagee aux Etats-Unis par le Departement de la Justice porte essentiellement sur les mesures prises par Microsoft pour proteger sa position dominante dans les systemes d'exploitation pour micro-ordinateurs, en visant a affaiblir la position du navigateur web Navigator de Netscape et le systeme Java de Sun.
- | (en) << Programming Language Popularity >> (Popularite des langages de programmation - lien rompu).
- | (en) Tiobe Index.
| Technologie | |
|---|---|
| General | |
| Framework | |
| Techniques | |
| Langages de programmation | |