• [^] # Re: souhait pour un futur article sur java

    Posté par . En réponse à la dépêche Hors Série Java, seconde édition. Évalué à 2.

    Cool, c'est une des premières fois que je lis une critique correcte du "virtuel" en Java. Nous sommes bien d'accord que la sémantique de Java facilite la programmation objet et c'est d'ailleurs pour ça que la plupart des langages objets (Eiffel, Sather, etc.) ont adopté cette technique (bien avant Java). On peut d'ailleurs dire que C++ est un cas particulier qui rend la programmation objet plus délicate.

    Tu as raison aussi de dire que c'est un problème de compilation. En effet, il est parfaitement possible d'écrire un compilateur optimisant qui utilise virtual quand il en a vraiment besoin et pas quand il peut s'en passer. C'est déjà fait pour Sather (http://www.gnu.org/software/sather/(...) ) ainsi qu'en Eiffel (http://www.loria.fr/projets/SmallEiffel/(...) ). Le résultat est en général assez puissant car on peut alors obtenir de l'inlining de méthodes "virtuelles", ce qu'aucun compilateur C++ ne sait faire à ma connaissance. Bien entendu, ce système repose sur une analyse globale du code et coûte donc très cher à la compilation.