Quelle est la pérennité des frameworks Web Java au vu des évolutions technologiques actuelles ?
Partager votre point de vue

Le , par Robin56

18PARTAGES

7  0 
Pendant plus d'une décennie, les applications Web Java se sont appuyées sur un format assez commun :
  • un Front-End s'appuyant sur un framework Web Java (Struts, JSF, etc.) ;
  • un Back-End en Java classique.

Cependant, cette tendance tend à évoluer depuis quelques années. De nombreuses raisons émergent poussant à l'abandon de l'utilisation des frameworks Web Java. Est-ce un effet de mode ou cela se base-t-il sur de réelles bonnes pratiques ? C'est ce que nous allons tenter de cerner à travers ce débat.

Logan de l'équipe Java nous donne son avis sur cette tendance. Il l'explique par plusieurs points majeurs :
Citation Envoyé par Logan Mauzaize
1. Le tout Web
Tout est connecté à Internet et pas simplement des ordinateurs : téléphone, tablette, TV, appareil photo, montre, voiture, frigo, absolument tout ! Toutes ces vues possibles deviennent ainsi difficiles à gérer pour un serveur d'application.

La vue se décorrèle encore davantage de la logique métier et de l'organisation des données.

2. Nouveaux standards
La standardisation des HTML5, CSS3 et autre ECMAScript 2015 permettent aujourd'hui aux développeurs de réaliser des applications Web très riches plus sereinement. Ces standards ont certainement aidé les navigateurs à devenir plus performants. Il faut ajouter à cela que les machines deviennent toujours plus puissantes.

Ces éléments permettent ainsi aux applications Web de prendre en charge des calculs (et donc la gestion de la vue) qu'on limitait autrefois aux clients riches.

3. Scalabilité
Puisque tout est connecté, le nombre de requêtes tend à exploser. Les serveurs d'applications doivent donc se munir d'un maximum de puissance pour être en mesure de le gérer. Séparer du traitement des données et de la génération de la vue est alors un élément nécessaire.

À cela s'ajoute que les frameworks Web sont souvent gourmands en données de session, car orientés stateful.

4. Orientation service
L'interconnexion des systèmes est également une tendance. Les frameworks Web ne permettent alors pas toujours de gérer ce type d'interface. Il devient plus logique de structurer une organisation en service plutôt que de servir du contenu web.

5. Volatilité
L'utilisation des frameworks Web tend également à s'enfermer dans une technologie. En effet, difficile de changer de framework ou carrément de socle technologique. La séparation de la vue permet ainsi de faciliter la transition technologique aussi bien niveau vue que côté traitement des données. Une équipe peut ainsi bénéficier plus facilement d'une organisation Front-End/Back-End plutôt que des développeurs Full-Stack.

Ce n'est pas la fin pour autant
La gestion d'interface côté serveur a encore quelques beaux jours devant elle. Nombreuses sont les personnes formées à Java et ses différents modèles de développement Web, mais beaucoup moins pour gérer des services, du JavaScript, etc. Les éléments de sécurité également restent à la charge du serveur. Il est alors parfois plus simple de tout gérer côté serveur pour garder le contrôle des données diffusées.

À noter qu'Angular2 fournira également un service permettant d'effectuer du prérendu (et donc du calcul de vue) auprès du serveur.
À travers son retour d'expérience, Logan met ainsi en évidence :
  • l'émergence des microframeworks comme mentionné à travers ce sondage : Utilisez-vous les microframeworks Java en 2016 ? Si oui, lesquels ? ;
  • la popularisation des modèles à base de JavaScript du côté Front-End (à la place d'un framework Web Java). L'on peut citer AngularJS ;
  • le passage à des solutions n'étant plus orientées Java (comme celles à base de NodeJS).

Toutes ces tendances vont dans le même sens : une plus forte utilisation de frameworks Web basés sur d'autres langages (JavaScript en premier lieu) et des modèles ne se basant plus sur les frameworks Web Java éprouvés. À noter que tout ceci met en évidence une véritable problématique : la maintenabilité de l'existant (la reprise des applications Web développées entièrement en Java).

Votre opinion

Pensez-vous ainsi que tous ces constats sont avérés ?
Et s'ils le sont, qu'ils mettent la perte de vitesse de Java dans le monde web, voire de la disparition à moyen terme des frameworks Web Java ?
La maintenabilité des applications existantes en Java ou la migration vers ces nouveaux socles peut-elle être un frein à cette transition technologique ?
Envisagez-vous une migration ?

N'oubliez pas de justifier toute position au sein de vos commentaires.

Pour aller plus loin

Voici quelques liens pour approfondir le sujet :


Merci à tous pour votre participation.

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

Avatar de OButterlin
Modérateur https://www.developpez.com
Le 16/06/2016 à 12:32
Il n'y a pas qu'un type d'application web, je ne pense pas que les nouvelles tendances visant à déporter une partie de la charge de l'interface au poste client soient forcément une bonne chose, j'ai toujours le problème de la compatibilité du javascript sur les différents navigateurs.
Pour moi, tant qu'il n'y aura pas unification de ce langage sur les navigateurs, il n'y aura pas d'avenir dans ce sens... ça reviendrait à imposer un navigateur pour une application, un non sens total !

Les frameworks "à l'ancienne" comme disent certains me semblent évoluer dans le bon sens, intégrant du "dynamisme" javascript à l'IHM.
Le couple JSF2/Primefaces reste pour moi une référence pour le développement d'applications RIA.

Pour un site de vente en ligne à fort trafic, j'utiliserais certainement autre chose, plus "basique" et donc plus réactif...

Pour ce qui est de l'utilisation abusive de la session (HttpSession), c'est surtout un problème de mauvaises pratiques des développeurs qui se simplifient la tâche plutôt que de se poser les bonnes questions...
Ceci dit, rien n'est pas parfait, dans aucune des technos d'ailleurs
Avatar de neoncyber
Membre du Club https://www.developpez.com
Le 22/06/2016 à 9:14
Voila un sujet intéressant mais pour rappel Angular est uniquement destiné aux SPA ?
Donc tous le reste on fait comment coté client ?
Avatar de OButterlin
Modérateur https://www.developpez.com
Le 22/06/2016 à 9:19
Citation Envoyé par neoncyber Voir le message
Voila un sujet intéressant mais pour rappel Angular est uniquement destiné aux SPA ?
C'est quoi cette bête ???
Avatar de bilgetz
Membre averti https://www.developpez.com
Le 22/06/2016 à 9:21
Citation Envoyé par OButterlin Voir le message
Il n'y a pas qu'un type d'application web
Je suis tout a fait d"accord.

Certaine applications n'ont pas besoin de dynamise et pour cela, un bon vieux framework à l'ancienne fonctionne très bien.
Il ne faut pas oublier non plus les sites qui ont besoin d'accessibilité, et Javascript et accessibilité ne font pas bon ménage.

Bon après si on pouvait vraiment foutre certain framework à la poubelle çà serai un bonne chose.....
Avatar de ddoumeche
Membre extrêmement actif https://www.developpez.com
Le 22/06/2016 à 10:23
Personnellement, je pense que les frameworks basés sur du Javascript sont très innovants car créés surtout par de jeunes enthousiastes, et directement impactés par les changement de mode graphique des OS.

Comme cela ne coute pas très cher de créer un tel framework, mais qu'en plus il faut vendre du service aux éditeur de contenu en ligne, les frameworks sont condamnés pour l'instant à une perpétuelle évolution.

En conséquence, struts est mort depuis longtemps et JSF suit son chemin (de toute façon, personne n'a pas le digérer) avec une quantité d'offres d'emplois ridicule.

Coté backend, on ne ressent pas une telle nécessité d'évolutions permanente et JavaEE et Spring sont donc là pour durer.
Avatar de Eric30
Membre régulier https://www.developpez.com
Le 22/06/2016 à 10:48
Citation Envoyé par OButterlin Voir le message
C'est quoi cette bête ???
Single Page Application

Une bestiole qui consiste comme son nom l'indique à transférer toute la charge au client, la page ne se chargeant en fait qu'une fois, le navigateur, via JavasScript, ne récupére que les données utiles, la mise en forme ne se faisant que côté client.
Avatar de Eric30
Membre régulier https://www.developpez.com
Le 22/06/2016 à 10:50
Citation Envoyé par bilgetz Voir le message
Je suis tout a fait d"accord.

Certaine applications n'ont pas besoin de dynamise et pour cela, un bon vieux framework à l'ancienne fonctionne très bien.
Il ne faut pas oublier non plus les sites qui ont besoin d'accessibilité, et Javascript et accessibilité ne font pas bon ménage.

Bon après si on pouvait vraiment foutre certain framework à la poubelle çà serai un bonne chose.....
Je partage en partie cette opinion.

Il y a en effet plusieurs types de besoins. Certains gros framework seront adaptés dans certains cas (des applications par exemples) là ou des micro-frameworks seront plus intéressant quand on a besoin de moins de choses: API, WebServices...

C'est difficile d'avoir un avis tranché.
Avatar de petogo
Membre régulier https://www.developpez.com
Le 22/06/2016 à 10:59
Citation Envoyé par OButterlin Voir le message
C'est quoi cette bête ???
https://en.wikipedia.org/wiki/Single...ge_application

- La popularisation des SPA touchent tout les framework et toutes les technos (même NodeJS). L'excuse de l'interopérabilité entre les différent navigateurs est aujourd'hui quasi obsolète (si on oublie IE..). Certes, Angular &co ne sont pas adaptés pour tout les cas d'usages mais sont maintenant incontournable pour des applications riches.

- l'arrivée des SPA entraîne moins de besoins côté back end, d'ou le gain d'interêt pour des framework plus léger.

- Et d'un autre côté il y a bien un effritement de la popularité de JAVA en tant que back end web :
src : https://www.google.com/trends/explor...tz=Etc%2FGMT-2
Je trouve la courbe particulièrement intéressante, elle montre java perd globalement en popularité au fil du temps malgré l'arrivée d'Android. Si on regarde uniquement les statistiques sur les pays développés, le choc est d'autant plus brutal alors que la Chine et l'Inde font le chemin inverse.

Plusieurs raisons, avec les SPAs, on fait moins de java côté front-end. Mais également l'arrivée de nouvelles alternatives comme NodeJS ou encore dans une moindre mesure, les languages alternatif de la JVM Scala, Clojure. Et plus globalement avec l'avènement des archi micro-services, on ne crée plus comme il y a 10 ans des SI mono-langage et mono-database.

- Pour la question de la migration, ça implique de réécrire entièrement le front-end + une façade REST sur le back-end. C'est très lourd surtout si on rajoute la potentielle montée en compétence de l'équipe.
Avatar de ddoumeche
Membre extrêmement actif https://www.developpez.com
Le 22/06/2016 à 11:09
Petit sondage en passant : qui croit à la pérennité de Node.js ici ?
Avatar de OButterlin
Modérateur https://www.developpez.com
Le 22/06/2016 à 12:37
Citation Envoyé par Eric30 Voir le message
Single Page Application
Merci pour la précision, SPA étant plus connu comme la Société Protectrice des Animaux, la recherche sur google m'a gonflé

Bah là, des applications d'une seule page, je ne sais pas trop ce que ça représente en volume comme applications, ce qui est sûr, c'est que ça ne correspond pas du tout à ce qu'on développe chez nous...
Si l'IHM s'adapte profondément entre les interactions (construction dynamique de l'écran), on en reviendrait à réinventer l'applet... en moins stable...

Bon, personnellement, j'aime bien le javascript pour enrichir le html monolithique... si l'avenir est là, pourquoi pas après tout, il faut savoir évoluer en permanence dans ce métier, c'est ce qui fait son intérêt (à mes yeux)
Responsables bénévoles de la rubrique Java Web : Mickael Baron - Robin56 -

Partenaire : Hébergement Web