15 points par regentag 2024-11-06 | 62 commentaires | Partager sur WhatsApp

« Il existe deux sortes de langages de programmation : ceux dont les gens se plaignent, et ceux que personne n’utilise. » — Bjarne Stroustrup.

« Les personnes qui critiquent et se plaignent de Java sont généralement jeunes, et semblent avoir été davantage exposées à JavaScript qu’à quoi que ce soit d’autre. Comparé à JS, Java peut paraître un peu lourd et restrictif. Il y a du boilerplate partout, ainsi qu’un système de types strictement appliqué par le compilateur. Mais si j’avais le choix, je prendrais une base de code Java imparfaite plutôt que JS. Sans l’ombre d’un doute. »

« Ce n’est qu’après avoir acquis une véritable expérience avec du code réparti sur des dizaines ou des centaines de fichiers qu’on commence à comprendre que les soi-disant “restrictions” de Java sont en réalité des garde-fous qui empêchent de se tirer une balle dans le pied. »

« Découvrir Java puis y revenir a été une révélation. J’ai réalisé que j’aimais Java et son écosystème. J’ai donc décidé de noter quelques-uns de mes aspects préférés de l’écosystème Java. Alors, si quelqu’un dénigre Java, voici 25 raisons de lui expliquer pourquoi il a tort. »

  1. Un écosystème mature
  2. WRITE ONCE, RUN EVERYWHERE
  3. Compatibilité avec les versions précédentes (Backward compatibility)
  4. Langage à typage fort
  5. Cycle de publication rapide, amélioration continue
  6. De bons IDE
  7. Support de Native Image avec GraalVM
  8. Bibliothèques et frameworks open source
  9. Multithreading
  10. Une orientation objet mature
  11. Gestion de la mémoire et garbage collection
  12. Observabilité et monitoring
  13. Support de la programmation fonctionnelle
  14. Documentation abondante
  15. Outils de build et gestion des dépendances
  16. Puissantes capacités de test
  17. Une immense communauté
  18. Annotations
  19. Fonctionnalités de sécurité
  20. Un riche ensemble d’API
  21. Performances
  22. Concurrence structurée
  23. Threads virtuels
  24. Pattern matching pour l’instruction switch
  25. Templates de chaînes de caractères

62 commentaires

 
suckjava 2025-09-24

En réalité, tous les avantages listés pour Java me semblent être des points sur lesquels d’autres langages font bien mieux que Java.

 
sungwoo 2024-11-14

Personne ne semble mentionner Spring.
Je n’ai pas de reproche particulier à faire au langage Java lui-même,
mais le fait que, dans la réalité coréenne, il faille apprendre Spring m’a paru assez pesant, ce qui l’a rendu moins attrayant à mes yeux.

 
regentag 2024-11-14

Java, c’est bien, mais Spring, c’est… horrible T_T

 
nullvana 2024-11-08

Les 25 n’ont aucun vrai pouvoir de différenciation. Indépendamment du respect que je peux avoir, ce sont des hyènes festoyant sur le grand banquet du legacy.

 
fau1ty 2024-11-07

Ils avancent pas moins de 25 raisons pour expliquer pourquoi Java reste populaire en 2024,
mais il semble qu’il existe largement assez de langages capables de le remplacer sans que ce soit forcément Java...

 
lazyhack 2024-11-07

C’est plutôt la JVM qui est populaire.

 
sunrabbit 2024-11-07

La plupart de ces raisons ne constituent pas vraiment des points forts si on les compare aux écosystèmes des autres langages modernes, et l’auteur semble avoir rédigé son texte sans vraiment distinguer Spring de Java.

 
progdesigner 2024-11-07

Il est naturel de préférer un langage comme Java, puisque son environnement de développement est bien établi.

De la même manière, comme on ne peut être performant qu’en travaillant dans cet environnement, on a envie d’y rester, et si l’on nous demande de passer à un autre environnement, cela peut aussi susciter une certaine réticence.

Cela dit, à l’avenir, l’IA fera probablement bien mieux le travail de codage pour ce type de langages, et il semblera plus nécessaire que jamais d’avoir la capacité d’adaptation pour survivre dans des environnements variés, plutôt que de compter uniquement sur son environnement de confort.

Dans cette optique, la capacité à s’adapter à différents langages n’est plus une option, mais semble désormais indispensable.

 
love7peace 2024-11-06

S'il faut créer une web app d'entries, j'utiliserais forcément Java. Rien qu'avec le point n°1, la question est réglée... Pour du développement simple, du développement rapide, je trouve que Python est un bon choix. Et JS... moi, je le trouve tellement fouillis que ça m'agace.

 
newmanjoo 2024-11-06

Si je devais faire du Java, je ferais plutôt du Kotlin, et je considère que, plus qu’un langage comme Java, la famille .NET est celle qui suit l’évolution de Kotlin. Java devrait sans doute surtout rester comme langage de maintenance pour les serveurs d’administrations publiques autrefois construits en Java ; en Corée, les CEO ont tendance à s’obstiner avec Java parce qu’ils sont familiers de ce mot vu dans la publicité. Essayez Kotlin et .NET avant d’envisager Java.

 
tsboard 2024-11-06

Puisqu’on parle de Java, j’en profite pour poser la question… et Go, vous en pensez quoi ? Personnellement, je préfère en fait Kotlin à Java, mais j’ai accumulé trop de frustrations avec Gradle, donc je suis finalement en train de me fixer sur Go. Pour l’avoir utilisé, même brièvement, je me suis dit que partout où Java est nécessaire, Go pourrait peut-être aussi faire l’affaire.

Dans le cas de JS/TS, moi aussi j’aime bien, mais malgré tout, le comparer à Java sur un pied d’égalité me paraît un peu exagéré. Quoi qu’il en soit, il y a la contrainte du single thread, et même si certains font du multiprocessing avec pm2 ou autres, Java a aussi de très bons virtual threads, et je pense en réalité que c’est mieux. Bon, cela dit, en poursuivant ce raisonnement, j’ai fini par voir les goroutines et me poser sur Go… haha ;;

Je pense qu’il vaut mieux utiliser chaque langage au bon endroit selon les besoins. Même en 2024, j’aime toujours autant le PHP, et j’apprécie aussi JS, Java (Kotlin), même si ce n’est pas au niveau de Go pour moi. Un langage reste un outil, donc tant qu’on l’utilise correctement selon son objectif, n’est-ce pas l’essentiel ? Je laisse ce commentaire dans cet esprit.

 
shortstories 2024-11-07

Je pense que c’est vraiment devenu un langage tout à fait utilisable maintenant. Au travail aussi, je bosse uniquement en go.
À l’époque où on utilisait godep et glide, dès qu’une dépendance se décalait ne serait-ce qu’un peu, on pouvait passer la journée entière à tout bricoler pour que ça s’emboîte, au point de se demander si c’était vraiment un langage ou juste quelque chose qui tournait autour d’un langage.. 😂

 
sunrabbit 2024-11-07

Même s’il existe une contrainte liée au single-thread, à l’ère de l’orchestration où on encapsule dans des conteneurs pour éviter qu’un pod ne consomme trop de CPU, je ne me dis pas que cette contrainte soit si importante que ça.

À moins qu’au lieu de lancer plusieurs conteneurs sur un même serveur comme avant, on parle d’un conteneur qui consommerait énormément de CPU.

Dans la plupart des cas, les serveurs web ne consomment pas beaucoup de CPU et ont surtout beaucoup de débit d’E/S, donc je pense que Node peut aussi être considéré comme une option.

Bien sûr, si c’est un domaine très gourmand en CPU, on peut envisager un autre langage, ou appeler du code natif via napi.

 
savvykang 2024-11-06

Je pense que c’est un langage utile pour les tâches asynchrones, car il a la particularité de bien abstraire ce type de travail avec les goroutines. Le code asynchrone en Rust ou en Python me donne l’impression d’être trop réfléchi. Il tend aussi à avoir une charge cognitive assez élevée, aussi bien à l’écriture qu’à la lecture.

 
regentag 2024-11-06

Je n’ai utilisé que Go avant l’arrivée des generics, mais je trouve que c’est un excellent langage. Au début, les outils étaient vraiment médiocres, mais ils se sont beaucoup améliorés.

La syntaxe est un peu rustique, mais c’est aussi ce qui la rend facile à apprendre.

 
seunghaekim 2024-11-06

Ne vous disputez pas....

 
moderator 2024-11-06

Le débat s’échauffe.
Si vous avez une objection, veuillez n’indiquer que son contenu.
Les commentaires contraires aux règles d’utilisation du site ont été supprimés.
Par ailleurs, veuillez noter que les comptes dont l’activité non conforme aux règles s’est répétée ont été bloqués.
Nous vous remercions de maintenir un débat constructif.

 
[Ce commentaire a été masqué.]
 
regentag 2024-11-06

Java 1.8 est vraiment une excellente version !

 
roxie 2024-11-06

Je pense que le slogan « write once run everywhere », c’est peut-être le moment de le laisser un peu de côté maintenant… lol

 
regentag 2024-11-06

Mais bon, c’est Java après tout ! lol

 
secret3056 2024-11-06

Coder en Java dans IDEA est un plaisir ; sans IDEA, j’aurais été malheureux. (Je l’ai d’ailleurs été.)

 
tested 2024-11-06

En Corée, il y a aussi l’avantage à l’embauche et le framework e-government, au point qu’on parle presque d’une « république Java », donc il y a beaucoup de développeurs Java.
Dans les entreprises, il arrive souvent qu’on passe d’autres langages à Java, et d’après mon expérience, certains ? développeurs Java veulent vraiment ne faire que du Java.
Ils disent que les applications existantes construites dans d’autres langages posent problème et qu’il faut migrer vers Java. Mais ils ne veulent pas non plus faire du Kotlin.
J’ai eu l’impression qu’il y avait une certaine réticence à apprendre quelque chose de nouveau. Comme une attitude du genre : puisqu’on peut tout faire en Java, pourquoi faire autrement ?

 
[Ce commentaire a été masqué.]
 
dyumadel 2024-11-06

Ceux qui font du SI n’utilisent pas les génériques, non ?

 
mse9000 2024-11-08

On dirait bien que c’est justement ça le problème… hahaha

 
everyharu 2024-11-06

À ce niveau-là, on dirait que Java est une religion.
Les gens qui critiquent Java et s'en plaignent sont généralement jeunes et semblent être plus exposés à JavaScript qu'à quoi que ce soit d'autre.
Si on reformule cette phrase à l'envers, cela veut aussi dire que beaucoup de personnes qui ont utilisé js ont constaté par expérience que Java n'était pas terrible.
Pourquoi ne pas reconnaître que chacun a ses avantages et ses inconvénients, et se contenter de dire que Java est meilleur...
C'est un peu comme les gens qui disent que SQL est mieux sans avoir utilisé une document db, indépendamment de ses caractéristiques.

J'ai l'impression qu'on oublie le fait qu'il y avait déjà une situation où Java était largement utilisé, et qu'on n'arrive pas à changer parce que beaucoup de développeurs seniors ne savent faire que du Java et ne veulent pas changer. À l'heure actuelle, je pense que les points forts propres à Java sont presque inexistants.

 
cosine20 2024-11-06

D’après ma longue expérience, je pense que Python et JS ont une proportion de fanatiques encore plus élevée.

 
kbumsik 2024-11-06

Je pense que c’est probablement parce qu’ils sont dans une position où ils doivent plutôt mettre en avant JS/Python que Java, donc vous pouvez avoir l’impression qu’ils défendent leur point de vue avec plus d’insistance.

Personnellement, j’ai vu certaines personnes qui n’envisagent même pas du tout un autre langage que Java. À l’inverse, celles qui utilisaient d’autres langages semblaient pour la plupart prêtes à en utiliser un autre selon la situation.

 
cosine20 2024-11-06

Je peux imaginer que ce soit le cas si Java est la première langue qu’on apprend, mais comme je n’ai jamais vu ce cas autour de moi, j’ai du mal à me le représenter.

De mon côté aussi, le premier langage que j’ai appris en entrant à l’université, en cours, c’était le C++, puis j’ai naturellement découvert d’autres langages au fil des années, donc apprendre un nouveau langage ne me pèse pas tant que ça… En réalité, la syntaxe de base (déclaration de variables, structures de contrôle, fonctions, etc.) se ressemble plus ou moins partout.

Dans ce genre de cas, j’ai l’impression que c’est peut-être parce qu’on a appris le langage de manière trop étroite au départ, ce qui a réduit le spectre. Et j’ai davantage observé cela chez des personnes qui ont découvert Python comme premier langage pour le deep learning ou la statistique mathématique. Moi aussi, d’ailleurs, donc comme ce sont des retours d’expérience des deux côtés, on peut sans doute dire que les deux points de vue se valent.

 
moderato 2024-11-06

J’ai eu une expérience similaire, donc je pense la même chose.

 
hobbycoder 2024-11-06

Les personnes qui aiment Python ne prétendent pas que Python est une bonne langue. Pour JS non plus, il n’y a pas vraiment de gens qui insistent pour dire que c’est un bon langage. Que ce soit Python ou JS, c’est surtout que leur écosystème est bon pour développer dans certains domaines. J’ai l’impression qu’il n’y a que les gens de Java qui insistent coûte que coûte pour dire que c’est forcément bien..

 
aer0700 2024-11-07

Même les développeurs JS en font eux-mêmes une blague. Est-ce vraiment un langage... sans ts, on serait mal, bouhou.

 
roxie 2024-11-06

Si on devait vraiment prendre la défense de Java, on dirait qu’à l’inverse, c’est surtout Java qui devient particulièrement souvent la cible de moqueries pour toutes sortes de raisons. Un peu comme l’oncle du quartier que tout le monde connaît... ?

 
kandk 2024-11-06

Quand je cherche des contenus sur Java sur Google ces jours-ci,
je tombe sur une avalanche de billets de blog coréens qui répètent tous la même chose apprise en académie,
et ça m’agace parce qu’il est difficile de trouver des références correctes.

 
regentag 2024-11-06

La recherche Google s’est beaucoup dégradée...

 
jjpark78 2024-11-06

18, 25, 20, 10, 8, 6, 5, 3, 2, 1, etc. ne sont pas l’apanage de Java. Comparaison erronée

 
regentag 2024-11-06

À bien y regarder, Java dispose lui aussi de ce genre de fonctionnalités et il n’y a pas vraiment de raison de le critiquer ; je ne pense pas que cela veuille dire qu’il faut utiliser Java uniquement parce que c’est possible seulement avec Java.

 
lazydonkey456 2024-11-06

Au contraire, en le lisant, je n’arrive qu’à me dire… euh, .NET n’est-il pas meilleur ?

 
regentag 2024-11-06

J’aime aussi C#, mais en dehors d’un environnement Windows, je me demande s’il est vraiment nécessaire de l’utiliser.

 
lazydonkey456 2024-11-07

C’est le même contenu que le commentaire ci-dessus. Cette époque est vraiment révolue depuis très longtemps.
Le choix tardif de MS a vraiment déformé la perception des gens à ce point.

 
rabbitcarrot 2024-11-06

Si l’on ne développe que des applications Windows, l’écosystème MS offre beaucoup d’avantages, mais sur Linux ou macOS, je pense qu’il n’y a rien de mieux que Java. MS le prend en charge tardivement, mais il n’y a pas vraiment de raison de l’utiliser. Le timing n’est pas bon.

 
lazydonkey456 2024-11-07

Ce n’est plus le .NET de l’époque du .NET Framework, alors pourquoi le limiter aux applications Windows ?
Il y a déjà un moteur de jeu basé sur .NET qui tourne sur les téléphones que vous avez entre les mains ;

 
leetleet 2024-11-06

222

 
bichi 2024-11-06

333

 
gigisusu8888 2024-11-06

Ce n’est pas pour critiquer Java, mais si Java agace, c’est surtout parce que les développeurs Java sont particulièrement enclins à rabaisser ceux des autres langages, à faire des comparaisons, et à afficher une étrange fierté mal placée autour de Java. J’aime Java, mais je ne comprends pas pourquoi ils font ça. Chaque langage a sa propre philosophie, ses avantages et ses inconvénients, et son propre écosystème, c’est tout. Pourtant, certains affichent soudainement cette étrange fierté autour de Java, ce qui les rend antipathiques.

 
fooandbar 2024-11-06

Il semble qu’il faille présenter des éléments pour étayer la fierté des développeurs Java envers Java. S’il est difficile d’en fournir, j’estime qu’il s’agit d’une affirmation difficile à accepter.

 
regentag 2024-11-06

J’ai l’impression qu’il y a toujours ce genre de personnes pour n’importe quel langage ou outil. Au moment de sa sortie, Java était un langage plus branché que le C/C++, tout en étant largement utilisé en entreprise, ce qui a élargi le vivier de développeurs et l’a sans doute rendu plus visible.

Et ces derniers temps, j’ai l’impression que ce sont les développeurs Rust qui jouent ce rôle.

 
puersum 2024-11-06

Étonnamment, si Java est devenu dominant, c’est parce qu’ils ont dépensé énormément d’argent en marketing mdr hahaha
https://www.youtube.com/watch?v=NVuTBL09Dn4

 
puersum 2024-11-06

Il y a une vidéo YouTube sur la manière dont un langage devient grand public, et je pense que d'autres la trouveront intéressante aussi !
https://www.youtube.com/watch?v=QyJZzq0v7Z4

 
limc132 2024-11-06

Il faut s’en prendre aux développeurs Java, pas à Java lui-même…

 
gigisusu8888 2024-11-06

C’est plutôt une question de compréhension de l’écrit de votre côté…

 
limc132 2024-11-06

Même si je ne réponds pas, quelqu’un d’autre l’a déjà écrit.

 
gigisusu8888 2024-11-06

Pas du tout ?

 
secret3056 2024-11-06

La raison pour laquelle Java est agaçant, c’est

 
gigisusu8888 2024-11-06

On dirait que tu ne sais même pas ce qu’est la littératie.

 
kayws426 2024-11-06

Si l’idée vous est soudain venue de comparer Eclipse, créé en Java, à VSCode, créé en JavaScript (TypeScript)... est-ce une mauvaise comparaison ? Bien sûr, Eclipse offre davantage de fonctionnalités.

 
koxel 2024-11-06

C’est une mauvaise comparaison..
Il faut regarder à quelle époque ils sont sortis.
Quand Eclipse est arrivé, pendant un certain temps, Eclipse avait un statut comparable à celui de VS Code aujourd’hui.
Moi aussi, je trouve vraiment Eclipse peu pratique à utiliser, donc je ne l’utilise pas,
mais à l’époque, il n’y avait pas vraiment d’autre option valable qu’Eclipse.

 
[Ce commentaire a été masqué.]
 
[Ce commentaire a été masqué.]
 
kandk 2024-11-06

L’atout de JavaScript, c’est que le moteur V8 est maintenu par Google.
Java abandonné..

 
lazydonkey456 2024-11-06

Le backend d’une application Electron, c’est bien du JavaScript, non… Le processus principal et le processus de rendu s’exécutent séparément, mais tous les deux fonctionnent avec du code JavaScript.

De la même manière, la JVM n’est-elle pas au final aussi un runtime implémenté en natif ?