• [^] # Re: C Uber Alles

    Posté par (site web personnel) . En réponse au journal Il faut sauver le soldat %. Évalué à 3.

    En fortran 90, on peut aussi avoir autant d'operateur que l'on veut avec la syntaxe

    .operateur.

    C'est très pratique. J'ai deux vecteurs, je veux le produit scalaire

    v1 .scalar. v2

    J'ai deux tenseurs, je veux aussi le produit scalaire

    t1 .scalar. t2

    Je me suis battu avec des thésards pour avoir cet opérateur .scalar. et non pas * comme beaucoup pense. *, c'est l'opérateur produit, mais produit de quoi : scalaire, vectoriel... Avec l'opérateur *, on ne sais jamais le type du résultat de l'opération et les formlules mathématiques deviennent imbittables.

    En C ou en C++, on ne peut pas faire cela et c'est bien dommage, les formules de math sotn bien moins claires et du coup le risque d'erreur est plus important.

    Si on souhaite un langage qui puisse faire "des math", il est important de laisser libre champs aux opérateurs et ne pas se cantonner aux seules méthodes. Les méthodes cassent la symétrie et ne reflète pas la formule

    v1.scalar(v2)

    est très différent de

    v1 .scalar. v2

    Dans le second cas, on a bien un produit scalaire entre deux vecteurs, ces deux vecteurs étant au même niveau.

    Je crois que c'est une des raisons pour lesquelles perl6 ne sera pas pure objet et que les concepteurs veulent garder l'aspect multi-fonctions.

    En dehors des math, je n'ai pas d'opinion et je ne sais pas si cela est aussi important.