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

Affichage des résultats du sondage: Pensez-vous que Python 3.x était une erreur ?

Votants
35. Vous ne pouvez pas participer à ce sondage.
  • Oui, Python 3.x était une erreur

    11 31,43%
  • Non, cette version a sa place

    20 57,14%
  • Il fallait une étape de transition

    4 11,43%
Python Discussion :

Pensez-vous que Python 3.x était une erreur ?


Sujet :

Python

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    1 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 089
    Points : 26 554
    Points
    26 554
    Par défaut Pensez-vous que Python 3.x était une erreur ?
    Pensez-vous que Python 3.x était une erreur ?
    54 % de développeurs estiment qu’il fallait une étape de transition

    Python, qui est un langage de programmation très apprécié des développeurs, suscite depuis sa version 3.x de vifs débats dans le monde informatique. Et pour cause ; l’implémentation de sa version 3.x rompt en terme de compatibilité avec les précédentes versions 2.x et inférieures.

    Dans les faits, plusieurs corrections ont été apportées au langage avec la version 3.x. À partir de cette version, l’interpréteur de la version 3.x génère des erreurs lorsqu’il doit exécuter du code écrit avec la version 2.x. Cette rupture factuelle a eu pour conséquence immédiate d’inciter certains développeurs à abandonner la version 2.x pour la nouvelle itération. D’autres par contre préfèrent pour une raison ou une autre continuer de travailler sous la version 2.x.

    Aussi, pour mieux comprendre les raisons profondes des défenseurs et pourfendeurs de chaque version, une étude a été menée sur l’année 2013 et reconduite en 2014.

    6752 personnes ont été interrogées en 2014. Les résultats obtenus ont été en partie comparés à ceux de l’année 2013 et pour d’autres exposés directement. Dix points ont été abordés dans l’étude. En voici un extrait.


    1. Avez-vous déjà écrit du code avec python 2.x ou 3.x


    Interprétation :
    - python 2.x : en 2013 comme 2014, 97 % des personnes interrogées ont écrit du code
    - Python 3.x : en 2013, 60 % des interrogées ont écrit du code avec cette version. En 2014, nous avons eu une progression de 12 %.


    2. Avec quelle version de python écrivez-vous présentement (2014) du code : 2.x ou 3.x


    Interprétation :
    - python 2.x : en 2013, 78 % des sondées écrivaient du code python avec cette version. Une baisse de 10 % a été observée en 2014 pour cette même version.
    - Python 3.x : en 2013, 22 % des interrogées écrivaient du code avec la version 3.x. En 2014, nous avons eu une progression de 10 %.


    3. Lorsque vous commencez un projet personnel, quelle version utilisez-vous ?


    Interprétation :
    - 50 % des interrogées en 2014 débutaient leur projet personnel avec python 2.x contre 50 % pour ceux utilisant la version 3.x


    4. Quelle version de python utilisez-vous régulièrement ?


    Interprétation :
    - Python 3.4 : 43 % des interrogées écrivaient régulièrement du code en 2014 avec cette version.
    - Python 2.7 : 81 % des interrogées utilisaient régulièrement cette version en 2014 pour écrire du code en 2014.


    5. Pensez-vous que Python 3.x était une erreur ?


    Interprétation :
    - 12 % des interrogées en 2014 pensent que python 3.x était une erreur.
    - 34 % des interrogées en 2014 pensent le contraire.
    - 54 % estiment qu’il fallait une étape de transition.

    D’autres visuels sont disponibles à cette page. Pour une analyse complète des résultats de l'étude, vous pouvez également consulter cette page.


    Source : Blog Randy Oslon


    Et vous ?

    Que pensez-vous des résultats de cette étude ? Les trouvez-vous pertinents ?

    Quelle version de python préférez-vous ? Pourquoi avez-vous opté pour cette version ?
    Images attachées Images attachées      
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par Olivier Famien Voir le message
    Que pensez-vous des résultats de cette étude ? Les trouvez-vous pertinents ?
    On peut discuter pendant longtemps de ce qu'il aurait fallu faire lors du lancement de Python 3, mais pour moi, ça n'a qu'un intérêt limité. On peut toujours regretter qu'une transition plus douce n'ait pas été choisie, mais je ne suis pas sûr qu'elle aurait été techniquement possible, ni qu'elle aurait eu moins de conséquences sur les codes.


    Citation Envoyé par Olivier Famien Voir le message
    Quelle version de python préférez-vous ? Pourquoi avez-vous opté pour cette version ?
    Je suis passé à Python 3 en 2014: ça m'a consommé pas mal de temps, mais j'en suis ravi: la rupture partielle de compatibilité a permis de résoudre plein de problèmes irritants de Python 2, à commencer par les encodages.

    Et puis le petit code "2to3" permet d'alléger cette conversion, même si elle ne résout pas tous les problèmes. Par exemple, pour moi qui travaille avec PyQt4, il y a des modifications spécifiques qui ne sont pas traitées. Et avec Python 2, je ne pourrais pas passer à PyQt5 (qui oblige Python 3).

    La seule chose qui me gène vraiment, c'est le retard de certains fournisseurs. Il était prévu 5 ans de transition pour passer à Python 3, et nous les avons maintenant largement dépassés.
    Malgré cela, je constate:
    - que les Python installés par défaut sur les "Unix" (Linux et Mac OS X) en sont encore à Python 2
    - que mon hébergeur web chez lequel j'ai une application Python qui tourne en CGI en est encore à Python 2.5, ce qui m'oblige à gérer le même code dans les 2 versions.
    - que certains modules externes ont encore du mal à passer à Python 3, et que certains risquent d'en mourir...

    Bref, Python 3 existe, et continue à progresser (3.3, 3.4, 3.5, ...): ce serait vraiment dommage d'en rester à Python 2 dans les prochaines années...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 303
    Points
    303
    Par défaut
    Rien que pour la gestion de l'Unicode, Python 3 valait le coup

    Bon, perso j'ai l'analyse inverse (pour changer). Il a manqué -à mon humble avis- d'incitations à passer à Python 3. En prolongeant la durée de vie de Python 2.x, cela a encouragé à se recroqueviller dans la zone de confort que représentait Python 2.x. En intégrant des rétro-portages de fonctionnalités de la 3.x vers la 2.x on n'a pas créé une rupture propre, en permettant aux plus frileux de se rabattre encore une fois sur la 2.x (beaucoup de libs utilisant du code compatible avec les deux versions) plutôt que d'embrasser pleinement la 3.x.

    Mais peut-être que sans cette transition - trop douce à mon goût - Python 3 n'aurait jamais pris

    Daniel

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2013
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 277
    Points : 1 011
    Points
    1 011
    Par défaut
    Il est vrai que ce qui tue le langage c'est qu'on l'a en double ... Peut être une étape de transition puis l'abandon de python 2.x ?

  5. #5
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    S'il y a bien une chose de pénible avec Python c'est bien ces histoires de non rétrocompatibilité entre les versions majeures (2.x vs 1.x et maintenant 3.x vs 2.x).

    Ce n'est peut-être pas si grave en milieu éducatif et universitaire, mais ce genre de gouvernance est prohibitif pour les entreprises et fait perdre à Python le crédit qu'il pourrait pourtant avoir si les évolutions étaient plus respectueuses de l'existant.
    Tutoriels et FAQ TypeScript

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Points : 888
    Points
    888
    Par défaut
    Il est vrai que ces deux versions utilisées en parallèle causent du tort au langage. Pas mal de ressources n'ont pas fait le passage à la version 3 du coup ça peut inciter des dev à rester sur la version 2, et donc retarder encore la disparition de la version 2, c'est un cercle vicieux.

    Cela dit je préfère encore ça aux langages qui sous couvert de rétro-compatibilité gardent ad-vitam des comportements inélégants.

  7. #7
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Citation Envoyé par Theta Voir le message
    Il est vrai que ces deux versions utilisées en parallèle causent du tort au langage. Pas mal de ressources n'ont pas fait le passage à la version 3 du coup ça peut inciter des dev à rester sur la version 2, et donc retarder encore la disparition de la version 2, c'est un cercle vicieux.

    Cela dit je préfère encore ça aux langages qui sous couvert de rétro-compatibilité gardent ad-vitam des comportements inélégants.
    Au pire, il y a toujours la possibilité de créer un nouveau langage sans pour autant pousser une communauté à abandonner un langage en place et qui pourrait évoluer autrement.

    Non, vraiment, cette façon de faire table rase à chaque version majeure fait que Python ne sera jamais pris sérieusement dans le monde professionnel.
    Tutoriels et FAQ TypeScript

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 303
    Points
    303
    Par défaut
    Citation Envoyé par yahiko Voir le message
    S'il y a bien une chose de pénible avec Python c'est bien ces histoires de non rétrocompatibilité entre les versions majeures (2.x vs 1.x et maintenant 3.x vs 2.x).

    Ce n'est peut-être pas si grave en milieu éducatif et universitaire, mais ce genre de gouvernance est prohibitif pour les entreprises et fait perdre à Python le crédit qu'il pourrait pourtant avoir si les évolutions étaient plus respectueuses de l'existant.
    J'étais pas très actif en Python à l'époque de la transition 1.x vers 2.x. C'était quoi les points d'accroche à l'époque?

    EDIT: Ah si, il y a un truc qui m'a bien agacé avec les différentes versions de Python, mais ce n'est pas spécifique à la transition 2.x -> 3.x, c'est les changements au niveau de l'API C qui nécessite de recompiler les extensions C à chaque version ou presque. A un point j'ai préféré écrire une API C à mes codes C/C++ (indépendante de Python.h), compiler en *.so/*.dll et taper dedans avec ctypes... Bourrin.

    Daniel

  9. #9
    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
    si le sujet est la rupture de compatibilité, je ne vois pas trop ce qu'une étape de transition aurait changé...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 97
    Points : 370
    Points
    370
    Par défaut
    Python aurait pu être quelque chose de fantastique, mais malheureusement, la fainéantise légendaire des dev. python (Il n'y a qu'a voir le nombre d'extension ou pour le moindre patch ou évolution, le mec te demande de le faire toi même). résultat, on se retrouve avec une version 3 forkée depuis la branche 2.7 qui est moisie jusqu’à l'os.

    Sans déconner, les mecs avait l'occasion de repartir depuis zéro avec une véritable API (l'API C actuelle pour embedded Python est juste dégueulasse), une gestion des threads correcte, retirer le GIL et surtout avoir un code propre, une architecture claire et modulaire. Mais non il on juste forké la 2.7 qui est une m**** sans nom.

    Python pour moi est mort depuis des années.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 585
    Points : 1 138
    Points
    1 138
    Par défaut De la fiabilité de ce genre de sondage...
    En sous-titre de l'article :
    54 % de développeurs estiment qu’il fallait une étape de transition
    En résultat (provisoire) du sondage :
    6,25% des répondants pensent qu'il fallait une version de transition
    Bien sûr, le nombre de réponses n'est pas identique dans les 2 cas (6000 et quelques contre moins de 20 mais ça ne se voit pas !), mais le résultat est suffisamment différent pour qu'on puisse conclure qu'on ne peut rien conclure, sans d'avantage de précisions !
    - Comment ont été interrogées les 6700 personnes ? Comment ont-elles été choisies ?
    - Comment répondent les gens ici ? Selon quels critères ?
    Outre le sujet lui-même, dont le contenu est très intéressant, l'intérêt ou la fiabilité des résultats d'un tel type de sondage semblent à prendre réellement avec des pincettes...

    Citation Envoyé par yahiko Voir le message
    Non, vraiment, cette façon de faire table rase à chaque version majeure fait que Python ne sera jamais pris sérieusement dans le monde professionnel.
    Ha ha ha !
    L'avis publié ci-dessus est mien et ne reflète pas obligatoirement celui de mon entreprise.

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 49
    Points : 110
    Points
    110
    Par défaut changement nécessaire
    Changer d'API n'est jamais un choix simple et je trouve que la transition à été dans l'ensemble plutôt bien négocié.
    Traroth2 le dit bien : difficile de faire plus doux quand on casse tout.

    Savoir abandonner des vieilleries et faire le pas sur du neuf est gage de sérieux, non?

    En plus, python c'est l'adage "only one way to do it" donc incompatible avec des anciennes et des nouvelles façon de faire.
    J'estime qu'un dev actuel n'est pas isolé, il doit régulièrement comprendre et retoucher le code d'un tiers...
    Pour ce faire, une API concise est source de productivité! Quand je vois l'évolution de C++, qui garde tout, et qui s'enterre vivant...

    Après, d'autres langages, comme PHP en sont déjà à la version 5 (en 2040, il passeront peut-être la 6 qui manque cruellement) et que la communauté autours ne s'évapore pas pour autant, je ne vois vraiment pas le soucis.

    Enfin, je comprend "robertledoux" sur son mécontentement. Maintenant, je pense que les core-devs ont du faire des choix pragmatiques.
    Réécrire from scratch 20 ans de dev, c'est pas une mince affaire.
    Les threads sont remplacés par du multi-processing lorsqu'il y a un vrai besoin de paralléliser. Pour les puristes, ça peut paraître crade mais dans 95% des cas, ça reste acceptable.
    Je persiste à dire que les soucis de verrou globale du GIL n'est pas si pénalisant qu'il n'y parait.

    Enfin, Cpython, même si il reste l'implémentation de "référence", est loin d'être le seul interpréteur. Pypy, par exemple, est beaucoup plus propre, utilise du JIT, n'a pas de GIL, fait du sandboxing, dispose de plusieurs type de Garbage collector etc.

    A mon sens, les soucis inhérent à Cpython dont tu parles sont difficile à régler justement en C.
    Il faudrait un vrai langage taillé pour la concurrence : pourquoi pas Rust (une fois stable)?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 303
    Points
    303
    Par défaut
    Citation Envoyé par robertledoux Voir le message
    Python aurait pu être quelque chose de fantastique, mais malheureusement, la fainéantise légendaire des dev. python (Il n'y a qu'a voir le nombre d'extension ou pour le moindre patch ou évolution, le mec te demande de le faire toi même). résultat, on se retrouve avec une version 3 forkée depuis la branche 2.7 qui est moisie jusqu’à l'os.

    Sans déconner, les mecs avait l'occasion de repartir depuis zéro avec une véritable API (l'API C actuelle pour embedded Python est juste dégueulasse), une gestion des threads correcte, retirer le GIL et surtout avoir un code propre, une architecture claire et modulaire. Mais non il on juste forké la 2.7 qui est une m**** sans nom.

    Python pour moi est mort depuis des années.
    ( On dirait moi quand je peste contre javascript que je voudrais voir disparaître de la surface de la Terre )

    C'est vrai que de nous avoir refilé le GIL pour encore quelques décennies c'était pas vraiment sympa. C'est une plaie ce truc.

    Daniel

  14. #14
    Membre du Club
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    j'avais débuté avec python, mais les deux versions incompatibles m'ont troublé et donc j'ai dû l'abandonner.

  15. #15
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'avoue que je suis très étonné par les réactions violentes de certains concernant ce passage à Python 3.

    Ce n'est pas un problème si gros qu'il entraine l'abandon du langage! L'utilisation du petit script "2to3" permet de déblayer 90% des modifs, et les 10% qui restent sont faciles à faire (un logiciel de type "recherche et remplacement multi-fichiers" est une aide intéressante).

    En contrepartie de ce petit travail, Python 3 a fait beaucoup de progrès sur de nombreux sujets, ce qui rend les développements suivants plus faciles. La quantité de modules d’extension est extrêmement grande dans de très nombreux domaines. Pour ma part, je fais beaucoup de graphiques (PyQt4) en multiplateforme, et les programmes obtenus sont beaux et rapides au point que les utilisateurs ne savent pas que c'est du Python. Et il est toujours possible de développer un module en C ou C++ pour les parties critiques.

    Je suis aussi surpris par certaines remarques. Les threads ne fonctionneraient pas? Ah bon? Pourtant, je les utilise couramment et sans problème dans les 2 versions de Python depuis des années.

    Je ne suis pas "marié" avec Python, et je regarde périodiquement l'offre des principaux langages (hors C et C++): je n'en vois pas beaucoup d'autres qui soient en même temps aussi complets ni aussi pratiques en facilité de développement.

    (non: ce n'est pas un troll! )
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  16. #16
    Membre émérite
    Inscrit en
    Janvier 2006
    Messages
    719
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 719
    Points : 2 712
    Points
    2 712
    Par défaut Comparaison
    Je ne progamme pas en Python mais en Perl. J'écris ici pour apporter au débat un point de comparaison extérieur.

    Je reconnais volontiers un bon point avec Python par rapport à Perl: une vraie spécification, qui a permis, outre la version C, d'avoir une implémentation pour les machines virtuelles Java et .NET. En Perl on en est encore loin.

    C'est un fait que la majorité des langages de script se soucient peu de compatibilité ascendante. Pourtant ça devrait être même plus important encore que pour des langages compilés, parce qu'on peut se retrouver à devoir exécuter des anciens scripts. Et concernant Python c'est justement mon cas : actuellement j'ai un Python 2.7 dans mon environnement qui sert juste à exécuter certains programmes dont je dépends. Demain il faudra peut-être en plus un environnement Python 3, 4, 5... juste pour exécuter les scripts qui n'ont pas été migrés (ou qui n'ont pas pu, parce qu'ils dépendent d'une librairie qui ne l'a pas été)?
    J'ai eu le même problème avec des programmes Ruby entre la 1.8 et la 1.9 (tiens, ils avaient pourtant juste changé le numéro de mineure?), moins souvent avec PhP.
    Bizarrement, les langages semi-compilés comme C# ou Java se soucient bien plus de la rétro-compatibilité, quitte à trainer derrière eux des structures que plus personne n'utilise, alors que là, la rétro-compatibilité entre binaires (ou entre VM si vous préférez) serait amplement suffisante et même plus facile à assurer. Cherchez l'erreur...

    Mais puisqu'il est question ici d'une période de transition, il est temps pour moi de faire la comparaison avec Perl dont je parlais au début.
    Entre Perl 4 et 5, il y a eu plein de nouveautés introduisant des incompatibilités. Mais comme il s'était écoulé peu de temps entre ces versions, tout le monde a migré ses programmes et même avant l'an 2000 on ne parlait quasiment déjà plus de Perl 4.
    Puis est arrivée la rumeur Perl 6, une vraie spécification (enfin!) et les premières tentatives d'implémentation... et une période de transition qui dure depuis maintenant 15 ans! Larry Wall a prévu de sortir la première version stable de Rakudo cette année mais pour ce qui est de Perl 5, on en est maintenant à la 5.20 (tiens, je parlais encore il y a quelques minutes de numéros à 2 chiffres...) qui est truffée de rétro-portages de nouveautés de Perl 6. Et on trouve même un package perl6-v qui permet d'interpréter du Perl 6 en Perl 5! Sans même parler des différences entre les deux langages (typage fort, modèle objet complètement différent...) je crois qu'on est pas prêts de voir une migration en masse vers cette nouvelle version.

    Alors, conclusion?
    Pour moi la meilleure solution, quel que soit le langage, serait de se donner un cahier des charges bien moins ambitieux d'une version à la suivante. Au lieu de re-spécifier un nouveau langage qui ne partage guère que le nom avec la version précédente (au risque qu'un même programme fonctionne dans les deux versions mais avec un comportement différent...) il vaudrait mieux spécifier une dizaine de nouveautés, on prend le temps de se mettre d'accord sur la spec et ensuite on implémente, quitte à déjà commencer à spécifier la version suivante. Plus les versions sont rapprochées, plus la transition est facile.

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 298
    Points : 6 778
    Points
    6 778
    Par défaut
    Il existe une convention de versionnement communément admise, et c'est le cas dans l'univers Python, qui nous dit que le numéro majeur de version est incrémenté lorsqu' apparaissent des changements rétro-incompatibles. Je m'étonne donc du désappointement de développeurs découvrant qu'il leur faudra réécrire du code lors du passage à une nouvelle version majeure.

    On est censés savoir ce qu'implique une rétro-incompatibilité et, en Python du moins, nous sommes adultes consentants.

    Le cas de Python n'est pourtant pas si contraignant que cela. Que doivent penser les développeurs C++ utilisant le framework Qt ? Les changements introduit avec la version 5 nécessite une réécriture beaucoup plus coûteuse en temps et je n'ai pourtant pas eu l'impression que ces changements aient fait autant de vagues que le passage à Python 3.

    Et puis il y a la question des librairies tierces. Ces librairies qui, après six ans, n'ont toujours pas été portées sous Python 3 doivent simplement être considérées comme abandonnées. C'est soit l'occasion d'aller voir ce qui existe ailleurs, soit de découvrir qu'il n'est pas si compliqué que cela de forker un code et de publier sa version compatible Py3. Je n'y vois que des aspects enrichissants.

    Python 3 n'est nullement une erreur, c'est une étape logique dans une progression régulière. Progression souhaitée par les développeurs. Le Tout-à-l'Unicode enfin !


    Et une étape transitoire ?

    C'est quoi une étape transitoire ?

    Ça ?
    En 2018 tous les pays de la zone Euro devront adopter la circulation automobile à gauche.
    Il est toutefois prévu une période d'adaptation, nous commencerons par les camions.
    Sans rire, des gens ont réellement pensé possible une version à mi-chemin 2-3 ?

    Notons tout de même qu'à l'intérieur de la version 2 existe un module de transition: __future__.

    Je pense que Python à encore de beaux jours devant lui. D'ailleurs, tant qu'on est dans un forum bistrot, personne n'a de nouvelles de Python 4 ?

    Vincent

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Points : 76
    Points
    76
    Par défaut
    Les étapes de transitions ont existées, bien plus que dans n'importe quel autre langage.

    Le problème n'est pas Python 3 en lui même: les changements sont vraiment mineurs et étaient plus attendus qu'autre chose.
    La cohérence introduite et le nettoyage étaient nécessaires.
    Le problème, alors que l'annonce de Python 3 a bientôt 10 ans, c'est le fait qu'il y ai encore des librairies structurantes qui ne soient pas compatibles avec Python 3.
    Cette situation existe parce qu'on la permet:
    • on maintient encore un version 2.7
    • on donne raison à ceux qui maintiennent des serveurs utilisant Python 2.5 (non mais allo quoi!)


    Si on arrête le support de Python 2.7, vous verrez que rapidement l'adoption de Python 3 ne sera plus un problème.

    Il suffit de regarder ici pour voir les points de blocage: https://python3wos.appspot.com/
    Les projets en rouge dans cette liste sont exactement les raisons qui font la non-adoption de Python 3.

    A chaque fois que je démarre un projet, il faut vérifier que les libs dont on a besoin sont compatibles Python 3.
    Dernièrement je revois un peu mes choix: j'essaie autant que possible de me passer de ces librairies qui ne sont pas compatibles Python 3, quite, lorsque c'est possible, à la recoder.
    Malheureusement ce n'est pas toujours possible, ce qui impose souvent l'usage de Python 2. C'est malheureux.
    Certains projets ont même déjà les pull-requests pour un support Python 3, c'est juste le leaddev qui bloque, n'en voyant pas l’intérêt.

    Au final, on est dans la même situation que le support IE6 qui a duré bien trop longtemps.
    Il a fallu que les sites les plus importants (gmail, facebook...) annoncent qu'ils ne supportent plus IE6 pour que tout le monde se dise "si eux le font je peux le faire".
    L'adoption de Python 3 ne se fera pas tant qu'il y aura un support de Python 2 puisqu'en substance, le message envoyé est: "ce n'est pas grave si vous ne passez pas à Python 3, on vous maintient Python 2 pour que vous soyez encore content 10 ans après".

    Pour avoir fait beaucoup de portages vers Python 3, il n'y a rien d'insurmontable, c'est vraiment très simple à faire, surtout avec des couches d'abstraction comme Six.
    Qu'il y ai encore des libs majeures qui ne soient pas passées à Python 3 est le problème fondamental cela bloque le démarrage de nouveaux projets en Python 3.

    De voir aujourd'hui des outils innovants (que j'utilise ) qui sortent sans supporter Python 3 me scandalise (fig, ansible...) !
    Lorsqu'on leur pose la question, ils répondent, au choix!
    • on préfère utiliser Python 2 parce que il faut supporter des serveurs ancestraux,
    • je dépend de telle lib qui n'est pas compatible


    Bref, tout ça pour dire que si tout le monde attend tout le monde, il ne se passe rien !
    Donc, dès que vous en avez la possibilité, utilisez Python 3 !!!
    Je pense d'ailleurs que les nouvelles fonctionnalités introduites dans les dernières versions (ex. AsyncIO) attireront des plus en plus de développeurs.

    PS: publier une analyse des résultats avec 26 participants n'est pas vraiment pertinent puisque 54% des développeurs (cf. punchline de l'article) représente 14 développeurs et je ne pense pas en l’occurrence que cela représente un échantillon représentatif des développeurs Python.

  19. #19
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    J'aime beaucoup la mentalité "yaka fokon" de certains.

    Ben voyons, c'est bien connu qu'une boite aime payer ses devs à développer des choses qui n'apportent pas de nouvelles fonctionnalités comme un portage de toute une base de code d'une version d'un langage à une autre parce que des gens à l'autre bout du globe refusent la retro-compatibilité et le support...
    Tutoriels et FAQ TypeScript

  20. #20
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par VinsS
    Il existe une convention de versionnement communément admise, et c'est le cas dans l'univers Python, qui nous dit que le numéro majeur de version est incrémenté lorsqu' apparaissent des changements rétro-incompatibles. Je m'étonne donc du désappointement de développeurs découvrant qu'il leur faudra réécrire du code lors du passage à une nouvelle version majeure.

    On est censés savoir ce qu'implique une rétro-incompatibilité et, en Python du moins, nous sommes adultes consentants.

    Le cas de Python n'est pourtant pas si contraignant que cela. Que doivent penser les développeurs C++ utilisant le framework Qt ? Les changements introduit avec la version 5 nécessite une réécriture beaucoup plus coûteuse en temps et je n'ai pourtant pas eu l'impression que ces changements aient fait autant de vagues que le passage à Python 3.
    +1!! La rétrocompatibilité est plutôt l'exception que la règle.
    Python a géré la transition vers Python 3 depuis la version 2.5 de Python. Je ne vois pas ce qu'il faut de plus comme étape transitoire.


    Citation Envoyé par yahiko
    Non, vraiment, cette façon de faire table rase à chaque version majeure fait que Python ne sera jamais pris sérieusement dans le monde professionnel.
    N'importe quoi !!!
    Ruby ne gère pas la rétrocompatibilité et est massivement utilisé.
    PHP, Perl... ne gèrent pas la rétrocompatibilité et sont utilisés.
    C, C++... il n'y a pas de rétrocompatibilité et c'est utilisé en entreprise.
    .Net ne gère pas une rétrocompatibilité totale, mais c'est utilisé.
    Il n'y a bien que Java qui essaie de faire croire qu'il y a une vrai rétrocompatibilité, mais en pratique ce n'est pas vraiment le cas puisque pour une même version, sur des JVMs différentes il y a déjà des incompatibilités.

    Python, pas utilisé dans le monde professionnel ?!?!?
    Ça me fait bien rire: toutes les boites qui travaillent de la donnée, du spatial, du matriciel, qui font du machine learning, ... utilisent Python.
    Ils choisissent Python, non pas pour la rétrocompatibilité, mais pour l’écosystème et l'outillage qu'il tire, pour la facilité d'apprentissage puis de maintenance.
    Il ne doit y avoir que les banques qui prennent en compte cet argument, parce que Oracle leur a dit "venez chez nous, vous payerez un bras pour du support et une illusion de rétrocompatibilité" !
    Le problème sur les chiffres de l'informatique, c'est que les banques représentent la plus grosse partie du marché, que les recruteur et les SSII veulent leur part du gâteau et qu'au lieu de leur dire "vous savez, depuis les années 2000, on sait faire mieux", elle disent "oui oui, tout ce que vous voudrez" !
    Les méthodes de comptages sont souvent très discutables (du nombre de recherches sur Google à un sondage sur un panel d'entreprises non représentatives).

    Aucune SSII ne m'a jamais proposé de mission sur des stacks à base de Python: "Il n'y a pas de marché", "C'est un langage de script"... Bref, j'en ai entendu de toutes les couleurs.
    Maintenant je me débrouille sans eux, et, à ma grande surprise (je suis naïf, je sais), toutes les boites sont en galère parce qu'elles cherchent des devs Python et qu'il en manque beaucoup!!!
    Même les SSII qui m'avaient dit "Python=No Go" m'ont recontacté pour ça, toutes sans exception!
    Bref, Python en entreprise, ça existe et il y en a de plus en plus.

Discussions similaires

  1. [JAXB] Pensez vous que JAXB a un avenir dans le monde professionnel ?
    Par eclesia dans le forum Format d'échange (XML, JSON...)
    Réponses: 22
    Dernier message: 17/11/2010, 16h03
  2. Pensez-vous que le gaspillage de ressources des logiciels récents est trop important?
    Par _skip dans le forum Débats sur le développement - Le Best Of
    Réponses: 30
    Dernier message: 02/09/2009, 13h29
  3. Réponses: 21
    Dernier message: 17/10/2008, 19h44
  4. Réponses: 2
    Dernier message: 22/03/2007, 22h04
  5. Réponses: 42
    Dernier message: 02/02/2007, 10h19

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