• [^] # Re: Oui mais...

    Posté par . En réponse à la dépêche Sortie de Rubinius 2.0. Évalué à 2. Dernière modification le 09 octobre 2013 à 19:36.

    Blague à part, autant pour la déclaration de variable, je suis plus ou moins d'accord, mais ça fait un tas de ligne en trop.

    Euh, tu sais on est plus dans les années 80 avec déclaration séparée..

    Il n’y a pas que pour les déclarations séparés. L’inférence de type, les fonctions de haut niveau, les syntaxes avancées, et les puissantes bibliothèques standards font qu’un code Haskell (typage fort) est beaucoup plus concis qu’un code Python. Un exemple bateau, imagine que je veuille définir une fonction qui trie, supprime les doublons et inverse, en Haskell ça s’écrira :

    cuisine = inverse . unique . tri
    

    Difficile de faire plus concis que ça. En Python, dès que tu veux avoir un niveau d’abstraction même basique, tu perds en performance. En Haskell, dès que tu augmentes le niveau d’abstraction, tu gagnes en rapidité d’exécution, en abstraction sur la réflexion, et en concision de code. Enfin, en même temps vu la rapidité du Python, que ça aille lentement ou très lentement, ça ne changera pas grand chose. On peut aussi remarquer que les déclarations de type ne sont pas obligatoires. Si ces trois fonctions étaient dans une classe (au sens Haskell, pas POO), on pourrait appliquer cette fonction à tout un tas de types, y compris ceux déjà définis dans la bibliothèque standard ou d’autres.

    De plus, dès que tu dépasses l’utilisation de Python comme calculatrice, tu as des énormes problèmes en faisant du refactoring. Tout pète, et tu dois relancer continuellement le programme pour t’apercevoir à l’exécution qu’il y a un problème. En Haskell, si ça compile, les chances que ça tourne sont quasi absolues.