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. #81
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    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
    Pourquoi ? Les deux ne sont pas nécessairement contradictoire.
    Tu peux avoir du typage dynamique fort comme du typage statique faible. Les deux notions sont orthogonales, dynamic introduit du typage statique pas forcément des faiblesses de typages.


    Citation Envoyé par Gugelhupf Voir le message
    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.
    Mais se passer de certaines constructions utiles sous ce prétexte, c'est un peu jeter le bébé avec l'eau du bain.
    Si c'est parfois utile ou agréable est-ce vraiment pertinent de s'en passer parce que certains font n'importe quoi avec ? Si tu enlèves tout ce qui peut être mal utiliser il ne va rien te rester.
    A titre personnel, je pense qu'il est largement préférable de former les gens ou, pour les cas désespérés, de se passer de ceux-ci.

    Citation Envoyé par Gugelhupf Voir le message
    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...
    Non je n'ai pas aimé parce qu'il m'empêche de faire des choses qui m'était utiles (ce qui ne m'empêche pas de lui trouver des qualités, notamment en terme d'outillage).
    • Surcharger les opérateurs me permet de gagner en expressivité pour développer des classes mathématiques ou des EDSL.
    • Pouvoir implémenter des méthodes non virtuelles dans les interfaces me permet de faire de la Ppc sans recourir à des outils externes et changer ma chaîne de compilation (même si je préférerais de très loin un support natif de celle-ci).
    • L'amitié entre classe me permet de découper mes responsabilités entre classe sans exposer inutilement mes détails d'implémentation que ce soit via public ou via des getter/setter systématiques (même si je préférerais avoir une granularité beaucoup plus fine de cette amitié).
    • Avoir un minimum de dynamisme dans le typage (et je parle bien de typage dynamique pas de typage faible) me permet d'avoir des conteneurs hétérogènes sans passer par des hiérarchie de classes sans réelles raisons d'être ou de me fader des conteneurs d'Object.
    • Avoir des sucres syntaxiques tels que les slices de tableaux, les listes en compréhension, les ranges, etc. me permet de perdre en verbosité sans perdre en lisibilité.
    • Etc.

  2. #82
    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 528
    Points
    2 528
    Par défaut
    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

  3. #83
    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 : 42
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    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
    Pourquoi ? Parce que ça répond à un besoin réel :
    - interopérabilité avec des langages dynamiques
    - interopérabilité simplifiée avec COM (tu as déjà essayé d'automatiser Office avec C# ? Si oui tu devrais vite comprendre l'intérêt...)
    Je ne l'utilise quasiment jamais, mais ça ne veut pas dire qu'il n'a pas son utilité...
    Quand ce mot-clé est apparu je craignais moi aussi que les gens en abusent, mais après quelques années, force est de constater que ce n'est pas le cas

    Citation Envoyé par Gugelhupf Voir le message
    C'est pour cela que je n'aimerais pas forcément voir des features tels que :
    • [...]
    • le mot-clé partial, qui fera en sorte d'avoir un bout de classe qui traine dans X fichiers différents.
      [...]
    La raison d'être de partial n'est pas pour le code que tu écris toi-même (si tu as besoin de splitter une classe en plusieurs fichiers, c'est qu'elle fait probablement trop de choses). L'intérêt c'est pour le code généré ; comme ça on peut avoir des classes générées par un outil, mais qu'on peut quand même personnaliser, et l'outil peut regénérer sa partie du code si nécessaire sans marcher sur les pieds du développeur.

    Citation Envoyé par Traroth2 Voir le message
    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.
    Oui, mais ça ne veut pas dire qu'il faut s'enfermer dans ce contexte ; il est parfois utile de pouvoir outrepasser les contrôles du runtime pour des raisons de performance. C'est juste une question de pragmatisme.

    Citation Envoyé par Traroth2 Voir le message
    En .Net, on peut exécuter du code unsafe, de la même manière, on peut exécuter du code JNI en Java.
    Non, ce n'est justement pas la même chose. L'équivalent .NET de JNI est P/Invoke, qui permet d'appeler des fonctions de librairies natives. Ca n'a rien à voir avec le code unsafe, et ça ne répond pas au même besoin. P/Invoke existe pour des raisons d'interopérabilité (une techno qui ne permettrait pas d'interagir avec la plateforme ne servirait pas à grand chose). Le code unsafe existe pour des raisons d'optimisation.

    Citation Envoyé par Traroth2 Voir le message
    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.
    Bah non... Evidemment, si tu fais tout ton programme à base d'appels P/Invoke, ou tout en unsafe, c'est sûr que c'est bête, et dans ce cas tu ferais mieux de l'écrire directement en C. Mais utilisées à bon escient, cest fonctionnalités rendent le langage plus polyvalent. Ce n'est pas parce que tu fais du code unsafe ou des appels P/Invoke dans un bout de ton appli que tu perds l'intérêt d'avoir un runtime managé pour le reste du code...

  4. #84
    Membre éclairé
    Homme Profil pro
    Développeur C++
    Inscrit en
    Octobre 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur C++

    Informations forums :
    Inscription : Octobre 2008
    Messages : 242
    Points : 706
    Points
    706
    Par défaut
    MethodExpressionValueChangeListener
    Mais quelle horreur...

  5. #85
    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 : 42
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Markand Voir le message
    Mais quelle horreur...
    Pourquoi ? Tu préfèrerais que ça s'appelle "mevcl" ? Comme ça ce serait plus court... après tout en s'en fout de pas comprendre ce que ça veut dire

  6. #86
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    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).
    Bonjour,
    je crois que tu n'as pas compris l’intérêt du mot clé dynamic en .net, il a été crée surtout pour pouvoir communiquer ou utiliser d'autre langage ou le typage fort n'existe pas, il n'est pas là pour être utilisé à la place des types de base, grâce à lui si l'envie t'en prend tu peux exécuter du JS dans ton code (très utile pour faire une calculette rapidement par exemple) ou utiliser des API tierce (c'est ce qui est dis dans la doc).

    Le mot clé partial est surtout utile quand on utilise des générateurs de code, il permet d'avoir la classe qui est généré par l'outil et la tienne où tu as des comportements à ajouter à la classe générée, parce que quand l'outil régénère la classe il va tout simplement l'effacer et la recréer (ça serait bête de perdre toutes ses modifs), il m'est aussi arrivé de l'utiliser dans le cas où on était 2 à travailler sur la même classe pendant plusieurs jours ce qui évite les problèmes de merge ou de blocage de fichier.

    Pour la surcharge de l'opérateur je ne pourrais rien te dire dessus étant donné que je l'ai jamais utilisée et m'amuserai pas à le faire ne sachant pas à quoi il sert.

    C'est comme tous les langages il y a plein de fonctionnalité inutile ou incompréhensible pour le communs des mortels (développeur) mais qui sont là pour répondre à certaine situation spécifique, le problème vient surtout des devs qui en font mauvais usage.

    Edit: Mega Grilled

  7. #87
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    le mot clé dynamic "existe" d'une certaine facon depuis java7 dans le bytecode java (invokeDynamic) et permet d'integrer les langages dynamiques (ou des features dynamiques en java comme les lambda de java 8 par exemple).

    Juste, comme il n'y avait pas de consensus sur comment l'integrer au langage, il n'est pas disponible pour les developpeurs java purs (et c'est pas plus mal)

  8. #88
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    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 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Le mot clé partial est surtout utile quand on utilise des générateurs de code, il permet d'avoir la classe qui est généré par l'outil et la tienne où tu as des comportements à ajouter à la classe générée, parce que quand l'outil régénère la classe il va tout simplement l'effacer et la recréer (ça serait bête de perdre toutes ses modifs), il m'est aussi arrivé de l'utiliser dans le cas où on était 2 à travailler sur la même classe pendant plusieurs jours ce qui évite les problèmes de merge ou de blocage de fichier.
    Lorsque je me sers d'Eclipse pour générer les getters/setters, celui-ci sait gérer automatiquement l'inclusion du code dans la classe, et dans l'ordre que je veux (d'abord getter puis setter, getter/setter alternés)... et il n'efface rien.
    Sinon je ne vois pas l'intérêt de découper une classe en plusieurs fichier avec les IDE existants, on peut jumper à la zone qu'on veut dans la page. Si la classe est monstrueusement longue, c'est qu'il y a déjà un problème quelque part.
    Sinon pour travailler à plusieurs sur un même projet il y a Git non ?
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  9. #89
    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
    Sinon je ne vois pas l'intérêt de découper une classe en plusieurs fichier avec les IDE existants, on peut jumper à la zone qu'on veut dans la page.
    Ca a été dit, pour personnaliser du code généré automatiquement.

  10. #90
    Membre éprouvé Avatar de 4sStylZ
    Homme Profil pro
    Null
    Inscrit en
    Novembre 2011
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 314
    Points : 1 056
    Points
    1 056
    Par défaut
    De notre coté ma boite gagne encore des projets en RPG IV. Alors j'ai pas trop peur du "déclin" de java...

  11. #91
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    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 386
    Points : 3 531
    Points
    3 531
    Billets dans le blog
    1
    Par défaut
    Oui, même si on n'aime pas le JAVA, il faut savoir en faire puisqu'il est bien vivant et va vivre encore pendant des décennies probablement comme la plupart des langages déjà bien établi (c/c++/c#/vb/delphi/java/ruby/python/cobol etc etc...).


    C'est plutôt une bonne chose pour nous qu'il y ai une diversité de langage, moi je m'éclate avec python, si d'autre ont un réel bonheur de coder avec java c'est tant mieux. Tout ces langages vivrons encore longtemps, je l’espère.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  12. #92
    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 4sStylZ Voir le message
    De notre coté ma boite gagne encore des projets en RPG IV. Alors j'ai pas trop peur du "déclin" de java...
    C'est sur que niveau projet de maintenance/evol y a du boulot pour un sacré moment quoi qu'il arrive.

    La question c'est plus de savoir si dans le cadre d'un nouveau projet sans contrainte (développeurs existant, cohérence des applications internes, etc...), on démarrerait un projet en JAVA plutot qu'en Scala, groovy, .Net, etc...

  13. #93
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Lorsque je me sers d'Eclipse pour générer les getters/setters, celui-ci sait gérer automatiquement l'inclusion du code dans la classe, et dans l'ordre que je veux (d'abord getter puis setter, getter/setter alternés)... et il n'efface rien.
    Sinon je ne vois pas l'intérêt de découper une classe en plusieurs fichier avec les IDE existants, on peut jumper à la zone qu'on veut dans la page. Si la classe est monstrueusement longue, c'est qu'il y a déjà un problème quelque part.
    Sinon pour travailler à plusieurs sur un même projet il y a Git non ?
    On parle plus de logiciel tiers ou de certain ORM qui te crée une classe correspondante à ton model.

    Dans mon cas je parlais de TFS configuré de telle sorte qu'une seule personne puisse être en modif sur un fichier, toute façon peut importe quel logiciel de repository on utilise si 2 personnes travaillent sur le même fichier en même temps et qu'il font des modifications au même numéro de ligne le logiciel de repository crée un conflit au moment de merge.

  14. #94
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 121
    Points : 84
    Points
    84
    Par défaut
    Pour avoir développer en JAVA durant la majorité de mes études, je dois dire que personnellement je trouve que c'est un super langage que je vois au-dessus du C/C++ au niveau de l'apprentissage.

    En C/C++, tu dois gérer davantage de détails inutiles pour parvenir au même résultat qu'en JAVA (je ne parle pas de QT ici xD)

    Citation Envoyé par Spleeen Voir le message
    - Java est naze niveau perf. Clairement tu dév avec, tu te fous des perfs.
    Pour le même algorithme général, C est quasi 10 fois plus rapide. 7 fois pour C++. C# peut générer un vrai binaire, en perdant le multiplateforme. Mais Java n'est pas multiplateforme dans la pratique, donc bon.
    Ah et pour ceux qui parlait de l'optimisation en ligne de code JAVA/C/C++/C#. Petit site qui parle du nombre de ligne de code par points de fonctions utilisé par certains gestionnaire de projet pour estimé la longueur d'un programme. (quoi que je suis d'accord que l'estimation est une chose que je doute un peu vu que sa dépend du programmeur)
    http://www.qsm.com/resources/functio...anguages-table

    JAVA : 53
    C# : 54
    C : 97
    C++ : 50

    Citation Envoyé par tralloc Voir le message
    Bonjour,
    La verbosité, parlons en. En effet je préfère des mots assez explicite que des sigles qui ne veulent rien dire, et ça je n'y toucherait pas.
    Oui, le nom des méthodes/function en JAVA sont clairs et précise contrairement a d'autre langages.

    Citation Envoyé par tralloc Voir le message
    Par contre tout ces getters/setters sont bien lourds par exemple, et il y a de nombreuses choses qui pourraient être empruntées à python, scala, ... qui permettraient d'améliorer le langage.
    Personnellement, j'adore les get/sets et même en C/C++, dans nos classe on doit utiliser des get/sets si je m'abuse. Du moins, dans tous les cours que j'ai vu c'était comme ça.

    Il y a que le .NET (en langage réellement connu, car j'ai pas le souvenir d'avoir déjà vu une offre d'emploi qui parle de scala,python ou d'autre trucs du genre) qui offre vraiment les propriétés qui font le get/set à l'intérieur qui est sertes plus optimale au niveau du codes, mais pas nécessairement plus claires si tu as du traitement à faire.

    Mais bon, tous ça est laisser à la discrétion du programmeur.

    Citation Envoyé par tralloc Voir le message
    Mais surveillons ce malicieux C#, qui sait s'adapter plus vite aux évolutions du temps (il est aussi plus jeune). Je pense qu'ils se valent (sauf pour la portabilité) mais que Java a encore son mot à dire.
    Oui C# est bien, mais il n'est openSource ni multiplateforme. Contrairement au JAVA.

    Citation Envoyé par xarkam Voir le message
    Pourrais-tu s'il te plait, nous montrer un mauvais exemple de code Java comme tu le fait ici pour c# ?

    Oui, je suis dev c# et je n'utilise jamais var dans des déclaratif (même si resharper le veux)

    C'est pareil que le java, typage fort. Quoi que depuis la 4.0 on a le déclaratif Dynamic (http://msdn.microsoft.com/fr-fr/magazine/ee336309.aspx)
    Personnellement, s'il y a du code que je qualifie de mauvais codes, c'est réellement l'utilisation d'un type générale si je peu le dire ainsi (var, Dynamic) qui peut remplacer n'importe qu'elle type.

    Si les langages sont typé ce n'est pas sans raison. Donc utilisé les type, certes si tu code en JS,PHP tu as pas le choix, mais en prenant ces langages tu t'attends a devoir codé comme ça, donc ces logique. Même si c'est le mal.

    Citation Envoyé par Grom61736 Voir le message
    Okay, tu as gagné, le C/C++ est plus rapide.
    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.

    Alors oui, on a le "ah mais non, moi monsieur je programme bien"... Toujours est-il que ce n'est pas le cas de tout le monde.

    Il est clair que si tu veux faire une application où tu vas aller dans les moindre recoin pour grapiller des ms et de la mémoire, vaut mieux pas être dans un langage haut niveau maintenant, pour l'application en entreprise (ce qui permet à un langage de vivre) avec plein de gens pas aussi doué que toi, oui, le GC est plus doué que la moyenne...
    Tiens ça me fait penser à une histoire qu'un de mes profs avait raconter. Lorsqu'il était sur le marché du travail en développant en C/C++ avec une grosse équipe. L'application avec tellement de fuites de mémoire et de ralentissement qu'un des programmeurs a été chargé de développer lui même un «pseudo-garbage collector» dont le résultat ne fut pas 100% optimale mais bon ^^

    Citation Envoyé par Carhiboux Voir le message
    Du code sale en java, il y en a aussi je n'ai pas
    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();
    Justement pour moi c'est ce qui fait la différence entre un bon et mauvais programmeur. La lisibilité de son code, du code devrait ce lui comme une histoire. Si je peu le dire ainsi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String username = CurrentSession.getUsername();
    Si tu lis comme une phrase/histoire :
    Créer une variable username qui est égales à la valeur Username de la session courante.

    Mais bon, tous ça varie en fonction des programmeurs et des normes d'entreprises.

    Citation Envoyé par Spleeen Voir le message
    - Pas de surcharges d'opérateurs... non mais allô quoi !
    La tous ce que je vois, c'est un fan de C/C++, car désoler mais la surcharge d'opérateur ne sert pas a grand chose a mon avis, mis-à-part faire un code qui n'est pas hyper claires.

    Prenons par exemple un classe Employé avec les variables Experience.

    Personnellement si j'ai le choix entre surcharger l'opérateur «+» ou créer une méthode textuel (ajouterExperience), j'aime réellement mieux une méthode textuel que un opérateur qui ne veut rien dire.

    Citation Envoyé par deusyss Voir le message
    Ajouté à cela le rachat de sun par oracle, les proces de ce dernier envers ceux utilisant java (cf android de google), le "soi-disant" quiproquo de cet été sur la javadoc passé sous licence proprio, les antécédent mysql et open office, ...; bref pour moi, Java est condamné dans les 2 à 5 ans à venir.
    Oui malheureusement le rachat risque de briser l'openSource et d'amener JAVA a sa perte... Je suis d'accord pour le mal, car java est très bien.

    Citation Envoyé par deusyss Voir le message
    Pour le remplacer? Python, associé à du C. Ce couple permet de repondre à tous les besoins, il n'y a alors rien d'autre à connaitre pour moi.
    Pourtant comme j'ai dis je vois rarement voir jamais d'offre d'emploi : PYthon, C, C++.

    Majoritairement, c'est : .NET / Java / Delphi

    Je parle pas du Web, là.

    Citation Envoyé par ptah35 Voir le message
    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.
    Oui à la déclaration c'est une chaine, mais le problème a déclarer sans typé reste que la valeur peut-être modifier par n'importe quoi. Et que s'il se passe quelques chose de «croche» dans l'application, ça peut transformer ta variable String et lui affecté une valeur numérique ou autre.

    On n'est jamais sur a 101% de ce qui ce passe dans notre application.

  15. #95
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2007
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 677
    Points : 2 137
    Points
    2 137
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Lorsque je me sers d'Eclipse pour générer les getters/setters, celui-ci sait gérer automatiquement l'inclusion du code dans la classe, et dans l'ordre que je veux (d'abord getter puis setter, getter/setter alternés)... et il n'efface rien.
    Sinon je ne vois pas l'intérêt de découper une classe en plusieurs fichier avec les IDE existants, on peut jumper à la zone qu'on veut dans la page. Si la classe est monstrueusement longue, c'est qu'il y a déjà un problème quelque part.
    Je pense que vous parlez de deux choses différentes, il n'est pas ici question de snippets qui génèrent du code dans une classe.

    L’intérêt du mot-clé partial réside bien dans la séparation de deux pans distincts d’une classe ; d’une part la partie qui est générée par l’IDE, d’autre part le code maison.

    Par exemple, si tu crées un projet WinForms sous Visual Studio, ce dernier te génère un fichier source ayant pour unique but d’instancier par code tous les contrôles que tu crées depuis le designer (en somme, à chaque modification de ton écran via le designer, le fichier en question est régénéré). A côté de ça, un second fichier source quasiment vierge t’est servi pour inclure ta propre logique. Les deux fichiers source représentent la même classe grâce au mot-clé partial, sans ce dernier, dans ce contexte précis, j’aurais une centaine de lignes de code liée au paramétrage de l’interface (une centaine de lignes de code qui a tout intérêt à rester isolée, puisque le développeur n’y touchera pas sous peine de voir ses modifs écrasées).

    C'est un exemple parmis d'autres, d'autres outils tirent partie de ce mécanisme. Après je suis tout à fait d'accord avec le fait qu'utiliser partial pour elaguer une classe, c'est très très moche (mais encore une fois, ce n'est pas le but).

    Citation Envoyé par mat1554
    Oui C# est bien, mais il n'est openSource ni multiplateforme. Contrairement au JAVA.
    C# n’est qu’un langage. L’implémentation de Microsoft de la CLI est propriétaire, certes, mais si je prends l’exemple de Mono (qui est une implémentation de la CLI libre ou presque) tu peux développer en C# sous Linux.

    Cela dit c’est un tout autre niveau avec Java dans la mesure où leur JVM est de qualité à peu près équivalent d’une plateforme à l’autre (ce qui n’est pas franchement le cas avec les différentes implémentations de la CLI).

    Citation Envoyé par mat1554
    Personnellement, s'il y a du code que je qualifie de mauvais codes, c'est réellement l'utilisation d'un type générale si je peu le dire ainsi (var, Dynamic) qui peut remplacer n'importe qu'elle type.
    Sauf que si tu fais l’amalgame entre var et dynamic c’est que clairement tu ne sais pas de quoi tu parles ^^

    Citation Envoyé par mat1554
    Oui à la déclaration c'est une chaine, mais le problème a déclarer sans typé reste que la valeur peut-être modifier par n'importe quoi. Et que s'il se passe quelques chose de «croche» dans l'application, ça peut transformer ta variable String et lui affecté une valeur numérique ou autre.
    Non.
    On ne parle pas du var javascipt là, si tu fais var toto = "salut"; ta variable toto sera une chaine, point (tu ne pourras absolument pas mettre d'entier dans ta variable toto par la suite).
    Le WIP de The last bastion, mon projet de jeu-vidéo (un TD en 3D)

    Mon portfolio / Ma page fb

  16. #96
    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 mat1554 Voir le message

    Oui à la déclaration c'est une chaine, mais le problème a déclarer sans typé reste que la valeur peut-être modifier par n'importe quoi. Et que s'il se passe quelques chose de «croche» dans l'application, ça peut transformer ta variable String et lui affecté une valeur numérique ou autre.

    On n'est jamais sur a 101% de ce qui ce passe dans notre application.
    Absolument pas ! C'est une vrai variable de type string, qui se comporte exactement comme telle. Le var c'est du sucre syntaxique qui évite une multitude de noms à rallonge sans aucune valeur ajoutée (generic de generic, linq, etc....).

  17. #97
    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 : 42
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par persi Voir le message
    Absolument pas ! C'est une vrai variable de type string, qui se comporte exactement comme telle. Le var c'est du sucre syntaxique qui évite une multitude de noms à rallonge sans aucune valeur ajoutée (generic de generic, linq, etc....).
    Tout à fait. pour être plus précis, c'est le compilateur qui infère le type de la variable d'après la valeur initiale que tu lui affectes. Le résultat est le même que si tu avais déclaré la variable en tant que string, c'est juste que tu n'as pas besoin de le dire explicitement.

  18. #98
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Citation Envoyé par persi Voir le message
    La question c'est plus de savoir si dans le cadre d'un nouveau projet sans contrainte (développeurs existant, cohérence des applications internes, etc...), on démarrerait un projet en JAVA plutot qu'en Scala, groovy, .Net, etc...
    Un nouveau projet sans contrainte, ca n'existe pas.

    Et etant donnees les contraintes actuelles, si tu veux demarrer un gros projet serveur, oui, tu te tourneras vers les principaux langages de developpement que sont C, C++, Java, C#, ... (merci de ne pas troller sur le terme principal langage de dev).
    Et non, tu ne tourneras pas vers Scala ou Groovy.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  19. #99
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 121
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par persi Voir le message
    Absolument pas ! C'est une vrai variable de type string, qui se comporte exactement comme telle. Le var c'est du sucre syntaxique qui évite une multitude de noms à rallonge sans aucune valeur ajoutée (generic de generic, linq, etc....).
    Oui enfaite l'exemple que j'avais vu était

    et non sur la base

    Mais il reste que pour moi c'est un code qui n'est propre. Voir un code sale si je peu le dire ainsi

    Un variable doit être 100% typé dans sa lecture pour un code propre. Sinon ça fait plus un code bâcle quoi. Même si le langage/framework permet de bâcler le code.

    Les raccourcit ne sont pas toujours bon niveau lisibilité, il y a qu'a regardé les C++, beaucoup de méthodes, mais beaucoup qui veulent rien dire aussi.

  20. #100
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    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 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Citation Envoyé par mat1554 Voir le message
    Oui enfaite l'exemple que j'avais vu était

    et non sur la base

    Mais il reste que pour moi c'est un code qui n'est propre. Voir un code sale si je peu le dire ainsi

    Un variable doit être 100% typé dans sa lecture pour un code propre. Sinon ça fait plus un code bâcle quoi. Même si le langage/framework permet de bâcler le code.

    Les raccourcit ne sont pas toujours bon niveau lisibilité, il y a qu'a regardé les C++, beaucoup de méthodes, mais beaucoup qui veulent rien dire aussi.
    C'est juste une question de point de vue.
    Un développeur PHP ne trouvera pas que c'est sale, le typage inféré est un outil au même titre que le typage fort.
    Bref tout cela pour dire que c'est ton point de vue.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

Discussions similaires

  1. Réponses: 20
    Dernier message: 17/11/2014, 19h33
  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, 13h08
  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, 15h10
  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, 00h56
  5. Réponses: 2
    Dernier message: 15/07/2007, 21h03

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