mardi 18 décembre 2007

De l'absurdité des langages faiblement typés...

Voici un lien vers une page qui détaille, avec une bonne suite dans les idées, quelques bizarreries de PHP :
http://www.retosphere.de/prjphp/prjphp.php

Citons le plus marquant pour moi : la nécessité de l'opérateur === (et oui, trois =, ce n'est pas de la blague) qui existe également dans d'autres langages faiblement typés comme le Javascript et l'Actionscript et qui est d'ailleurs prévu dans la spécification "ECMA-script". Bizarrement, c'est la première fois que je tombe sur cet opérateur farfelu (mais parfois utile) malgré une utilisation assez fréquente du Javascript. A croire qu'il y a une grand conspiration contre lui... !

Bref, pour en revenir à nos moutons, c'est ce qu'ils appellent l'"égalité stricte" (par opposition à l'égalité ... loose ?!).

Nos profs de primaire détesteraient les langages faiblement typés puisqu'ils comparent les pommes et les poires (ex : un booléen et une chaîne de caractères) ce qui amène à des aberrations mathématiques assez flagrantes comme le montre l'article ci-dessus.

D'où la nécessité de l'égalité stricte avec laquelle on compare à la fois la "valeur" (ex : 0, hello, true, ...) et le type (pomme ou poire ?).

Bien entendu, dans un langage fortement typé on pourra certainement montrer que l'égalité équivaut à l'égalité stricte même si l'on voit parfois quelques exceptions à la règle notamment la nécessité d'utiliser compareTo en Java par exemple. Bon, je suis sûrement débile mais je trouve ce genre de chose assez amusante...

Sur ce, je vous laisse à vos méditations, bonne lecture, à bientôt,

jaz-t