42Fermer44
ZephLe 16/03/2013 à 13:43
./41 : Le problème c'est que l'un des but des langages haut niveau c'est de s'abstraire le plus possible des contraintes de gestion de la mémoire, parce que c'est chiant. Ajouter des primitives qui donnent à nouveau ce contrôle ça devient à briser l'abstraction, et ça ouvre la porte à du code plus complexe avec un risque de bugs plus important.

À mon avis, cette lenteur est le prix à payer quand on utilise un langage plus confortable, et avec les technologies d'aujourd'hui ce prix n'est même plus tellement important. Comme le dit l'auteur de la présentation il restera toujours des optimisations inaccessibles à cause de la conception même du langage, mais il y a aussi un tas d'erreurs simples à éviter pour ne pas empêcher le compilo et/ou la VM de faire leurs boulot le mieux possible, et quand un programme Python / Java / C# ou autre est lent il y a probablement plein de choses à améliorer avant de se plaindre du langage en lui-même.

Par contre je suis tout à fait de l'avis de Kevin concernant la détection des erreurs de compilation qui fonctionne très mal avec l'abstence de typage, alors que le service le plus important que peut rendre un compilateur c'est de valider le code autant que possible. Je ne sais pas trop ce qu'on peut améliorer de ce point de vue, mais c'est clairement une énorme lacune des langages dynamiques à l'heure actuelle.