• [^] # Re: Intéressant

    Posté par (site web personnel) . En réponse à la dépêche Je crée mon jeu vidéo E09 : Techniques de C++11 appliquées au système à entités. Évalué à 2.

    les différences entre python 1.5 et python 3.3 sont quand même gigantesques

    De fait, elles le sont. Mais la syntaxe est restée très homogène. Regarde la syntaxe lambda de C++, où la complexité de certaines définitions quand on commence à manipuler des functor, on est plus dans le même monde.

    En plus de ce que tu as cité, tu as aussi:
    - old-class vs new-class

    C'est complètement non intrusif au niveau de la syntaxe. Aujourd'hui, tu n'as même pas besoin de savoir que cette différence existe si tu lis du code Python.

    compréhension liste, et autres extensions de syntaxes pour les dictionnaires et les ensembles

    La première fois, la syntaxe est un peu étonnante, notamment quand tu as deux boucles et des if. Mais très vite, on remarque que:
    - la syntaxe est cohérente avec l'existant
    - la seule difficulté, c'est vraiment la règle des précédences entre les multiples for et if
    - la même syntaxe fonctionne pour les générateurs, les list-comprehenions, les set, les dictionnaires: ca veut dire que si tu as compris la syntaxe une fois, tu l'as compris pour tous les générateurs.

    • une API C cassé n-fois

    Moui, on sort un peu du langage cependant.

    • nouvelle syntaxe pour le formatage

    C'est celui où j'ai le plus de réserves.

    • print() \o/

    non, le plus méchant dans l'évolution de Python, c'est bien la gestion de l'unicode, le passage au byte-string.

    Si on regarde la question sous l'angle de "quelqu'un qui a appris Python 1.5 serait-il capable de comprendre un programme Python écrit en 3.4", on voit que :
    - il va buter sur les générateurs/list compréhensions
    - il va buter sur les décorateurs
    - il va buter sur les gestionnaires de contextes

    Bon, au final, il va ramer un peu c'est vrai, mais ça me semble moins violent que pour le C++.

    J'ai appris le C++ quand tout ce fratras de C++11 n'existait pas (je crois même pas qu'on osait lever une exception à l'époque) et Python en version 1.5.2 . En quelques heures, je me suis mis à niveau en Python. Pour C++, j'ai l'impression que je vais galérer beaucoup beaucoup plus.