Java souffle sa 20e bougie
Que pensez-vous de l'évolution du langage et de son avenir sous l'égide d'Oracle ?

Le , par Hinault Romaric

0PARTAGES

5  0 
Voilà déjà 20 ans que le langage de programmation Java existe dans l’univers du développement informatique, et il n’est pas prêt à prendre sa retraite.

Les travaux sur Java débutent en 1991, sous le nom du projet Green, dans les laboratoires de Sun Microsystems. Le projet est dirigé par Patrick Naughton, Mike Sheridan et James Gosling. Il donne naissance finalement au langage de programmation « Oak ».

Basé sur une syntaxe très proche de celle du C++, le langage est destiné à la conception des applications pour les petits appareils. Il reprend le concept de machine virtuelle déjà exploité dans le Pascal UCSD.

En 1992, Sun développe avec Oak un assistant numérique, qui sera un échec. Mais, les éléments de base de Oak ont été repris pour créer un nouveau langage appelé Java, qui fut présenté pour la première fois le 23 mai 1995, lors de la conférence SunWorld à San Francisco.

Sun dévoile alors le navigateur Web HotJava écrit en Java, et capable d’exécuter des applets Java. Le concept a été repris par les autres navigateurs, dont Netscape.

L’explosion de la bulle d’Internet et le fait que Java ne dépende pas d’une plateforme particulière ont contribué au succès du langage de programmation.

Robuste, performant, multiplateforme et disposant d’un vaste ensemble de bibliothèques intégrées, Java s’est positionné à cette époque comme le langage de référence pour le développement d’applications d’entreprises.

Bénéficiant du support de certains géants de l’IT, dont IBM, Java devient l’un des langages les plus utilisés dans le monde. Au fil des versions, il gagne en maturité et s’enrichit des nouvelles fonctionnalités importantes, tout en concevant ses aspects fondamentaux.


Java constitue aujourd'hui la colonne vertébrale d'une multitude de logiciels présents aussi bien dans notre vie personnelle que dans notre vie professionnelle. Il est le langage de programmation utilisé par 9 millions de développeurs et embarqué aujourd'hui dans 7 milliards d'appareils et objets, selon Oracle. Pour Mark Reinhold, architecte en chef du projet Java, l’autre atout de Java est sa lisibilité et sa simplicité.

Les développeurs d’applications d’entreprise peuvent choisir librement dans un écosystème de 30 implémentations compatibles des standards Java EE 6 et Java EE 7, proposées par 12 éditeurs différents. Plus de 125 millions d'appareils multimédias basés sur Java ont déjà été déployés, et plus de 10 milliards de cartes JavaCard ont été déployées depuis l'arrivée de Java.

« Java s'est développé pour devenir aujourd'hui l'une des technologies les plus importantes et les plus incontournables de notre industrie. Ceux qui ont choisi Java ont été maintes fois récompensés par l'amélioration constante de ses performances, de son évolutivité, de sa fiabilité, de sa compatibilité et de ses fonctionnalités, » déclare Georges Saab, Vice President of Development, Java Platform Group chez Oracle. « L'écosystème Java rassemble des quantités impressionnantes de bibliothèques, de frameworks et de ressources pour aider les programmeurs les plus novices aussi bien que les experts. Le développement de Java lui-même s'effectue de façon transparente dans le cadre de la communauté OpenJDK. Avec les investissements considérables réalisés par Oracle et d'autres acteurs de cette communauté, nous sommes impatients d'assister aux 20 prochaines années d'évolution et de croissance de Java. »

Suite au rachat de Sun, Java est passé sous l’égide d’Oracle. Sous la supervision de la firme, deux versions majeures de la plateforme ont vu le jour , Java 7 et Java 8.

Java 8 représente l’une des versions les plus importantes de la plateforme. Java 8 apporte la plus importante évolution du modèle de programmatique de Java depuis son lancement. Comme nouveautés phares, on note les expressions lambdas, les méthodes par défaut, les interfaces fonctionnelles, Profiles ou encore Streams.

Actuellement, Oracle et la communauté travaillent activement sur la prochaine version de Java. La nouveauté la plus attendue de Java 9 est la modularité avec le projet Jigsaw, qui rendra sa taille encore plus pertinente et évolutive sur une large gamme d'appareils. Jigsaw a entrainé de gros changements au JDK. Elle permettra de découper la bibliothèque d’exécution de base de Java en différents modules. Ainsi, une machine virtuelle Java (JVM) pourra fonctionner sans le support de certains packages de base.

Java 9 apportera également la console en ligne de commande Java Shell, un outil interactif permettant d'évaluer les bouts de code Java ; une nouvelle API HTTP-Client pour supporter HTTP/2 et les WebSockets ; un portage pour l'architecture ARM AArch64 sur Linux ; et de différentes mises à jour des API existantes ainsi que quelques améliorations importantes des performances.

D’après la feuille de route publiée par Oracle, Java 9 sortira en version stable le 22 septembre 2016. Le gel des fonctionnalités est prévu pour le 10 décembre 2015.

Pour commémorer les 20 ans de Java, Oracle Certification offre une remise de 20% sur tous les examens de certification Java. Cette offre est disponible dans le monde entier jusqu'au 31 décembre 2015. Les candidats doivent fournir le code promotionnel Java20 lors de leur inscription.

Oracle ne s’est pas contenté de faire évoluer le langage. Il a également créé des sueurs froides dans la communauté, en poursuivant en justice Google pour violation de ses brevets Java dans Android et sa machine virtuelle Davilk. Oracle soutient que « Les API Java peuvent être protégées par le droit d’auteur ». Cette affaire représente une menace importante pour le secteur de la technologie.

Néanmoins, Java demeure le langage de programmation de choix de nombreux développeurs et compte évoluer désormais plus rapidement, à une fréquence d’une nouvelle version majeure tous les deux ans.

En tant que communauté de développeurs, souhaitons un heureux anniversaire à Java et célébrons les 20 ans de la plateforme.

Rétrospective des événements qui ont marqué les 20 années de Java

Et vous ?

Que pensez-vous de l’évolution de Java ?

L'acquisition de Java par Oracle a-t-elle été une bonne chose pour le langage ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de
https://www.developpez.com
Le 23/05/2015 à 23:30
La dernière fois que j'ai vue les sites Internet d'Oracle et Java, j'ai surtout remarqué la large gamme d'outils. Distribution Linux, Solaris, SGDB, Java, EDI, etc... Le tous très ouvert aux autres systèmes. Java n'est à mon avis qu'un reflet de la volonté d'Oracle vis-à-vis de la définition de ce qu'est une information et du principe de base de comment elle doit être traité.
Avatar de Ph. Marechal
Nouveau membre du Club https://www.developpez.com
Le 25/05/2015 à 14:47
La Java Bleue, j'aimais bien, surtout chantée par Fréhel, pour les reste...
Avatar de _skip
Expert éminent https://www.developpez.com
Le 27/05/2015 à 10:21
Citation Envoyé par Hinault Romaric Voir le message

Que pensez-vous de l’évolution de Java ?
Sur le plan du langage, elle a été lente mais globalement assez positive même si je fais partie des gens qui en attendaient un peu plus. Sur le plan spécifications/framework en revanche y'a vraiment eu de tout : les EJB2, JDO, JSF (<= ratage totalement inexcusable), heureusement que de nombreuses solutions tierces sont venues boucher les trous. Le client lourd a été abandonné, Swing et le projet swinglabs n'ont pas reçu l'attention nécessaire, puis l'épisode JavaFX qui devait marquer le tournant s'est avéré à la limite du foutage de gueule.

Plus sur la question langage, et sans ignorer les services que ça rend, on a la sacro sainte rétro-compatibilité qui empêche certaines évolutions. Parfois je me suis demandé si un moment ou à un autre on aurait pas profité d'un Java2 incompatible, mais lorsque je vois ce qui s'est passé avec python 2 et 3, il y a pas de réponse facile. Peut être que grâce aux build system sophistiqués qu'on utilise un peu partout et au bytecode, on aurait pu envisager de mixer du java1 et du java2 comme on le fait pour d'autres langages visant la JVM, mais dans tous les cas ça aurait été une entreprise périlleuse.


L'acquisition de Java par Oracle a-t-elle été une bonne chose pour le langage ?
Ce n'est peut être pas parfait sur le plan philosophique, mais au moins ça avance car la situation d'avant était totalement bloquée, on peut se rappeler de l'épisode Java7 pour s'en persuader.
Avatar de elijah509
Futur Membre du Club https://www.developpez.com
Le 27/05/2015 à 19:31
Citation Envoyé par _skip Voir le message
puis l'épisode JavaFX qui devait marquer le tournant s'est avéré à la limite du foutage de gueule.
Salut, pourquoi dis tu cela ?
Avatar de _skip
Expert éminent https://www.developpez.com
Le 28/05/2015 à 8:20
Citation Envoyé par elijah509 Voir le message
Salut, pourquoi dis tu cela ?
JavaFX a très très mal commencé malgré des promesses intéressantes, binding bidirectionnel, rendu graphique accéléré, successeur "nécéssaire" de swing et réponse de SUN à l'explosion des RIA, mais les premières versions étaient désastreuses et incomplètes. Et ça a juste mis bien trop de temps avant d'arriver à stade où on pouvait imaginer lui trouver un usage en production. Il y a des gens qui maintiennent que toute la version 1.x était à jeter, la version 2.x totalement incompatible a beaucoup progressé mais faut se rendre à l'évidence : c'est là depuis 2008 maintenant, c'est resté une petite niche et ça ne semble pas sur le point de s'arranger.

Si on avait voulu n'en faire ne serait-ce que le successeur de swing, il aurait fallu 10 fois cet investissement, puis aussi en tant que développeurs qu'on sente qu'il y a du solide derrière.
Avatar de elijah509
Futur Membre du Club https://www.developpez.com
Le 28/05/2015 à 9:07
Citation Envoyé par _skip Voir le message
JavaFX a très très mal commencé malgré des promesses intéressantes, binding bidirectionnel, rendu graphique accéléré, successeur "nécéssaire" de swing et réponse de SUN à l'explosion des RIA, mais les premières versions étaient désastreuses et incomplètes. Et ça a juste mis bien trop de temps avant d'arriver à stade où on pouvait imaginer lui trouver un usage en production. Il y a des gens qui maintiennent que toute la version 1.x était à jeter, la version 2.x totalement incompatible a beaucoup progressé mais faut se rendre à l'évidence : c'est là depuis 2008 maintenant, c'est resté une petite niche et ça ne semble pas sur le point de s'arranger.

Si on avait voulu n'en faire ne serait-ce que le successeur de swing, il aurait fallu 10 fois cet investissement, puis aussi en tant que développeurs qu'on sente qu'il y a du solide derrière.
Merci pour tes éléments de réponses même si je n'ai rien compris à par peut être le binding et la partie sur les versions. C'est ballot car depuis que JavaFX est devenu l'outil officiel pour la réalisation de fenêtre graphique d'application Java, pour la version Java 8, j'y avais jeté un oeil grâce a une série de video de la chaine youtube : "thenewboston" et ca avait l'air super de mon point de vu "développeur en alternance depuis 2ans" ... en gros je me suis fait berné par le jolie CSS et le Scene Builder
Avatar de OButterlin
Modérateur https://www.developpez.com
Le 28/05/2015 à 10:33
Citation Envoyé par _skip Voir le message
Sur le plan spécifications/framework en revanche y'a vraiment eu de tout : les EJB2, JDO, JSF (<= ratage totalement inexcusable)
Quand tu parles de ratage totalement inexcusable, quel est le problème selon toi pour JSF ?
Avatar de _skip
Expert éminent https://www.developpez.com
Le 28/05/2015 à 12:26
Citation Envoyé par elijah509 Voir le message
Merci pour tes éléments de réponses même si je n'ai rien compris à par peut être le binding et la partie sur les versions. C'est ballot car depuis que JavaFX est devenu l'outil officiel pour la réalisation de fenêtre graphique d'application Java, pour la version Java 8, j'y avais jeté un oeil grâce a une série de video de la chaine youtube : "thenewboston" et ca avait l'air super de mon point de vu "développeur en alternance depuis 2ans" ... en gros je me suis fait berné par le jolie CSS et le Scene Builder
Super? Ca l'est peut être devenu depuis le temps, mais c'est incontestable que si c'est "super" c'est que ça revient de franchement loin. Je te conseille d'aller demander à Bouye sur le forum javaFX ce qu'il pense de l'usabilité en production de JavaFX pour avoir un avis actualisé plutôt que le mien qui se base sur une expérience assez ancienne. Sinon pour le reste, le fait que c'est sorti initialement dans un état inutilisable au point que tous se demandaient ce que c'était que cette mauvaise plaisanterie de SUN et que c'est resté un truc de niche après 7 ans d'existence, tout est vrai.

Citation Envoyé par OButterlin

Quand tu parles de ratage totalement inexcusable, quel est le problème selon toi pour JSF ?
Là tu me pousses au troll ;-)
Le problème d'un standard java, soit arriver des années plus tard avec un framework une spécification largement inférieure à l'existant et pour seul argument le drapeau "it's a standard". J'arrive pas à imaginer que SUN se soit pointé avec cette chose en osant l'annoncer comme concurrent de ASP.net. JSF1 n'avait pas que son retard à déplorer, sa relation amour-haine avec JSP ou encore ses descripteurs en XML. Mais également sa complexité totalement surréaliste, tu ne trouvais pas un tutoriel de moins de 17 pages pour concevoir une simple application hello world avec 3 views et 2 formulaires. Tu voulais implémenter une identification login password avec des pages protégées? Fallait pour cela comprendre en détail les phaseListener et écrire du code de niveau gourou au point qu'on voyait recommander aux gens d'employer Spring Security (rien que ça!) ou des Filters Servlets. Envie de faire de la composition de page pour réutiliser ton layout entre les pages? Pas de bol ce n'est pas prévu, fallait attendre Facelets pour pouvoir faire ça. Ecrire des composants, avec des fonctionnalités ajax? Houla! Laisse ça aux experts.

En fait toutes les choses basiques étaient difficiles, à l'époque nous avons utilisé iceFaces pour éviter d'avoir à écrire trop de composants nous-mêmes car comme si ça suffisait pas, la palette de composants était super pauvre. On a fini par tout foutre à la poubelle et passer à Wicket parce lorsqu'on a compris que ça avait beau être standard, c'était indémerdable, on passait plus de temps sur les forums à chercher des solutions qu'à développer l'application, pour des besoins très simples on se perdait dans des considérations techniques dont on aurait jamais imaginé devoir se préoccuper. J'ai jamais de ma vie autant haï une techno web.

Tiens si t'en veux d'autres de ces récits de haine pure. Ca me vaudra peut être des votes négatifs, mais je persiste et signe que JSF était une dégueulasserie, que c'était jamais à la hauteur de ce qui se faisait à l'époque et même avant (Struts quelqu'un?). Jamais je n'ai vu quelque chose d'aussi complexe, incapable de résoudre le moindre problème récurrent du développement web (réutilisation de composants, composition de page, etc...) sans s'arracher les cheveux ou recourir à des extensions tierces.
Avatar de OButterlin
Modérateur https://www.developpez.com
Le 28/05/2015 à 14:10
Non, pas de troll, c'était pour avoir la raison du commentaire

Historiquement, je suis d'accord avec toi, avant la version 2, l'intérêt était... inexistant... surtout qu'un assemblage struts1 / struts-layout / tiles fonctionne super bien...

Depuis la version 2, je dirais que ça s'arrange bien, même si j'hallucine de voir qu'il y a toujours des problèmes avec les scopes (surtout avec du binding de composants)
Ce qui est certain, c'est que si on faisait un rapport emmerdements/fonctionnalités, ça ne volerait peut-être pas bien haut...
Et pourtant, j'aime bien le couple JSF2/Primefaces pour faire des applications RIA, mais ça ne correspond pas à tous les développements web.
S'il y avait une contrainte importante au niveau des utilisateurs connectés simultanément, ce ne serait pas vraiment ma solution privilégiée
Avatar de _skip
Expert éminent https://www.developpez.com
Le 28/05/2015 à 15:32
Citation Envoyé par OButterlin Voir le message
Non, pas de troll, c'était pour avoir la raison du commentaire
Historiquement, je suis d'accord avec toi, avant la version 2, l'intérêt était... inexistant... surtout qu'un assemblage struts1 / struts-layout / tiles fonctionne super bien...
Surtout que ce qui me dégoûte, c'est qu'ils n'étaient pas pionniers dans ce milieu. Il existait déjà des frameworks assez réussis desquels ils auraient pu s'inspirer dans le monde Java. Ou même reprendre les bons points d'ASP.net qui était une recette de framework par composant plutôt correcte? Mais non ils sortent cette horreur qui place le technique avant le fonctionnel et qui reprend tout le cake qui rendait java notorieusement complexe à mettre en oeuvre (Servlets, JSP) pour les sites web, je dis pas que java avait vocation à devenir RubyOnRails mais quand même.


Depuis la version 2, je dirais que ça s'arrange bien, même si j'hallucine de voir qu'il y a toujours des problèmes avec les scopes (surtout avec du binding de composants)
Ce qui est certain, c'est que si on faisait un rapport emmerdements/fonctionnalités, ça ne volerait peut-être pas bien haut...
Et pourtant, j'aime bien le couple JSF2/Primefaces pour faire des applications RIA, mais ça ne correspond pas à tous les développements web.
S'il y avait une contrainte importante au niveau des utilisateurs connectés simultanément, ce ne serait pas vraiment ma solution privilégiée
On a eu la même chose avec JPA, les premières versions c'était l'intersection entre hibernate et toplink. JavaFX mentionné plus haut pareil, inutile avant sa version 2 (et ça correspond à plusieurs années d'attente hein). J'aurai personnellement toujours préféré que SUN ou Oracle restent en dehors du monde du framework et s'occupent plus du langage.

Pour ce qui est de JSF2 et Primefaces, je suis un peu revenu de l'approche par composant. Après avoir essayé tour à tour JSF, Gwt, Vaadin j'ai l'impression que si ces solutions ont le mérite d'épargner de bonnes doses de javascript, elles me laissent toujours le sentiment de faire à peu près ce que tu cherches mais jamais exactement ce que tu veux. Pour cela je suis revenu à du Play/Grails, TypeScript et Angular pour mes RIA, plus de couches à gérer mais au moins je maîtrise mieux ce que ça fait et ce que ça ne fait pas.
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web