Diverse, c'est bien le mot.
Je trouve certains projets inutiles depuis des années, voire contre-productifs. Par ex. commons logging, qui n'apporte rien au-dessus de java.util.logging, sinon de n'être pas standard et d'induire des dépendances.
Certains autres sont une collection d'antipatterns. Ex. : l'utilisation de beanutils est généralement selon moi la meilleure manière de lier des fonctionnalités d'une application à des détails d'implémentation. Changer un nom de champ dans une classe a des répercussions inattendues. On casse les principes de design les plus importants.
Dans de nombreux projets apache, il n'y a peu de cohérence d'un projet à l'autre et au sein d'un projet. Ainsi, certaines sources sont truffées de gestion d'exceptions hasardeuse : blocs try/catch avec rien dans le catch (ou just affichage et on continue), ...
Ce qui me dérange le plus, c'est souvent le manque de spécifications derrière les implémentations (commons, struts, ...). Ces librairies sont souvent présentées comme simplifiant le développement ; c'est selon moi la meilleure façon de s'assurer d'avoir du code hasardeux.
Attention, je dis bien que je trouve que la qualité est variable. Cela signifie pour moi qu'il y a de très mauvais projets... comme de très bons. Aussi, je ne parle que des projets Java. J'apprécie beaucoup lutece ou derby, même si je n'ai eu que très peu l'occasion de les utiliser.
Je n'avais pas cité mes arguments pour éviter le débat dans ce forum. Je suis conscient que mes arguments risquent de ne pas être partagés. Si quelqu'un veut en discuter, je propose d'ouvrir un nouveau fil de discussion pour ne pas encombrer celui-ci.
Partager