Hier soir … c’était le printemps ?

Parce qu’hier soir, c’était chtijug, chtijug spécial Spring, et Spring boot en particulier

Pour laquelle Brian Clozel a fait un gros boulot de livecoding.

Alors Spring Boot, qu’est-ce que c’est ?

Eh bien c’est tout ça

D’après ce que j’ai compris, c’est une façon pour les gens de Spring de simplifier la vie des développeurs en fournissant

  1. Une façon très chouette de bootstrapper une application à partir de leur site web.
  2. Un framework d’utilisation de l’ensemble des couches Spring, qui inclut évidement le code, mais aussi les bonne spratiques d’utilisation
  3. Une interface « simplifiant » l’utilisation des autres bibliothèques de Spring.

En revanche, Spring Boot n’est pas une version simplifiée de Spring (tout Spring peut être utilisé dans Boot), ni un outil à réserver aux POC.

Donc, brian nous a fait du live-coding. Et sans utiliser cette cochonnerie de thème sombre illisible. Et ça c’est bien.

On a donc pu voir en action

  • Spring-data-mongo
  • Spring-rest (je reviendrai plus bas là-dessus)
  • Spring-security

Et quelques autres.

Au passage, j’ai beaucoup apprécié la façon d’utiliser les TODO de Brian, qui lui permettait de dérouler dans un ordre sympatoche les différents éléments de sa démo.

Il a ensuite fait une rapide présentation des différentes nouveautés de Spring 4.1 (en oubliant de préciser que certaines ne fonctionnent qu’avec java 8, comme par exemple les injections de types paramétrés).

Sauf que …

Comme le dit fort bien Thibaud

Pour clarifier un peu … J’ai fait du Spring il y a maintenant 8 ans. A l’époque, on était en plein XML hell, et Spring en était le champion. Des fichiers XML partout, avec des beans à câbler dans tous les coins, c’était l’enfer. Et je me souviens en particulier à l’époque d’un aspect pénible de Spring, qui était le fait de devoir toujours passer par la doc pour obtenir des infos : rien n’était découvrable automagiquement dans l’IDE.

Aujourd’hui, le XML Hell a été remplacé par l’annotation hell. Et honnêtement, ça ne change rien au problème : on ne sait toujours pas quel bean vient de quel endroit, et qui est injecté où.

Vous serez tenté de me dire que c’est exactement pareil dans le JavaEE d’en face, et vous aurez raison. Cependant, dans le monde JavaEE, j’ai l’impression qu’il existe une distinction plus claire entre les différents types de composants : les EJBs, les beans sont plus facilement définis, et mieux isolés. Enfin, je trouve.

Spring-data a tout copié sur gaedo ?

Quoi ? Vous ne connaissez pas gaedo , La meilleure librairie de mapping objet/stockage en Java ?

Je n’ai pas pu m’empêcher d’y penser quand j’ai vu cet écran

IMG_20150203_192539

Que vous pouvez comparer avec la doc de gaedo sur les finders dynamiques… Ouaip, c’est pareil. Et ouaip, on a tous copiés sur Ruby on Rails.

Oui mais Spring boot, c’est léger ?

Comparez par exemple avec DropWizard (comme l’a fait JavaLobby), à Wisdom ou à ninja … Dans tous les cas, Spring boot apporte effectivement la légereté de ces outils en s’appuyant sur la force de Spring. Mais du coup, c’est loin d’être aussi léger que ce que vous croyez : mettre en place un stockage va impliquer l’utilisation de Spring-data-*, qui va vous tirer des tonnes de dépendances, et il en sera de même pour implémente rune API REST : vous passerez par la librairie idoine du portfolio Spring à travers une couche d’adaptation, et du coup ce ce sera encore une fois un gros paquet de dépendances, et une complexité pas forcément masquée.

Conclusion

Donc une session intérressante, sur un des frameworks majeurs du monde Java, mais qui n’en était pas pour autant exaltante. Et c’est bien normal : Spring est une solution mature, déployée à des échelles industrielles, et dans des environnements qui n’ont rien de glamour. Ils ne cherchent donc pas à épater les utilisateurs, mais plutôt à trouver une solution qui marche, et qui réponde sérieusement aux problèmes des applications d’aujourd’hui.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s