Toutes les distribs se foirent pour bien intégrer Java. Deux hypothèses :
Toutes les distribs sont incompétentes
Java est, de par son design, bien plus complexe (pour ne pas dire impossible) à intégrer correctement.
Aucune n'a autant de ressources pour Java qu'elle n'en ont pour C, C++, perl ou python ?
En Python, je configure un PYTHONPATH, une bonne fois pour toutes, pour tous mes projets et toutes mes dépendances. C’est à dire que c’est une seule fois lors de l’installation du système.
En Java, je dois tripatouiller mon classpath à chaque dépendance de chaque projet.
Rien n'empêche d'avoir un gros classpath pour tout le monde, mais ce n'est pas une bonne pratique parce que c'est dépendant du système (tu contrôle moins les dépendances de ton projet) et que l'objectif du Java c'est d'être portable.
C’est pour ça que l’écosystème Java est si difficile à bien packager, et qu’il nécessite des outils complexes pour gérer les dépendances.
Tu trouve les autotools simples ? Personnellement je préfère travailler avec maven. Bien sûr il existe des alternatives au autotools comme CMake que j'aime bien, mais ils restent relativement peu utilisés.
Mais je pense connaître assez Java pour avoir une réponse, qui est : « soit tu gères ton classpath à la main pour chaque projet (ce qui, on en convient tous, est un peu ridicule), soit tu utilises un outil genre maven. Tu n’as pas d’équivalent du PYTHONPATH ». Si je pose la question, c’est parce que j’espère me tromper, parce que cette approche ne me convient pas du tout.
Aucun outil ne t'enguelera si tu a des bibliothèques dans ton classpath que tu n'utilise pas. Tu peut avoir un gros classpath avec toutes tes bibliothèques, c'est quelque chose qui se faisait beaucoup avant maven. Les outils récents, par leur gestion des dépendances te permettent de ne pas avoir à utiliser un gros classpath. Encore une fois c'est ce que fait virtualenv : il te crée un PYTHONPATH réduit.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Intérêt
Posté par barmic . En réponse à la dépêche Sortie d'une première version stable de Go. Évalué à 4.
Aucune n'a autant de ressources pour Java qu'elle n'en ont pour C, C++, perl ou python ?
Rien n'empêche d'avoir un gros classpath pour tout le monde, mais ce n'est pas une bonne pratique parce que c'est dépendant du système (tu contrôle moins les dépendances de ton projet) et que l'objectif du Java c'est d'être portable.
Tu trouve les autotools simples ? Personnellement je préfère travailler avec maven. Bien sûr il existe des alternatives au autotools comme CMake que j'aime bien, mais ils restent relativement peu utilisés.
Aucun outil ne t'enguelera si tu a des bibliothèques dans ton classpath que tu n'utilise pas. Tu peut avoir un gros classpath avec toutes tes bibliothèques, c'est quelque chose qui se faisait beaucoup avant maven. Les outils récents, par leur gestion des dépendances te permettent de ne pas avoir à utiliser un gros classpath. Encore une fois c'est ce que fait virtualenv : il te crée un PYTHONPATH réduit.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)