IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

Java est-il un langage de programmation mourant ?


Sujet :

Débats sur le développement - Le Best Of

  1. #61
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 850
    Points
    850
    Par défaut
    Citation Envoyé par Carhiboux Voir le message
    C# c'est sympa, mais justement, le var nom = "rastapopulos"; c'est le genre de ligne de code qui m'agace. Parce que plus loin, quand je vais manipuler nom, je vais pas savoir de quel type de variable il s'agit.
    Quand tu manipuleras le nom, tu sauras parfaitement qu'il s'agit d'une chaîne parce que dans le cas d'espèce "rastapopulos" est une manifestement une chaîne et que même quelqu'un qui n'a jamais programmé en C# est capable de dire.

    L'inférence de type permet d'éviter de la redondance, mais si le code n'est pas clair alors on peut choisir de ne pas l'utiliser.

  2. #62
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 850
    Points
    850
    Par défaut
    Citation Envoyé par Grom61736 Voir le message
    Prends une bonne grosse application programmée par des dizaines de personnes voir plus. Bizarrement, l'avantage de la gestion de la mémoire se transforme en désavantage avec une gestion de la mémoire catastrophique car faite à l'arrache...
    ... ou alors bien faite, mais qui revient à avoir écrit un gc spécifique à l'application!

    Greenspun l'avait déjà dit en 1993 : "any sufficiently complicated C [or C++] or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp."


  3. #63
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Points : 4 205
    Points
    4 205
    Par défaut
    Ce qui sauve Java, c'est sa gratuité (outils compris), le fait qu'il soit multi-plateforme et multi-usage et sa communauté.

    On peut tout faire avec Java, et sur tous les supports.
    Ce langage a une très grande communauté et reste massivement enseigné dans les universités et utilisé en entreprise.

    Mais ce n'est pas grâce à Oracle mais à Sun !

    Par contre, pour ceux qui ont le choix, la curiosité et le budget, je pense que Java est écarté.

    Me concernant, j'ai aimé travailler en Java pendant mes études, même si j'avais un peu de mal quand il fallait faire des descripteurs de déploiement et autres trucs du même genre.
    Entre temps, j'ai touché à .NET et C# dans le monde professionnel (pendant 2 ans). J'ai bien aimé. Dans mon dernier projet en entreprise, j'ai dû revenir sur du Java (c'était du Websphere Portal/WCM avec Maven sur RAD).
    Mon dieu qu'est-ce que ça a été dur ! Entre la lenteur de tout ça, l'aspect usine à gaz, la mauvaise ergonomie sous Eclipse (rien que la coloration syntaxique sur un projet web est horrible), l'aspect en effet très verbeux avec multitude de fichiers de configuration complexes. En plus projet très mal géré avec utilisateurs mécontents.

    Quand on voit en plus la prolifération des failles de sécurité importantes depuis qu'Oracle a repris les rênes et le manque de réactivité d'Oracle, ça vaccine définitivement.

    J'ai interrogé mes anciens collègues. En gros tous ceux qui ont essayé autre chose que Java/J2EE ne mettent pas Java dans leur préférence (c'est une boîte qui panache Java, PHP et .NET).

  4. #64
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par LSMetag Voir le message
    multitude de fichiers de configuration complexes
    que Java/J2EE ne mettent pas Java dans leur préférence (c'est une boîte qui panache Java, PHP et .NET).
    la programmation par annotation et la CDI réduisent drastiquement ces fichiers de configurations

  5. #65
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 268
    Points
    268
    Par défaut
    J'ai toujour considéré la verbosité de Java comme un atout, la pluspart des IDE de nos jours, génere les getters/setter/constructor/etc sur demande, et l'autocompletion nous faciite la tâche.

    Prenons quelqu'un qui n'a jamais fait de Java, on lui montre le code c'est simple a lire, Il y a beaucoup moin de sous-entendu que dans les autres languages.

    Mais c'est vrai pour comprendre ce qu'une méthode est sensé faire dans un autre language, on peut toujour aller lire les tests unitaires, en espérant qu'il y en aient

  6. #66
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Points : 9 402
    Points
    9 402
    Par défaut
    Citation Envoyé par atha2 Voir le message
    Troll ? Pour information, la JVM génère du code natif quand c'est nécessaire... Et puis je ne sais pas d'où tu sort tes 7 et 10 fois plus rapide que Java mais c'est clairement n'importe quoi. En faite j'aurais même plutôt tendance à croire (je n'affirme pas, je n'ai pas fait de bench pour vérifier) que l'algo sera plus rapide en Java qu'en C/C++, le code est compilé à l’exécution donc en fonction des spécificités (nombre de coeur, RAM...) de la machine cible.
    Elle compile du code natif mais elle n'optimise pas tout cela faut pas abuser non plus...
    Pour info : http://embarcaderos.net/2011/01/23/p...ion-with-java/
    L'optimisation viendra du code et non de la jvm.
    On a le droit de défendre son bout de gras mais faut peut être pas partir trop loin dans le troll, sinon on va finir par dire que Java est le seul langage qui fait le café !

  7. #67
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    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...

  8. #68
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 162
    Points
    162
    Par défaut Don't feed the troll
    Ç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.

  9. #69
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Points : 488
    Points
    488
    Par défaut
    Le langage qui supplantera Java n'a pas encore été inventé donc ce langage et son armée de développeurs à travers le monde n'ont aucun soucis à se faire, je paris même que des développeurs prendrons leur retraite après avoir côtoyé du Java toute leur carrière. Par contre pour ce qui est des langages en vogues en ce moment comme Javascipt (est-ce un langage ?) ou PHP je ne paies pas cher de leur devenir.

    Et puis quand à la verbosité supposée de Java c'est sa plus grande force car qui a vraiment envie de revenir aux année 70 et aux écrans 80 colonnes ? Ou aux à la compacité à outrance ? Non je crois que le secret du succès d'un langage est aussi le résultat de sa facilitée de maintenance, parfois les développeurs oublient qu'a la fin de leur mission d'autres prendrons le relais et s'arracheront parfois les cheveux à déchiffrer leur code ... autant de jours/homme perdu pour rien.


  10. #70
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 527
    Points : 1 525
    Points
    1 525
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Java est pour moi le seul langage à implémenter correctement tous les concepts de POO. Faites donc des classes abstraites ou des implémentations d'interface avec php[...] Bon courage...
    Ce que j'aime bien avec ces articles, c'est que ça génère du troll à foison grâce à des gens qui n'y connaissent rien mais qui tiennent cependant à le faire savoir.

    http://www.php.net/manual/fr/language.oop5.abstract.php
    http://www.php.net/manual/fr/languag...interfaces.php

  11. #71
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Points : 3 768
    Points
    3 768
    Billets dans le blog
    12
    Par défaut
    @Pill_S
    Faites donc des classes abstraites ou des implémentations d'interface avec php, ou alors de la limitation de visibilité en javascript... Bon courage...
    Il est tout à fait possible de créer des classes abstraites ou des interfaces en PHP, d'ailleurs ce langage implémente même la notion de visibilité private/protected/public.
    Chose embêtante en PHP = Le constructeur se comporte comme une méthode (pas possible de réduire la visibilité d'un constructeur par exemple).
    Chose embêtante en Java = la visibilité package.

    @persi
    le var nom = "Rastapopoulos" sujet à moquerie, sera bientot la norme, remplaçant le bien pensant string nom = "Rastapopoulos" ou autre
    Dictionary<string, List<string>> dico = new Dictionary<string, List<string>>(); pas malin et ignorant des IDE d'aujourd'hui.
    Il est tout à fait possible de faire ceci en Java maintenant :
    Dictionary<String, List<String>> dico = new Dictionary<>();

    Deuxièmement, utiliser l'inférence de type avec le mot-clé var à la place du type String c'est ridicule, on s'en sert pour les types plus compliqués à écrire comme Dictionary<String, List<String>>.

    Ce qu'on peut craindre en C# c'est l'utilisation de l'inférence de type pour toutes les déclarations, voir pire, l'utilisation de dynamic à tort et à travers.

  12. #72
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Ce qu'on peut craindre en C# c'est l'utilisation de l'inférence de type pour toutes les déclarations
    Je ne vois pas très bien en quoi c'est un problème, à partir du moment où on arrive à voir clairement le type de la variable. C'est une facilité d'écriture, rien de plus.

    Citation Envoyé par Gugelhupf Voir le message
    voir pire, l'utilisation de dynamic à tort et à travers.
    Là évidemment ce serait plus grave, mais le développeur qui fait ça, c'est qu'il n'a rien compris à ce que ça implique...

  13. #73
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 26
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    @Pill_S

    @persi

    Il est tout à fait possible de faire ceci en Java maintenant :
    Dictionary<String, List<String>> dico = new Dictionary<>();

    Deuxièmement, utiliser l'inférence de type avec le mot-clé var à la place du type String c'est ridicule, on s'en sert pour les types plus compliqués à écrire comme Dictionary<String, List<String>>.

    Ce qu'on peut craindre en C# c'est l'utilisation de l'inférence de type pour toutes les déclarations, voir pire, l'utilisation de dynamic à tort et à travers.
    Si on peut le faire maintenant c'est que JAVA va dans ce sens non ? d'après ce que je vois sur les messages d'autres améliorations en ce sens sont en cours d'arrivage. Donc oui ca confirme une tendance, lié à un besoin de lisibilité (et aller à l'essentiel ca en fait grandement parti) et de productivité. C'est juste que JAVA est à la bourre la dessus, et que scala par exemple m'a l'air dans l'air du temps.

    Il y a pas si longtemps le simple fait d'évoquer "var" était un blasphème aujourd'hui ca passe, demain ce sera ça le ridicule j'espère:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dictionary<String, List<String>> test = new Dictionary<String, List<String>>()
    la majorité a considéré (considère ?) que c'etait la seule facon correcte de faire et que ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var test = new Dictionary<String, List<String>>();
    n'est pas lisible et/ou pose des problemes de maintenance...c'est le monde à l'envers de la logique... et je le dis parce que je l'ai vécu lors d'audit par exemple il y a quelques mois.

    - Pour ce qui est de l'utilisation de "dynamic" à tort et à travers .... faut rien comprendre a ce qu'on fait.

    - Pour l'inférence systématique, j'aimerai qu'on juge les impacts que ça aurait sur la maintenabilité: de demander quand le lecteur du code ne devine pas directement et sans ambiguité le type d'un retour d'une fonction; de passer la souris sur le var pour visualiser le type. Puis comparer ça aux problèmes liés à la lourdeur de code (à la lecture et écriture) qu'engendre de répéter les types à chaque fois pour tout.

    Ceci suppose d'avoir l'IDE adapté je sais pas ce qu'il en est sur les inférences de type avec eclipse et scala par ex.

    Un test sans à priori et objectif m'intéresserait vraiment si c'est réalisable.

    Le var est un exemple parmi d'autres qui arrivent juste maintenant ou ne sont pas encore arrivés: closures, partial class, linqToObjects, async, méthodes d'extensions.

    De la meme maniere si en c# je pouvais faire un substring safe comme ca: nom[0..10], ca m'arrangerait aussi, ca ne prete pas plus à confusion qu'une méthode classique.

  14. #74
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fabien29200 Voir le message
    ayant les meilleurs IDE gratuits que j'ai vu
    J'espère que tu ne parle pas d'éclipse.

    Citation Envoyé par fabien29200 Voir le message
    Point barre.
    Si vous n'aimez pas Java, ben n'en faites pas, personne vous y oblige.
    Si, et c'est là tout le problème du JAVA.

  15. #75
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Citation Envoyé par Golgotha Voir le message
    J'espère que tu ne parle pas d'éclipse.



    Si, et c'est là tout le problème du JAVA.
    Eh oui, comme tu le dis, beaucoup d'entreprise impose le java car c'est ce qu'elle vende. Je l'ai appris en université, pratiquer en entreprise, et je n'en demors pas (c'est mon avis), Python est bien plus puissant à mes yeux.

    Ce post voit s'affronter au final la communauté pro et anti java j'ai l'impression. Ce qui en ressort, c'est que comme pour n'importe quoi d'autre, il y a toujours des arguments pour et des arguments contre.

    Mais dans tous les cas, il y a des choses sur lesquels il faut rester objectifs, et je pense notemment à eclipse. Je ne remet pas en cause la puissance de l'outil, sa modularité, les add-ons existants, ... Mais il faut reconnaitre que le choix du langage avec lequel il est écrit n'est pas judicieux, car c'est un logiciel qui en grossissant devient de plus en plus lent à démarrer. A ses debut, je me souvient, le demarrage était rapide, mais maintenant...

  16. #76
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par Golgotha Voir le message
    J'espère que tu ne parle pas d'éclipse.
    une fois démarré le matin, il est très rare que je sois obligé de le redémarrer dans la journée. J'utilise debian, eclipse 4.3, jdk 7 et jboss 7.1 pour quasiment tous mes dev et je ne regrette pas du tout mon expérience windows/c#/visual studio


    Citation Envoyé par Golgotha Voir le message
    Si, et c'est là tout le problème du JAVA.
    ce ne sont pourtant pas les offres sur c++, c#, .Net, etc.. qui manquent

  17. #77
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 501
    Points : 1 160
    Points
    1 160
    Par défaut
    Je pense quand JAVA était jeune, on disait que le C et C++ serait mort.

    Mouais à la sortie d'un nouveau langage, on dira tous que machin sera mort.
    Prenons aussi le contexte, je vois mal par exemple des entreprises changer de langages du jour au lendemain surtout que leur Système Information est totalement basé dessus.

    Il est trop implémenter pour sortir et disparaître comme ça. Plus on avance, plus tout les langages sont en déclins.

    On parle de gestion mémoire surtout pour les mobiles. Mais on oublie que les mobiles respectent aussi la loi de Moore. Bien sûr ce n'est pas la solution.

    Java ne mourra pas avant un bon moment ou même pas d'ailleurs.

  18. #78
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 359
    Points
    359
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Quand on perçoit un tant soit peu les avantages du typage fort, de la richesse des api, et de tout le tooling qui tourne autour de Java, je vois pas trop comment on peut dire qu'il est mourant...
    Effectivement, je vois pas dans le post d'origine une seule preuve que Java est en train de mourir...

    Citation Envoyé par Pill_S Voir le message
    On va le remplacer par quoi? Du javascript?? hahaha, laissez-moi rire... impensable, à moins d'accepter de diviser sa productivité par 2 (et de remplacer une bonne partie de notre temps de dév par du temps de debug)
    Pour des programmeurs Java qui sont habitués à se faire alerter pour tout et n'importe quoi par leur compilo oui. Pour des devs rigoureux, le temps passé en debug est le même qu'un autre langage. Par contre, une fois que t'as goûté (et que tu t'es cassé les dents 2/3 fois) aux typages faibles et aux conversions implicites, tu décuples ta productivité et alors ça sera très difficile de repasser à Java !

    Citation Envoyé par Pill_S Voir le message
    Que cela soit verbeux, je trouve cela plutôt un avantage qu'un inconvénient... "public static final int MA_VAR = 4" ne laisse aucune place au doute, c'est une constante de type int POINT BARRE. Allez-y, déclarez-moi une constante en javascript
    var MA_VAR = 4

    Après si tu t'amuses à modifier des variables qui ont cette gueule, je vois pas l'intérêt d'utiliser des conventions de nommage... :/

    Citation Envoyé par Pill_S Voir le message
    Java est pour moi le seul langage à implémenter correctement tous les concepts de POO.


    Citation Envoyé par Pill_S Voir le message
    Faites donc des classes abstraites ou des implémentations d'interface avec php, ou alors de la limitation de visibilité en javascript... Bon courage...
    Les interfaces et les classes abstraites existent en PHP...

    Un exemple de limitation de visibilité en JavaScript :

    (function(){
    var toto = 3;
    })()

    ta variables toto est limitée au scope de la fonction. Effectivement les scopes sont très différents du Java, effectivement ça peut paraitre bizarre au début mais avec des bonnes libs, ce genre de truc peut être encapsulé facilement (par exemple la gestion des namespaces de ExtJS qui est basé sur les scopes de fonction).

    Citation Envoyé par Pill_S Voir le message
    Java est aussi le seul langage à disposer d'une librairie hallucinante (de base), et encore enrichie par tous les commons-*...
    Tu connais quoi comme autre langage ? Tu connais C# ? Je pense pas que l'API de dotNET ait grand chose à lui envier

    Citation Envoyé par Pill_S Voir le message
    Le seul point avantageux de js aurait été les closures, mais la question ne se pose plus puisqu'elle vont enfin arriver
    Comment tu fais des RIA full web en Java côté client ? Tu utilises GWT ?

    Citation Envoyé par Pill_S Voir le message
    Bref trollez si vous voulez, mais la réalité est très très claire en entreprise: la fin de Java, c'est ni pour aujourd'hui, ni pour demain.
    Côté serveur je suis bien d'accord, mais comme j'essaye de le démontrer je pense que c'est plus une question de stratégie des SSII, que grâce aux qualités intrinsèques de Java.

  19. #79
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Points : 3 768
    Points
    3 768
    Billets dans le blog
    12
    Par défaut
    Le var du C# n'a pas la même signification que celle du JavaScript. C'est juste de l'inférence de type. Le comportement du mot-clé dynamic l'est par contre ! Pourquoi inclure un tel mot-clé dans un langage fortement typé de base ? Là il y a blasphème

    Avec le temps, j'ai appris que lorsqu'on donne une certaine ouverture à un langage, certains développeurs n'hésitent pas à abuser de cette technique. Par exemple en PHP, j'ai déjà vu un projet avec des classes rempli de méthodes magiques __get() et __set() , avec un switch sur un string, servant de "méthodes"... à la place de créer de vraies méthodes !
    Pourquoi ? Pour obscurcir le code ? Embêter ses camarades/successeurs ?

    C'est pour cela que je n'aimerais pas forcément voir des features tels que :
    • le mot-clé dynamic de C# en Java, car c'est aux frameworks de gérer les types (ex: valeurs http) en interne avec des annotations/introspection.
    • le mot-clé partial, qui fera en sorte d'avoir un bout de classe qui traine dans X fichiers différents.
    • les surcharges d'opérateurs, qui ne sont vraiment utiles qu'avec des types immuables comme String (déjà inclu), ou BigInteger/BigDecimal (pas encore inclu).

    Java c'est avant tout un langage pro, donc assez stricte, qui n'inclue pas des mot-clés futiles comme goto par exemple. Et ce n'est pas le langage où tu t'attends à un comportement bizarre (sauf utilisation de AWT/Swing). Pour ce qui est de await/async c'est peine une nouveauté qui vient d'apparaitre avec C#5

    Le problème avec les personnes qui ont fait du Java et qui n'ont pas aimés, c'est qu'ils sont forcément tombés sur des projets pourris avec des frameworks pourris comme Struts rempli de fichiers XML, ou du JSP/Servlet avec du code Java dans les JSP
    Essayez le framework standard JSF2, comme le font d'autres sociétés à l'international, vous verrez que Java n'est pas mourant, bien au contraire...

  20. #80
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 522
    Points
    2 522
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Et alors ? Unsafe, ça veut juste dire "attention, le runtime ne peut pas vérifier ce que tu fais, si tu fais de la m***e ça va péter". C'est juste pour inciter le développeur à faire un peu plus attention à ce qu'il fait...
    ...et là, si tu lis mon commentaire en entier, tu comprends ce que je veux dire. Bon, il y a une deuxième phrase, c'est vrai, ça peut rendre les choses compliquées...

    L'idée de plateformes comme .Net ou la JVM, c'est de permettre l'exécution de code dans un contexte où un maximum de la complexité est prise en charge par la plateforme. En .Net, on peut exécuter du code unsafe, de la même manière, on peut exécuter du code JNI en Java. Mais il faut bien comprendre que quand on fait ce type de chose, on perd à peu près totalement l'intérêt de ce type de plateforme.

Discussions similaires

  1. Réponses: 20
    Dernier message: 17/11/2014, 20h33
  2. Java est-il un langage de programmation mourant ?
    Par Cedric Chevalier dans le forum Actualités
    Réponses: 168
    Dernier message: 18/10/2013, 14h08
  3. Créer appli web:Java est-il le langage idéal pour cette appli?
    Par Terminator dans le forum Général Java
    Réponses: 14
    Dernier message: 10/06/2011, 16h10
  4. [Archive] Quel est votre langage de programmation préféré ? (2004..2008)
    Par Idelways dans le forum Débats sur le développement - Le Best Of
    Réponses: 403
    Dernier message: 04/02/2009, 01h56
  5. Réponses: 2
    Dernier message: 15/07/2007, 22h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo