• [^] # Re: Temps d'exécution sans optimisation ?

    Posté par . En réponse au journal Pythran chatouille Cython. Évalué à 3.

    Tu pars du principe que le programmeur est meilleur que la machine pour optimiser et donc qu'il est plus efficace de partir d'un langage bas niveau qui donne toute la latitude pour piloter le calcul.

    Mais c'est généralement faux. Il est souvent préférable d'avoir un langage haut niveau plus expressif, qui exprime l'intention algorithmique et de laisser un compilateur faire des optimisations difficilement appréhendable par un programmeur.

    C'est ce que tente de faire pythran, cython ou pypy avec Python : permettre, par des annotations, de décrire l'intention algorithmique (et aussi d'ajouter du typage, moyen le plus efficace de permettre des optimisations et qui manque cruellement à python, ne nous leurrons pas).

    Les langages fonctionnelles sont très efficaces pour cela. Les notions de fonctions pures, de typage fort (avec ou sans inférence), d'évaluation paresseuse, les map (qui sont une forme de SIMD), donnent beaucoup d'information à un compilateur pour faire des optimisations très efficaces.