• [^] # Re: Le bilan

    Posté par . En réponse au journal Le C++ du futur. Évalué à 4.

    Pour reprendre sur Python avec mon expérience à moi ^_^

    Alors :
    - Pour la syntaxe, elle est plutôt bien pensée (sauf qq exceptions) et j'arrive à me relire assez bien même quand il s'agit de code fait à mes débuts ... c'est une des force de Python. Par contre, il y a des gros défauts de logique qui peuvent amener à des bugs tout bizarre (mais on apprend à les éviter)
    - Pour le "framework", comme déjà dit, la bilbiothèque standard est très bien fournie et il existe de très nombreuses extensions sur le oueb. Ensuite, pour l'étendre soi-même c'est relativement facile si on utilise un outil (non-standard) d'aide à l'extension tel que SWIG (multi-langage) ou Boost.Python (C++).
    - Pour la vitesse, il faut être clair : PYTHON EST LENT !!! C'est indéniable ! Par contre, ça veut pas dire qu'on ne peut pas être efficace en utilisant Python. Car si le langage lui-même est très lent, les extensions qui ont besoin de vitesse sont toutes écrites dans un autre langage (le plus souvent C, Fortran et C++). Il faut notamment citer pour le calcul scientifique le très bon scipy qui apporte à Python tout un ensemble de fonctions codés en Fortran pour du calcul matriciel. Pour ceux qui auraient un doute, je conseille la lecture de cet article ( http://www.python.org/doc/essays/list2str.html(...) ), écrit par le créateur de Python, sur l'optimisation (la conclusion est très instructive ... ).

    Enfin, sur C++ (parce que je trouve qu'il n'y a pas grand chose de dites dans le message d'origine :P) :

    - Il y a indéniablement du "vrai objet" : héritage multiple (mais avec beaucoup de subtilités), méthodes virtuelles, méthodes/classes abstraites, ...
    - Sur le framework, bah de base on peut pas dire qu'il y en ait un ... par contre il en existe beaucoup, des très bon comme des très mauvais. Par exemple Qt est un très bon framework orienté GUI (mais pas seulement). On a aussi Boost ( http://www.boost.org(...) ) qui propose un ensemble de bibliothèques le plus souvent très bien faites, même si un peu difficile à maitriser.

    - Pour les perf, ça peut être très rapide, mais c'est tout de même plus lent que du C pur. Par contre, la vitesse de dev est quand même bien plus rapide que sur le C.

    - On notera aussi la possibilité de faire de la programmation générique (avec les template). Notamment, Boost utilise beaucoup cette fonctionnalité du langage. Parmis les intérêts de l'approche: la généricité est résolue à la compilation ce qui permet de ne pas perdre de temps à l'exécution. Inconvénient: ça peut être très complexe (cf. Boost) et le débuggage des templates devient vite subtile

    - Par contre, je suis pas d'accord sur la syntaxe imbittable ... ou alors c'est pareil pour C, Java, C#, ...

    - Pour la portabilité, le problème vient de ce qu'aucun compilo ne supporte totalement la norme ! (Et VC6 est l'un des pires pour ça ...). A leur décharge, la norme est mal foutue et surtout, elle impose des éléments quasi-infaisable ... (dsl, trouve plus la ref ...)

    - Et quand même: ça doit être un des langage pour lequel il existe actuellement un maximum de développeur !