J'utilise moi-même Hibernate, et je vois des avantages et inconvénients dont personne n'a parlé.
Ce qui me manquerait le plus sans Hibernate, ce sont les chargements paresseux. Un gain de performance appréciable, mais complexe à coder soi-même. Hibernate le fait automatiquement.
Ce qui ne me manquerait pas, ce sont les problèmes de compatibilité avec d'autres librairies. Hibernate utilise des proxies qui affolent les librairies utilisant l'introspection de code, par exemple Jackson. Dans le cas de Jackson il existe un plugin, encore faut-il le savoir.
En parlant de Jackson, celui-ci possède des fonctionnalités appréciables permettant au développeur de gérer manuellement les cas complexes. Ça manque à Hibernate, et contourner un bogue peut être difficile.
Un problème récurrent que je vois avec les ORM est la façon de les aborder. M. Bendersky semble attendre de l'ORM qu'il permette de s'abstraire entièrement de la base de données sous-jacente et de traiter les données comme si elles étaient en mémoire vive. C'est trop en demander. Les ORM permettent d'économiser du code répétitif, point. Ils ne permettent absolument pas de ne pas savoir utiliser une base de données relationnelle et de ne pas utiliser SQL. Si on les utilise en connaissance de cause, ils sont très utiles.
Je dois admettre que mon expérience est à 99% sur Hibernate, donc d'autres développeurs ont peut-être une expérience différente.
























Partager