Nous sommes le mardi 18 mars 2014 et la 8ème version du langage Java est disponible en version finale. J’ai connu et vécu la sortie de presque toutes les versions de Java. Mes premières lignes de code en Java remontent à février 1997 à la fin de mes études… Cela commence à dater.
17 ans plus tard, la sortie de Java 8 est donc officielle avec l’annonce de la version « GA » (general availability) après presque un an de finalisation.
Le langage apporte beaucoup de nouveautés. Les interfaces fonctionnelles, les méthodes par défaut dans les interfaces, les expressions Lambdas (ou interfaces fonctionnelles), la possibilité de référencer des méthodes, l’api Stream, l’intégration de l’API JodaTime, un boost sur l’API des Collections, l’intégration de Nashorn, un moteur JS pour remplacer Rhino, et d’autres ajouts plus mineurs dans l’API.
Il sera intéressant de voir l’adoption de ces nouvelles fonctionnalités sur des projets en entreprise. Le développeur Java débutant doit d’abord maîtriser les bases du langage. Sur ce point, Java reste un langage facile à apprendre. Il donne d’excellentes bases, c’est un standard de l’industrie et il permet ensuite de découvrir d’autres langages sur la JVM.
Passé la phase d’apprentissage du langage, l’étudiant sera ensuite amené à apprendre des outils et des frameworks. En effet, les recruteurs ne cherchent pas de développeurs Java. Ils cherchent des développeurs Java J2Ee, JEE, Spring, Hibernate, BigData, MachineLearning… On découvre alors que l’employabilité est liée à la connaissance et l’expertise de quelques frameworks. Les « Cadres d’applications » ou même Cadriciel comme j’ai déjà entendu, sont les structures de base de beaucoup de projets Java.
Enfin, le développeur débutant découvrira les pratiques de programmation. Ecriture de tests, intégration continue, mise en prod continue… tout un univers qu’il est aussi indispensable de maîtriser aujourd’hui
Tout ceci pour vous dire qu’il va y avoir une fracture entre les développeurs et le marché.
En effet, je pense que nous allons parler bien plus du langage pendant quelques mois. Avec la sortie de Java8, les meilleurs conférenciers actuels sont universitaires. Nous sommes en plein dans l’enseignement et la maîtrise des bases du langage. En effet, Java8 ne vous demande pas simplement d’apprendre une syntaxe. Il demande aussi au développeur Java de se pencher vers la programmation fonctionnelle. De nouvelles notions, une autre façon de penser et de développer, et donc, de nombreux articles pour vous aider à sauter le pas. Autant cela semble trivial pour un étudiant en informatique, autant nous pouvons penser que la marche sera plus haute pour les personnes n’ayant pas de formation initiale en développement, en théorie des langages et en mathématique.
Nous passerons certainement quelques temps sur le langage, avant que de nouveaux frameworks Java arrivent sur le marché. D’ici quelques mois, nous verrons apparaître les premières utilisations de toute la puissance de Java8. Il y aura aussi sans doute un effort pour s’adapter et se former à ces nouvelles versions. L’expert Spring de 2010 sera-t-il toujours aussi pertinent en 2016 ?
Ce qui m’intéresse plus, c’est de faire l’analogie avec Scala. Le langage est aujourd’hui en version 2.10.3. En 2009, les conférences et les discussions portaient sur le langage. Le passage de Scala 2.9 à 2.10 a été parfois violent. Il y a eu des articles de blog, des conférences et beaucoup de débat dans la communauté.
Maintenant, ce temps est terminé. Depuis que Typesafe parle « framework/outil », le ton est complètement différent. Nous avons terminé d’échanger et d’écrire des blogs sur la syntaxe et l’API. Aujourd’hui, ce qui fait que votre compétence Scala a de la valeur, c’est les outils. Il devient important de connaître Akka, Play, SBT pour n’en citer que 3. De même qu’il était important de connaître tel ou tel framework Java.
Enfin, et là je vous promets de nouvelles discussions intéressantes, il sera aussi pertinent de comparer Scala 2.10 à Java8 sur l’API Collection et la programmation fonctionnelle.
A suivre très bientôt
.
0 no like
excellent article,
merci de bien vouloir me repondre sur ce point :
« nous pouvons penser que la marche sera plus haute pour les personnes n’ayant pas de formation initiale en développement, en théorie des langages et en mathématique. »
cela veut dire qu’il serait indispensable de maitriser ces sujets, à un niveau.
autrement dit je suis developpeur par la pratique(j’ai fais une licence pro en dev jee) et ce sans etudier des modules comme « machine learning » et » theorie de langages », et encore pire pas une grande maitrise des maths.
aussi si vous etes connaisseur du sujet, m’est il possible d’apprendre ces sujets ?
A signaler la RC2 de scala 2.11 est sortie hier et que la version finale ne devrait plus tarder 😀
@islam Oui, il est possible de se mettre à niveau. Pour cela, les outils d’enseignement à distance gratuit comme Coursera proposent justement ce type de cours.
super ,merci pour la reponse,
sinon vous ne pensiez pas à mettre un system de commentaire + notif ?: D.
sinon coursera quand ca vient aux modules dont je voudrais vraiment maitriser (ML, AI) les maths sont avancés faudrait refaire le background(algebre, espace victorial, theorie de langages… et ceci en autonome c’est pas evident )
De l’avis de beaucoup (moi y compris) après avoir gouté à la programmation fonctionnelle il est difficile de s’en passer ! Le développeur Java deviendra-t’il encore plus gourmand ?
Dans tous les cas après 6ans d’attente, le code du développeur Java va enfin prendre un nouvel essort… J’attends moi aussi, avec impatience, les outils et frameworks qui vont profiter de ces nouvelles facilité proposées par le SDK !