y'a tout un thread sur le sempiternel "débat" typage dynamique vs. statique dans fr.comp.lang.general . Ça ressort tous les quelques mois, la dernière fois c'était cross-posté sur comp.lang.functional, comp.lang.lisp et comp.object (il était terrible celui là !).
C'est sympa pour récolter des citations marrantes :
« Dire qu'un langage est typé parce qu'il est typé dynamiquement, c'est un peu comme dire qu'une voiture offre une assistance au freinage parce qu'elle a une pédale de frein. »
Excellent !
# Cool ca
Posté par Jerome Herman . Évalué à 3.
Ca veut dire qu'on ne peut pas considerer Caml comme typé ?
Ehhh ben...
Le premier qui trouve une analogie du même type pour démontrer que Small Talk n'est pas objet gagne toute mon estime. Allez-y
Kha
[^] # Re: Cool ca
Posté par Vivi (site web personnel) . Évalué à 3.
démontrer que Small Talk n'est pas objet
bah, c'est sûrement possible vu le nombre de définitions possible de l'objet :)
[^] # Re: Cool ca
Posté par Jerome Herman . Évalué à 2.
Euh... CAML est très fortement typé, mais cela ne l'empèche absolument pas de determiner le type a l'execution. Soit ma définition de typage dynamique est mauvaise, soit il suffit de faire mumuse 10 secondes avec les outils de patterns matching de Caml (notament les listes et les exceptions) que l'on peut parfaitement creer des fonctions qui accepte x valeurs de n'importe quel type a condition que les x valeurs soient du même type.
Si j'ai faux quelque part dites le moi, je bosse très rarement avec des langages fortements typés, mais la terminologie et les définitions m'interressent au plus haut point.
Kha
[^] # Re: Cool ca
Posté par Vivi (site web personnel) . Évalué à 4.
Quant tu dis 'faire mumuse 10 secondes' j'ai l'impression que tu parles du toplevel (aka interpréteur, aka REPL). Le toplevel fonctionne en fait comme un compilateur incrémentiel : quand tu tapes un truc dedans, c'est parsé, typé puis évalué. Le toplevel garde les informations de types pour les entrées suivantes mais lors de la phase d'évaluation tout se passe comme pour les programmes compilés, il n'y a pas d'information de type utilisée à l'exécution.
Sinon tu parles peut-être du polymorphisme paramétrique. Typage statique n'est pas du tout incompatible avec polymorphisme paramétrique (ie les valeurs du genre 'une liste de n'importe quoi'). On peut travailler aved une telle liste (compter ses éléments, extraire des éléments, etc.) mais on ne peut rien faire avec les éléments eux-mêmes car on ne possède aucune information à leur sujet.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.