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 11 : migrer ou changer de langage


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 8
    Par défaut
    Citation Envoyé par xarkam Voir le message
    Je ne sais pas comment tu as pu échapper à l'information du reboot de C# en open source.

    Le Framework .NET est effectivement intrinsèquement lié à Windows. Pas .NET Core/ASP.NET Core

    Si il faut une application avec une GUI, il existe https://github.com/AvaloniaUI/Avalonia , et ainsi on a une application cross-plateformes, codée avec un langage open source (licence MIT).

    Personnellement, Java pour du client-serveur peut très aisément être remplacé par du C# (.NET Core/ASP.NET Core).
    Pour une GUI, il faudra dès lors voir ce qu'il est possible de faire avec Avalonia.

    Quant aux "paquets" tout est géré par NuGet.
    Non!! .NET Core n'est pas cross-platform. Arrêtez avec cet argument marketing !
    Cross-platform Windows OK, mais Linux 64bit uniquement et Mac OS avec l'avant dernière version minimum.
    Demandez à un dev Java si il considère ça comme cross-platform...

    L'équipe d'Unity 3D pense la même chose c'est pour cela qu'il préfère rester sur Mono.
    Et même l'équipe de Microsoft qui s'occupe du .NET Core considère que leur version Mac OS est réservée aux développeurs.

    Et on va pas se mentir (entre dev C# ) à part XWT (maintenu en vie par Xamarin), Eto.Forms et Avalonia (en Beta depuis...) on a rien d'autre pour faire des App graphique multi-plateforme... comparé au choix et la stabilité des GUI sur Java.
    Même Electron avec Javascript supporte plus de plateforme que .NET Core

    A croire que tu n'a pas suivi la sortie du .NET Core 2.1 et son fameux "Windows Compatibility Pack"

  2. #2
    Membre très actif
    Homme Profil pro
    Programmeur des cavernes
    Inscrit en
    Août 2017
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Programmeur des cavernes
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 364
    Par défaut
    Revenez au bon vieux C, un monde dans lequel personne ne cherchera à vous en*@!###.

    Ah non ! C'est vrai, vous ne pourriez plus.

  3. #3
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut
    Bonjour,

    Je reste sur Java sinon je devrais changer de rubrique ;-)

    Personnellement, je trouve que c'est une bonne chose cette évolution. Java est longtemps resté sur des versions qui duraient. L'éco-système de Java est très riche, les outils sont très matures.

    Je ne pense pas que changer de langages resolve le problème. Tôt ou tard les langages sont sensés évoluer (Python 2 et 3 par exemple). Pour le cas de Kotlin, attention, derrière il y a une société qui s'appelle Jetbrains.

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Par défaut
    Citation Envoyé par Matthieu76 Voir le message
    Je ne code plus en Java depuis longtemps mais je pense vraiment que language le plus proche de Java est le C#. Personnellement, je ne vois quasiment aucune différence entre ces 2 langages à s'exception que C# n'est utilisable pratiquement que sous Windows mais bon pour faire des logicielles d'entreprise ou perso cela fait largement l'affaire, je préfère même au java.

    Beaucoup de gens se plaignent que le C# est propriétaire Microsoft mais en vrai cela ne change pas grand-chose.
    J'aimais bien le C#....mais depuis que j'ai connu certaines API java, dur de s'en passer.

    Si quelqu'un a un équivalent à du Spring boot pour du microservice dans un autre language (avec les facilités de design , annotation, etc...) je suis preneur...

  5. #5
    Membre confirmé
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Par défaut Errata
    C'est les majors LTS (Java 8, Java 11, puis toutes les 3 versions donc 14, 17, etc. Qui vont faire devenir payantes les lts précédente. Donc pas de souci si tu fais 8, 11,14,17 au moment où elles sortent, tu ne payeras rien, et tu auras eu le temps de prototyper entre temps avec les versions intermédiaires.

    Pas de souci donc, ça ne paraît pas si bloquant que ça, faut pas se leurrer, ça embête tout le monde de maintenir des versions 'legacy'. Sinon il y a kotlin ou rust, suivant le contexte

  6. #6
    Membre Expert
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert = Eclipse, IDE, RCP, LSP, JDT... pour ����*�&a
    Inscrit en
    Juillet 2008
    Messages
    1 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert = Eclipse, IDE, RCP, LSP, JDT... pour ����*�&a
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 479
    Par défaut
    Citation Envoyé par Tcharl Voir le message
    C'est les majors LTS (Java 8, Java 11, puis toutes les 3 versions donc 14, 17, etc. Qui vont faire devenir payantes les lts précédente.
    Les majors LTS d'Oracle JDK. Mais comme d'autres boites (genre Red Hat) offrent aussi un support LTS sur OpenJDK, qui lui est open-source, ca va en fait amener des bugfixes dans les vieilles sources d'OpenJDK aussi

    Pas de souci donc, ça ne paraît pas si bloquant que ça, faut pas se leurrer, ça embête tout le monde de maintenir des versions 'legacy'.
    Tout a fait, et c'est pour ca que c'est de bonne guere que des boites essayent de monetiser ces demandes un peu chiantes des utilisateurs

    Sinon il y a kotlin
    Kotlin tourne essentiellement par dessus Java; donc si il y a un bug de secu dans les couches basses de Java, il sera aussi surement dans les applis faites en Kotlin.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2017
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Février 2017
    Messages : 101
    Par défaut Une tempête dans un verre d'eau au final
    Entre ceci :
    Citation Envoyé par Drowan Voir le message
    Si je comprends bien, l'idée derrière ça c'est un peu de mettre une amende à ceux qui reste sur des vielles versions mais qui veulent quand même les correctifs.
    Ainsi Oracle souhaite forcer l'utilisation de la dernière version et avoir moins besoin de maintenir les vieilles
    Et ceci :

    Citation Envoyé par Mickael_Istria Voir le message
    Justement, evite de dire n'importe quoi si t'es pas au courant des parties legales...
    Java reste ouvert et bien ouvert, les implems comme OpenJDK sont du vrai OSS sans contreparties. La licence c'est GPLv2+CE. Seuls le JDK d'Oracle et d'autres JDK specifiques sont commerciaux et sous contraintes d'utilisation; mais c'est bien explique et quoi qu'il en soit, il y a toujours moyen d'utiliser OpenJDK sans probleme. Donc, non Java c'est pas un cancer, et c'est en fait plus ouvert que ca ne l'a jamais ete.


    Du coup, la discussion a tourne au grand n'importe quoi. Beaucoup semble faire l'amalgamme entre Java et Oracle JDK. C'est completement erronne. Java c'est une spec qui est OSS regie par le JCP qui emet des JSR; et tout ca est ouvert et implique de multiples vendeurs. Apres, les implems de Java sont nombreuses (Oracle JDK, OpenJDK -1/2 Oracle + 1/2 IBM en gros-, Zulu...), et vous etes libres de choisir celle que vous voulez. OpenJDK est open-source et n'est en rien affecte par les decisions d'Oracle a propos d'OpenJDK.
    Je crois que tout est dit.

    Donc aucune raison de s'exciter, les alternative à l'implémentation d'Oracle sont là et le sont depuis bien longtemps et vont perdurer bien au delà d'Oracle.

    Donc smile and enjoy OpenJDK

  8. #8
    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
    Par défaut
    Citation Envoyé par GordonFreeman Voir le message
    aucune raison de s'exciter, les alternative à l'implémentation d'Oracle sont là et le sont depuis bien longtemps et vont perdurer bien au delà d'Oracle.

    Donc smile and enjoy OpenJDK
    Juste pour savoir, vous avez quelle portion de vos clients qui gèrent eux-même leur JDK/JRE qui utilisent OpenJDK et pas celui d'Oracle ? Que ce soit dans mon ancienne entreprise ou bien dans mon entreprise actuelle, il n'y en a aucun. Les seuls à ne pas utiliser le JRE Oracle sont ceux qui ont une architecture matérielle incompatible (à savoir des processeurs IBM powerPC, et dans ce cas ils utilisent le JRE d'IBM, ce qui pose des problèmes).

    Donc je pense que non, le passage vers OpenJDK ne va pas se faire non plus dans la minute.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  9. #9
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    @gangsoleil
    Si je comprend bien c'est ton entreprise qui fournit la JRE au sein du produit à tes clients. Tu es donc maître pour mettre la JRE que tu veux, non ?

    Moi dans mon entreprise c'est le cas.

  10. #10
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2017
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Février 2017
    Messages : 101
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Juste pour savoir, vous avez quelle portion de vos clients qui gèrent eux-même leur JDK/JRE qui utilisent OpenJDK et pas celui d'Oracle ? Que ce soit dans mon ancienne entreprise ou bien dans mon entreprise actuelle, il n'y en a aucun. Les seuls à ne pas utiliser le JRE Oracle sont ceux qui ont une architecture matérielle incompatible (à savoir des processeurs IBM powerPC, et dans ce cas ils utilisent le JRE d'IBM, ce qui pose des problèmes).

    Donc je pense que non, le passage vers OpenJDK ne va pas se faire non plus dans la minute.
    Alors ou je travaillais avant toutes nos applis (dont la plus grosse 2,3 millions de ligne de code) étaient développé avec les JDK Oracle par les dev et étaient déployés dans des serveurs WebSphere et tournaient sur le JDK d'IBM -> aucun soucis!

    Le plus gros problème était les évolutions du JDK IBM qui ne suivaient pas forcément les release officielles, Si je ne m'abuse le JDK 6 d'IBM n'est jamais sortis.

    Donc forcément tous nos clients utilisaient le JDK d'IBM...

    En théorie une implémentation de JDK (validée par le Technology Compatibility Kit (TCK) ) se remplace par une autre. Et ça se vérifie plutôt pas mal (même qu'il peut y avoir parfois quelques petites subtilités/fourberies cachées...)

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Août 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 239
    Par défaut
    De toute façon, ce sont les premiers de cordée (les développeurs de framework de dev pour l'essentiel qui décideront pour nous).

    Si vous nagez dans l'open source, vos intérêts seront ceux de vos fournisseurs de framework si surtout il s'agit de fondations à but non lucratif. Mieux s'il s'agit de logiciel libre.

    Sinon, il se peut que se créent des partenariats avec Oracle : je développe mon framework propriétaire (voire open source) en jdk 11 contre une commission pour chaque licence Java vendue avec chaque licence d'utilisation de mon framework qui se traduira dans les faits par des rabais sur les licences java 11.

  12. #12
    Inactif  
    Profil pro
    Inscrit en
    Août 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 239
    Par défaut
    Pour ma part, je suis un peu inquiet à propos d'Eclipse qui est très réactif avec les versions de Jdk. Photon supporte jdk 10, par exemple. Eclipse Quantum acceptera quoi ?

    bien que j'ose croire qu'il n'y aura pas de rupture de la politique d'édition et que les versions suivantes d'eclipse accepteront les versions antérieures de jdk.

  13. #13
    Membre très actif Avatar de darklinux
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2005
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 570
    Par défaut
    Bon , je vais joué le captain Obvious du thread , mais Java était déjà un cancer à l ' époque de Sun ... merci mais Java 1.1 -> Java 1.2 au secours . Meme chose pour les distinctions idiotes : Java SE - Java EE ... Je suis preneur pour Python , mais si c 'est pour faire tourné sur de l ' android ou de l ' iOs ... autant codé en C ++ ou en mono .

  14. #14
    Inactif  
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Juillet 2018
    Messages : 1
    Par défaut
    java permet de tous faire

    donc il faut un langage pouvant tous faire, ce que ne fais pas D ou Haskel, ils serons assez limité (mais peuvent répondre aux besoins de certains)
    Mais si vous voulez un langage pour faire des IHM, du calculs et du web, alors python reste aujourd'hui la meilleur alternativement, il est même bien plus polyvalent que Java.

    Mais il est complètement stupide de migrer un site web en Java EE vers du D par exemple, puisque D ne permet pas de faire un site web (enfin on peut créer un serveur web mais c'est de la bidouille, rien de sérieux).
    Par contre migrer vers du PHP7 ou du python avec Django est un choix plus intelligent.

    D c'est uniquement pour faire des calculs c'est tous, pas de web, pas d'ihm...etc.

  15. #15
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 907
    Par défaut
    Bonjour

    Question intéressante.
    Bon, on commence par le commencement: j'ai été programmeur Java professionnel, une publi où je suis coauteur contient une de mes applis en Java, bref, j'ai été un ardent supporter de Java jusqu'à récemment.
    Pour moi, la vente de Sun a été un crève-coeur mais ce fut encore plus terrible quand j'ai lu qu'Oracle en était le bénéficiaire. On connait tous sa politique de rachat pour mieux étouffer la concurrence et son agressivité envers le client. Il m'a fallu trouver une alternative. Je bosse dans le domaine pharma, chimie, biologie et Java présentait l'avantage d'avoir un écosystème scientifique particulièrement large. Comment s'y retrouver?

    Déjà, JDK peut être trouvé avec OpenJDK. Si tant est que l'on soit constraint d'utiliser Java, OpenJDK est alors incontournable.
    Dans le cas contraire, et bien je preconise... C#. Et oui, malgré que j'ai pu vomir à l'époque triomphante de Java sur .NET à ses débuts, force est de constater que .NET es devenu mature et particulièrement riche. Tout ce que fait Java, C# le fait et c'est meme Java qui est à la traîne en terme de fonctionnalités. Tu veux faire du web? MVC.NET est alors apprécié (désolé les amis mais SPring est intéressant, très puissant, mais très complexe à configurer avec tous ses fichiers). Et niveau écosystème, est-ce que je m'y retrouve? Et bien oui, de nombreuses libraries existent maintenant en .NET dans mes domains, facilitant ma transition. Dernier point comme il a été dit auparavant, .NET core permet un développement 'cross-platform' et c'est une force de Java qui se retrouve du côté .NET.

    J'entends effectivement que .NET c'est Microsoft, c'est le mal absolu, blablabla... Oui, il y a des alternatives sous forme de langages interprêtés comme python qui est un outsider de choix. Mais pour l'entreprise, .NET est devenu fiable comme choix et est reconnu dans tous les départements IT que j'ai pû accompagner.

    Tout dépendra du développement que tu veux faire,

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  16. #16
    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
    Par défaut
    Hello,

    Merci pour tous ces retours, c'est vraiment super.

    Mon problème actuel -- et je ne suis pas le seul dans ce cas -- est que nous avons une grosse application Java qui utilise certains de ces merveilleux composants qui vont être payants (pour faire des raccourcis) en Java 8 -- donc en janvier 2019.

    Le coût de migration vers Java 11 est loin d'être négligeable, et je pense que c'est une bonne occasion de se poser sérieusement la question de la migration ou de la ré-écriture, chacune ayant ses avantages et ses inconvénients.

    Ma crainte avec la migration est que ces changements vont maintenant être réguliers : Java 12 et 13 auront une durée de vie de 6 mois, comme 9 et 10, et 14 (prochaine LTS) apportera son lot de changements, avec potentiellement encore de gros changements, donc encore un réel coût.

    Quant à la ré-écriture, c'est encore plus complexe ou presque.

    Le soucis que je vois pour C# est que ce langage n'a pas la réputation d'être multi-plateformes (oui, j'ai vu pour les parties core, il faut que je me renseigne là-dessus). Pour Kotlin et Scala, le manque de notoriété de ces langages (manque de lib, manque de développeurs) va être rhédibitoire.

    Reste python avec un framework de type Django ou autre. Je suis persuadé des possibilités, reste à voir les perfs à grande échelle.

    Je reste ouvert à tous les avis, commentaires et autres.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Par défaut
    D'après ce que je peux comprendre, au travers des différentes réponses postées , pas de soucis si on utilise OpenJDK (ce qui est mon cas).
    Je vais donc continuer à développer dans ce merveilleux langage

  18. #18
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 134
    Par défaut
    A la base je vais suivre ce que les DSI et les recruteurs voudront.

    Je me dis que C# peut être une alternative.
    J'en ai pas fait beaucoup.
    Mais les condtions boucles varriables,... ça ne change pas d'un langage à l'autre

    Le plus dur ce n'est pas de réapprendre un langage mais toutes ces API et outils spécifiques.

    Ce qui me pose problème avec Python c'est qu'il n'y a pas d'accolades
    En Java j'ai tellement l'habitude de faire l'indentation automatique avec le raccourcis clavier ctrl maj i d'Eclipse
    A la rigueur faire attention ou mettre des commentaire //fin if //fin while comme enpascal

    Ca existe pas un python avec accolades ?
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  19. #19
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2018
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2018
    Messages : 73
    Par défaut
    Citation Envoyé par CoderInTheDark Voir le message
    Ce qui me pose problème avec Python c'est qu'il n'y a pas d'accolades
    En Java j'ai tellement l'habitude de faire l'indentation automatique avec le raccourcis clavier ctrl maj i d'Eclipse
    A la rigueur faire attention ou mettre des commentaire //fin if //fin while comme enpascal

    Ca existe pas un python avec accolades ?
    Non, et en ce qui me concerne, tant mieux…

    J'ai eu la première remarque de ce type dès la première présentation de Python que j'ai faite en interne dans une SSII spécialisée Java. Ça, et le coté dynamique, le fait que les "bogues" ne se verraient pas à la compilation mais à l'exécution. Cette remarque/question, je l'ai également régulièrement en formation. Et j'ai toujours la même observation : cette demande vient d'un manque de rigueur à l'écriture du code. Rigueur à deux niveaux : maitriser ce que l'on écrit (en Python, le for/else est assez… intéressant) mais surtout écrire afin d'être relu.

  20. #20
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 516
    Par défaut
    L'absence des accolades est la pire excuse pour ne pas se mettre au Python.
    En Python, dire que l'on ne voit les erreurs qu'à l'exécution n'est pas tout à fait vrai.
    Le vrai problème du Python, ce sont les performances.

    Je vais détailler le deuxième point.

    Ne voir les erreurs qu'à l'exécution serait un problème embêtant, surtout quand une bête étourderie se trouve en dehors du happy path. Je fais parfois des fautes de frappe et je rejette l'argument de "y'a qu'à être rigoureux". Je fais attention à l'algorithmie mais je ne vais pas relire très lentement caractère par caractère pour être sûr qu'il ne reste pas la moindre faute de frappe.

    Heureusement, en Python, il existe des outils d'analyse statique de code. Par expérience, mypy et Pylint détectent assez bien les étourderies d'utilisation de variables ou fonctions qui n'existent pas.

    En plus, si on utilise les annotations de type, alors mypy peut vérifier les types. mypy gère aussi le sous-typage.
    Par exemple, voici un code en Python 3.6 qui s'exécute, mais qui est rejeté par mypy :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import abc, os
    
    class A(metaclass=abc.ABCMeta):
    	@abc.abstractmethod
    	def foo(self, x: int) -> None: pass
    
    # Définition d'une classe B qui dérive de A :
    class B(A):
    	def foo(self, x : int) -> None:
    		print(2*x)
    	def bar(self, x : int) -> None:
    		print(5*x)
    
    if __name__ == '__main__':
    	obj : A = B()          # obj est de type A et pointe vers une instance de B.
    	obj.foo('test')        # Erreur selon mypy, car 'test' n'est pas un entier.
    	obj.foo(10)            # OK
    	obj.bar(10)            # Erreur selon mypy, car bar n'est pas une méthode de A.
    	if isinstance(obj, B):
    		obj.bar(10)        # OK : dans ce if, obj est de type B.
    	os.system('pause')

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. changer le langage sur excel
    Par kaquelle dans le forum Excel
    Réponses: 4
    Dernier message: 06/04/2011, 12h30
  2. Changer de langage, vos avis sur ce cas ?
    Par bewidia dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 30/10/2009, 18h39
  3. Java modifié sera-t-il le langage de référence et le meilleur ?
    Par Orvinfait dans le forum Général Java
    Réponses: 7
    Dernier message: 04/10/2009, 23h01
  4. Changer le langage utilisé pour le projet
    Par Thierry Chappuis dans le forum Code::Blocks
    Réponses: 4
    Dernier message: 23/04/2007, 13h23
  5. Changer de langage, mais pour lequel ?
    Par reptils dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/02/2006, 17h01

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