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

Python Discussion :

Python 3.0, qu'en pensez-vous ?


Sujet :

Python

  1. #1
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut Python 3.0, qu'en pensez-vous ?
    La version finale de Python 3.0 devrait bientôt sortir (actuellement la rc3).

    Cette version va rompre la compatibilité avec Python 2.x (même si la migration de vos programmes ne devraient pas être trop difficile, l'outil 2to3 devrait de ce côté pas mal aider).

    On peut noter:
    - print devient une fonction. Il vous faudra donc utiliser les ()
    - Unification des types str et unicode. Les questions récurrentes sur les problèmes d'encodage devraient moins se faire sentir. En contre-partie, un type byte est créé.
    - des fonctions qui retournaient auparavant des listes retourneront maintenant des iterateurs ou des vues (range, map, filter, ...). Il vous faudra caster explicitement si vous voulez tout de même récupérer des listes.
    - La division / retournera un float même sur des entiers
    - Pas mal de fonctions/modules devenues obsolètes sont supprimés de la distribution standard.
    A noter que pour le moment Python 3.0 que ces prédécesseurs
    Vous pourrez retrouver tous les changements ici: http://docs.python.org/dev/3.0/whatsnew/3.0.html


    Qu'est-ce qui vous plait dans les changements apportés par cette version ?
    Allez-vous vous mettre rapidement à Python 3.0 ? Il faudra tout de même patienter un peu avant de voir la migration des différentes bibliothèques tierces utiles.

    What's new : http://docs.python.org/dev/3.0/whatsnew/3.0.html
    Téléchargement : http://www.python.org/download/releases/3.0/
    Documentation : http://docs.python.org/dev/3.0/

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Moi j'avais entendu parler de typage statique optionnel mais je n'ai pas vraiment regardé les details mais ça peut etre pas mal (surtout si le polymorphisme suit) à la fois pour le travail colaboratif (pas toujours facil de savoir ce qui se balade quand c'est pas son propre code) et les IDE (vérification des arguments à l'écriture).

    Sinon l'apparition du type byte, l'unicode en string de base, ...

    Enfin bon on vera ...

  3. #3
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Première des choses, il n'y a pas de typage statique. Il y a des annotations, mais le compilateur ne s'en sert pas, c'est pour les programmeurs et pour la documentation.

    Pour ce qui est de Python 3.0, je le trouve très bien. C'est pas vraiment différent de Python 2.x (contrairement à Perl 5 vs Perl 6), mais certains changements font du bien:
    • L'intégration du Unicode. Les problèmes d'encodings sont tellement chiant, j'ai super hâte que tout le monde se mette à utiliser Unicode et je suis bien content que Python l'utilise par défaut
    • La plupart des fonctions qui retournaient des listes retournent maintenant des itérateurs (range, keys, values, items, etc.)
    • Même si c'est certain que je vais avoir énormément d'erreurs de syntaxe à cause de ça, faire que print soit une fonction est un point positif.
    • Plus de classic classes
    • Enfin de vraies divisions. 3 / 2 retourne 1.5 et 3 // 2 retourne 1 (ancien comportement)


    J'ai lu un article d'un programmeur qui a converti feedparser avec l'outil 2to3. Apparament ça fonctionne bien.

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    hummmm...

    t a un site avec un exemple de code de typage euhhh "définie" en python 3 ?

  5. #5
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    >>> def plus(a: int, b: int) -> int:
    ...   return a + b
    ... 
    >>> plus(10, 20)
    30
    >>> plus.__annotations__
    {'a': <type 'int'>, 'b': <type 'int'>, 'return': <type 'int'>}
    >>>

  6. #6
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    hummm je suis pas super fan de la syntaxe (horreur des "->" dans les langages on avait été epargné jusqu'ici )

    oki merci pour l'info

  7. #7
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Citation Envoyé par anthyme Voir le message
    hummm je suis pas super fan de la syntaxe (horreur des "->" dans les langages on avait été epargné jusqu'ici )

    oki merci pour l'info
    Effectivement, j'aime pas non plus la syntaxe pour le return, mais enfin. Une chose le fun par contre, les IDEs vont pouvoir donner plus d'informations, mais sans qu'on perde le typage dynamique.

    Je dois mentionner aussi que les annotations ne doivent pas obligatoirement être des types:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    >>> def foo(x: 'entier positif') -> 'brosse a dents':
    ...   pass
    ...
    >>> foo.__annotations__
    {'x': 'entier positif', 'return': 'brosse a dents'}
    >>>
    Ce sont vraiment juste des annotations, des infos supplémentaires qu'on peut donner aux paramètres.

  8. #8
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    La Release 3.0 est maintenant disponible : http://www.python.org/download/releases/3.0/

  9. #9
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Arf toujours pas de join sur les tuples/arrays, pourquoi ils font pas comme dans tout les langages au lieu de mettre ca sur str ? :/

  10. #10
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    A noter que pour le moment Python 3.0 que ces prédécesseurs
    -> Pourriez-vous rajouter les mots manquants ?
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  11. #11
    Membre à l'essai
    Homme Profil pro
    consultant
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 12
    Points
    12
    Par défaut
    Nouveau en python je vais directement me lancer sur Python 3000. En comparaison avec la v2 l'unicode, le multiprocessing et l'amélioration des classes I/O et les types strings/datas font la différence : programmation système, applis en réseaux, supervision ...

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par kedare Voir le message
    Arf toujours pas de join sur les tuples/arrays, pourquoi ils font pas comme dans tout les langages au lieu de mettre ca sur str ? :/
    Je ne trouve pas ça surprenant, c'est bien dans la philosophie Python, donc ça me va

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 62
    Points : 44
    Points
    44
    Par défaut Avis d'un néophyte Python
    Hello,
    je n'ai découvert Python que depuis 3 semaines Je connais en fait (un peu le C) avec lequel je fais mes petits programmes d'amateur du dimanche. Je trouve dommage que les développeurs de Python portent leurs efforts sur cette version 3.0, la 2.5 me paraissant pas mal Par contre, je trouve que certains points mériteraient une bonne amélioration. Entre autre , je pense surtout au déploiement. Une vraie cata ! Mon début de programme tarot sous wxpython finit avec une bonne quinzaine de dll et divers fichiers pour près de 12 Mo
    Je n'ai pas trouvé de déploiement en statique et c'est très dommageable. Je trouve de plus qu'un compilateur optimisant la vitesse aurait été bien venu Le python se révèle très mais alors très lent comparé au C. Je m'y attendais mais pas à ce point là (facteur 100 ?). Bref, un petit compilateur me produisant un seul .exe avec les libs en statique et un code plus rapide m'aurait nettement plus intéressé Ceci n'est l'avis que d'un amateur

    François

  14. #14
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par vega95 Voir le message
    Le python se révèle très mais alors très lent comparé au C. Je m'y attendais mais pas à ce point là (facteur 100 ?).
    C'est surtout qu'on ne fait pas les mêmes choses en C qu'en Python De mon côté, je n'ai pas de telles différences de vitesse entre mes codes

    Et si tu veux compiler, tu peux en partie -> Cython . Mais tu perds certains avantages de Python. On ne peux pas avoir le beurre et l'argent du beurre.

    Pour le compilateur, il y a des utilitaires, comme py2exe, bbfreeze, ... Et pour le code plus rapide, il faudra attendre Pypy ou basculer sur IronPython ou Jython.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 62
    Points : 44
    Points
    44
    Par défaut
    Je ne connaissais pas PyPy Voilà typiquement un projet qui m'intéresse plus que la v 3.0

  16. #16
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    Le python se révèle très mais alors très lent comparé au C.
    Python est certainement un peu plus lent que du C, c'est normal puisque Python est basé sur C. Maintenant pour rendre un programme python rapide il faut commencer par se remettre en question soit même en optimisant l'ecriture de son code, et en traquant les mauvaises ecriture (bien souvent hérité de pratique de programmation en C/C++)
    Python demande au développeur d'être rigoureux et méthodique si il veut un programme performant.
    Personnellement je commercialise un serveur de traitement d'images ecrit en Python. En comparant, les perf de mon serveur avec des concurrents ecrit en language compilé tel le C, je suis aussi rapide voir plus rapide dans certaines conditions.
    Donc la remarque que python est lent, n'est pas trés pertinente en soit.
    Amitié

  17. #17
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    En ce qui me concerne j'utilise python depuis environ 1 an et je suis toujours rester sur la version 2.5 que je trouve vraiment bien.

    Certains points me paraissent pas mal sur la version 3.0 et d'autres moins... il faudra que je me fasse une idée en l'utilisant.

    Je me demande d'ailleurs s'il est possible de garder la version 2.5 pour continuer à coder avec tout en installant sur le même PC la version 3.0 pour l'essayer, ou faut-il utiliser un autre PC?
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  18. #18
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    Je me demande d'ailleurs s'il est possible de garder la version 2.5 pour continuer à coder avec tout en installant sur le même PC la version 3.0 pour l'essayer, ou faut-il utiliser un autre PC?
    On peut parfaitement installer 2 versions de Python sur le même système; le répertoire par défaut contient d'ailleurs le numéro de version (Python25, Python30). A l'installation de Python 3.0, il faut simplement choisir si tu veux associer les extensions (.py, .pyw, ...) avec la nouvelle version ou l'ancienne (sous Windows en tout cas). Mais rien n'empêche par après de lancer un .py avec l'une ou l'autre version.

  19. #19
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 396
    Points
    396
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    En ce qui me concerne j'utilise python depuis environ 1 an et je suis toujours rester sur la version 2.5 que je trouve vraiment bien.

    Certains points me paraissent pas mal sur la version 3.0 et d'autres moins... il faudra que je me fasse une idée en l'utilisant.

    Je développe toujours en Python 2.5 au boulot et en Python 2.6 chez moi. C'est un peu obligatoire car les bibliothèques que j'utilise ne sont pas encore disponible pour Python 3. Ca viendra.

    Je pense que nous sommes beaucoup dans ce cas.
    Il ne faut pas perdre de vue que Python 3 est l'avenir de Python et qu'un jour, le choix ce fera de lui même, alors, dès que possible, il faudra bien utiliser Python 3. Rester sur Python 2 (déjà une vielle version) sans nécéssité est une abération, enfin je pense, ou alors il faut changer de langage, car Python 2 ne sera plus utiliser. Donc, la question n'est pas de savoir si l'on passe ou non à Python 3, mais quand y passer.

  20. #20
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Gamal le Celte Voir le message
    Je développe toujours en Python 2.5 au boulot et en Python 2.6 chez moi. C'est un peu obligatoire car les bibliothèques que j'utilise ne sont pas encore disponible pour Python 3. Ca viendra.

    Je pense que nous sommes beaucoup dans ce cas.
    Il ne faut pas perdre de vue que Python 3 est l'avenir de Python et qu'un jour, le choix ce fera de lui même, alors, dès que possible, il faudra bien utiliser Python 3. Rester sur Python 2 (déjà une vielle version) sans nécéssité est une abération, enfin je pense, ou alors il faut changer de langage, car Python 2 ne sera plus utiliser. Donc, la question n'est pas de savoir si l'on passe ou non à Python 3, mais quand y passer.

    Je suis entièrement d'accord avec toi. En fait actuellement j'utilise wxPython et à ma connaissance il n'est pas encore sorti pour Python 3.0
    Je ne voyait donc pas l'intérêt de migrer tout de suite.

    Ce pendant comme il est possible d'installer deux versions de python sur le même PC sans risque je vais m'y lancer.
    D'ailleurs l'astuce de dividee est bien et je n'y avais pas du tout pensé. Je pense donc utiliser par exemple python 2.5 pour tout les extensions .py (comme aujourd'hui) et python 3.0 pour .pyw

    Cela me permettra d'utiliser les deux versions.

    Merci et bonne soirée
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

Discussions similaires

  1. Pensez-vous que Python 3.x était une erreur ?
    Par Olivier Famien dans le forum Général Python
    Réponses: 25
    Dernier message: 23/02/2015, 08h29
  2. Avec votre expérience que pensez vous de Lua face à Python?
    Par zuzuu dans le forum Général Python
    Réponses: 1
    Dernier message: 17/02/2008, 13h08
  3. Borland prépare un EDI pour C# - qu'en pensez vous ?
    Par Marc Lussac dans le forum Actualités
    Réponses: 24
    Dernier message: 23/07/2003, 10h32

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