Java est-il un langage de programmation mourant ?
Un expert présente son point de vue

Le , par Cedric Chevalier

39PARTAGES

13  10 
Malgré son extrême popularité et le fait qu’il soit le langage de programmation adopté par de nombreux professionnels en entreprises, Java a toujours essuyé de nombreuses critiques.

Certains développeurs l’accusent d’être lourd, lent (comme exemple, les interfaces graphiques utilisant Swing se chargent lentement) et beaucoup trop verbeux.

Des alternatives comme Scala et Groovy ont vu le jour pour libérer les développeurs de la contrainte de la syntaxe longue imposée pour l’écriture du code Java.

On peut également lire dans les forums que Java est en train d’amorcer son déclin, et que d’ici peu il sera relégué aux archives. Ce à quoi s’oppose fermement Andrew Binstock, éditeur en chef pour Dr Dobbs.

Andrew ne contredit pas les nombreux détracteurs de Java. En effet, il trouve aussi que Java est extrêmement verbeux. Cependant, pour lui il ne s’agit en aucun cas d’une pratique négative. Par exemple malgré sa longueur, MethodExpressionValueChangeListener est plus parlant que la fonction strstr()de la bibliothèque standard du C.

Pour Andrew Binstock, Java a encore de longs et beaux jours devant lui. Le dernier Java One en date a été un succès, et chacun de ces évènements rassemble un nombre de développeurs plus important que le précédent.

Java est le langage de développement natif pour la plateforme populaire Android et occupe la troisième place des langages les plus populaires utilisés sur GitHub derrière JavaScript et Ruby. Position qu’Andrew attribue à une raison d’ordre historique. Il dira « GitHub à l’origine était un répertoire pour les projets Ruby ».

De plus, avec les annonces de la fonctionnalité closures (qui diminue le besoin de l’utilisation des classes anonymes et facilite la programmation fonctionnelle) et une meilleure modularité pour les versions 8 et 9 de Java respectivement, Binstock ne conçoit pas le déclin de Java.

« Ce que je vois c’est un langage en constant développement, avec une grande communauté très active, qui bénéficie d'une plate-forme largement utilisée pour de nouveaux langages. Rien de tout cela ne semble indiquer un langage en déclin. », dira-t-il.

Source : Dr Dobbs

Et vous ?

La phase de déclin peut-elle s'appliquer réellement aux langages de programmation ?

Selon vous, qu'est-ce qui maintient Java au top malgré la flambée de nouveaux langages de programmation ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 14/10/2013 à 13:27
Citation Envoyé par Cedric Chevalier Voir le message
Des alternatives comme Scala et Groovy ont vu le jour pour libérer les développeurs de la contrainte de la syntaxe longue imposée pour l’écriture du code Java.
Si tu ne veux pas de contraintes de programmation, tu ne fais pas de programmation...
Quoi qu'on en dise, le programme fait ce qu'on lui dit de faire, pas ce qu'on veut qu'il fasse, et ceci est independant du langage... Certains sont moins verbeux, d'autres plus, mais ce n'est pas ca qui "libere" les developpeurs ou les contraint.

Par exemple malgré sa longueur, MethodExpressionValueChangeListener est plus parlant que la fonction strstr()de la bibliothèque standard du C.
Methode d'expression de changement de valeur de l'ecouteur, c'est plus parlant que "chaine-[dans]-chaine" ? Pas pour moi non... D'ailleurs, je n'ai toujours pas compris le nom de la fonction Java.

Pour Andrew Binstock, Java a encore de longs et beaux jours devant lui. Le dernier Java One en date a été un succès, et chacun de ces évènements rassemble un nombre de développeurs plus important que le précédent.
Bien sur que c'est un succes : 5 jours de fun conference a San Francisco, tous frais payes par l'entreprise ? Je signe ou ??

La phase de déclin peut-elle s'appliquer réellement aux langages de programmation ?
Bien sur, mais dans le cas present, je ne vois pas en quoi Java serait plus ou moins en declin qu'un autre langage.

Selon vous, qu'est ce qui maintient Java au top malgré la flambée de nouveaux langages de programmation ?
Le fait que tout le monde beaucoup de gens parle Java, et que la robustesse de ce langage n'est plus a demontrer. Oui, il y a eu, et il y aura encore, des bugs dans la JVM, de meme qu'il y en a dans les autres compilateurs. Mais beaucoup moins que dans d'autres.
C'est un langage connu, et reconnu, et la plupart des decideurs en entreprise ne vont pas s'en detourner sur un coup de tete...
Oui, ca n'empeche pas que pour un projet de maquette, ils utilisent Scala ou Groovy, mais pas pour un vrai projet, le risque est trop grand, la communaute trop petite, la notoriete trop faible.

Inventer un nouveau langage, c'est bien, mais s'il n'y a pas un besoin derriere, ca ne sert pas a grand chose. Or la plupart des derniers nes le sont "pour remplacer X", qui n'est pas du gout du developpeur -- Ce n'est pas un besoin, mais une envie, c'est assez different.
22  3 
Avatar de fr1man
Expert confirmé https://www.developpez.com
Le 14/10/2013 à 21:41
Quel est l'intérêt de ce genre d'article ?
Générer du trafic, mais à part ça ?
Le pire c'est qu'on y a droit de plus en plus souvent.
Entre le sujet et les 9/10 des réponses (dont la mienne) sans aucun intérêt, on va pas aller loin.
La grande majorité des gens qui n'aiment pas Java, ne le connaissent pas et évidemment croient le connaitre et confondent leurs goûts avec de vrais arguments qualitatifs...
18  0 
Avatar de Kearz
Membre expert https://www.developpez.com
Le 14/10/2013 à 13:34
La phase de déclin peut-elle s'appliquer réellement aux langages de programmation ?

Selon vous, qu'est ce qui maintient Java au top malgré la flambée de nouveaux langages de programmation ?
La première question est bizarrement posé, est-ce qu'un langage peut décliner? Ben bien sûr. COBOL est encore utilisé mais il a largement décliné depuis les année 60.

Maintient de JAVA?
Java: ça marche.
Java: C'est bien documenté.
Java: C'est fortement enseigné.
Java: C'est très très utilisé.
Java: C'est logiciel, c'est web.
Java: C'est multiplateforme.
19  3 
Avatar de GPPro
Membre éprouvé https://www.developpez.com
Le 14/10/2013 à 14:43
Citation Envoyé par Cedric Chevalier Voir le message

...
On commence les posts à troll dès le lundi maintenant ???
15  3 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 14/10/2013 à 14:07
Citation Envoyé par hunyka Voir le message

OUI, OUI, OUI JAVA est mourant. Javascript voir les langages qui compile du javascript tel que coffeescript persisterons mais JAVA est mourant comme le PHP.
Qu'est-ce qui te fait croire ca ? Pourquoi dis-tu qu'un langage (presque) inconnu comme coffeescript persistera alors que Java va decliner ?

A titre d'exemple, on dit depuis... que le C est mourant, en declin, en fin de vie, ... Alors qu'il est toujours dans le top2 du classement TIOBE (en depit de tous les reproches que l'on peut faire a ce classement comme aux autres, c'est tout de meme un classement reconnu). Tient, et qui est l'autre top 2 avec le C ? Java justement -- et ce depuis la creation du classement en 2002....
14  3 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 14/10/2013 à 16:29
Citation Envoyé par Spleeen Voir le message
C'est bien ce que je disais, les développeurs Java (pour les étudiants n'ayant jamais fait d'assembleur ni de C, ce qui est pour moi inconcevable à titre personnel) se foutent complètement des perfs. Le tout c'est qu'ils soient pas hypocrite, qu'ils se l'avouent.
Un developpeur qui se fout des performances a raison dans plus de 90% des cas...
Lorsque tu as besoin de multiplier 2 matrices (de taille raisonnable) une fois par mois, ca ne sert a rien de passer 2 semaines a trouver un algo qui te fera gagner quelques secondes.
Normalement, il faut d'abord faire quelque chose qui fonctionne avant de se poser des questions d'optimisation, selon la bonne vieille regle des 80/20 : tu passes 80% de ton temps dans 20% de ton code : tant que tu n'as pas identifie exactement les 20%, ca ne sert a rien d'optimiser !

Je ne compte plus combien de gens j'ai vu optimiser, a mort, la lecture de la configuration pour un programme serveur qui tourne en 24/7... Ca ne sert a rien.
Par contre, une fois ton application ecrite, un petit coup de profiler qui te donne les quelques methodes dans lesquelles tu passes le plus de temps, et hop, c'est bon.

Tu remarqueras que ces notions sont independantes du langage.

Et je pense que tu ne t'es pas penche sur les performances des JVM depuis un bout de temps

Enfin, un test simple, fait une multiplication de deux matrices. Avec un bête algo. Prends le meilleur pour chaque langage, en gardant la même complexité Oméga.
Tu n'as jamais lancé de profiler ? Fait un clock() pour voir ? Je sais pas c'est la base normalement...
C'est un peu comme comparer les performances des processeurs en comparant les bogomips (c'est a dire le nombre de NOP qu'un processeur peut executer par seconde) : ca te donne une idee de quelque chose, mais pas de programmes reels.

Java est utilise dans la plupart des cas pour faire des serveurs qui sont utilises par de multiples clients. Oui, Java va etre plus lent que le C pour faire un appel a clock(). Mais ce n'est pas pour cela qu'il est utilise -- et le C non plus.
12  1 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 14/10/2013 à 16:59
Citation Envoyé par guillaume07 Voir le message
La situation est très simple.
Ceux qui ont un intérêt à ce que cette technologie ne meurt pas(développe en Java pour vivre principalement) trouverons des arguments pour aller dans le sens du "oui java à encore un avenir radieux devant lui", ceux qui développe dans d'autre langages ont quant à eux intérêt à dire l'inverse pour se donner une plus-value sur le marché du travail.
1/ Il est possible d'avoir un peu d'honnetete intellectuelle. Tu trouveras ici des gens qui font du Cobol qui peuvent tout a fait te montrer que oui, c'est un langage en declin, et qu'en meme temps ils ont du boulot pour 2.

2/ La preuve, j'ai plutot defendu Java jusqu'ici, alors que j'y suis relativement allergique.
11  0 
Avatar de fabien29200
Membre habitué https://www.developpez.com
Le 14/10/2013 à 22:16
Ça commence vraiment à gaver ce genre d'articles et les réponses qui s'en suivent.

Entre les gens qui n'ont jamais fait de Java mais qui disent quand même que c'est nul, ceux qui croient qu'on change le code Java pour tourner sous Linux ...

Bref, c'est tout sauf constructif.
Je fais du Java tous les jours depuis 9 ans.
Y a des choses géniales (les IDE, les milliers de frameworks, la communauté open source ...), y a des choses moins bien (une certaine verbosité, une VM qui induit des ressources supplémentaires, la mémoire à savoir paramétrer correctement ...).

Bref, c'est comme tout, ce n'est pas parfait. Maintenant, j'adore développer dans ce langage.
Personnellement, je ne crois pas qu'un langage faiblement typé remplacera les lourds du secteurs (tous aujourd'hui fortement typés), mais ce n'est que mon avis.

Mais en tout cas, un langage :
- fortement typé
- massivement open source et communautaire
- utilisé par des millions de développeurs
- performant (je serai curieux de voir les perfs des langages interprétés genre PHP, Python & co face à Java)
- multiplateforme
- permettant de faire du web, des GUI, du messaging, des démons
- ayant les meilleurs IDE gratuits que j'ai vu
- possédant des milliers de bibliothèques utilisées en prod
- utilisé et soutenu par de grandes multinationales (Oracle, Google, IBM, Red Hat, SAP ...)
- étant la base des applications l'OS mobile le plus répandu

ne mourra pas dans les 10 prochaines années. Ni même dans les 30 suivantes.

Point barre.
Si vous n'aimez pas Java, ben n'en faites pas, personne vous y oblige.
14  4 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 15/10/2013 à 10:38
La plus grande qualité du monde Java, c'est la JVM. C'est une petite merveille d'ingénierie logicielle, et il est probable qu'elle survive de quelques décennies à la mort du langage Java.

http://stackoverflow.com/questions/2...or-the-java-vm
11  1 
Avatar de Carhiboux
Expert éminent sénior https://www.developpez.com
Le 14/10/2013 à 16:24
Du code sale en java, il y en a aussi je n'ai pas dit que ce n'était pas possible hein. J'en vois régulièrement.

Et l'exemple avec le nom de classe interminable en est un.

Je vais corriger un peu mon exemple parce que c'est vrai que le

var toto = "rastatpopulos" n'est pas si horrible que cela. On voit vite de quoi il s'agit.

Maintenant, si j'ai une déclaration du type :

var titi = monObjet.maMethode();

Là je suis plus embêté. Et oui, l'IDE me fournit des outils pour savoir, mais il faut chercher un peu. L'information n'est pas immediatement accessible.

J'aime autant (mais j'admets volontiers tout la subjectivité de la chose) :

String titi = monObjet.maMathode();
9  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web