Un langage faiblement ou pas typé permet une forme de polymorphisme n'existant pas en tant que telle dans les autres langages: une fonction peut adapter son comportement à la structure de son argument.
Des exemples typiques de langages faiblement typés permettant ce type de polymorphism sont Scheme (ou Lisp) et Perl, qui définissent des types simples (nombres, chaînes de caractères) et de types complexes (listes, dictionnaires) permettant de représenter des structures de données complexes: mais à la différence d'un langage fortement typé comme Caml, le langage range dans un même panier les listes de nombres, de caractères, les listes mixtes, etc.
En pratique cela permet:
La création de procédures de sérialisation et déserialisation particulièrement simples, ce point est modérément intéressant parceque de nombreux langages offrent des outils adaptés réalisant ces opérations.
Coder une information de plusieurs façons différentes.
Par exemple, imaginons un mail user agent codé en Scheme dont la procédure de tri des messages admet un paramètre qui peut être:
une liste de paires mot-clef, dossier et le sujet de chaque message est comparé successivement aux mot-clef et en cas de succès, le message est déplacé dans le dossier correspondant.
une structure plus complexe permettant de filtrer selon plusieurs en-têtes;
une fonction quelconque prenant un message et renvoyant le dossier où il doit être placé.
Dans un point de vue d'un langage objet objet, on a ici une classe trieur de message et trois constructeurs: la différence avec ce point de vue est qu'ici la bureaucratie est laissée au programmeur et l'utilisateur qui configure le tri de ses mails est confronté à une solution qui s'adapte à son niveau en programmation.
Le non typage permet aussi d'écrire des procédures à nombre d'arguments variables ou avec des arguments optionnels, ce qui nécessite souvent dans les langages typés des mécanismes particuliers (on a souvent une syntaxe spéciale pour les arguments optionnels, par exemple).
Mon goût personnel pour programmer va cependant aux langages fortement typés, mais pour un langage de configuration ou d'extension, un langage pas très typé (comme Scheme) me paraît un choix intéressant.
[^] # Re: déçu aussi, mais confiant
Posté par Michaël (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 3.
Un langage faiblement ou pas typé permet une forme de polymorphisme n'existant pas en tant que telle dans les autres langages: une fonction peut adapter son comportement à la structure de son argument.
Des exemples typiques de langages faiblement typés permettant ce type de polymorphism sont Scheme (ou Lisp) et Perl, qui définissent des types simples (nombres, chaînes de caractères) et de types complexes (listes, dictionnaires) permettant de représenter des structures de données complexes: mais à la différence d'un langage fortement typé comme Caml, le langage range dans un même panier les listes de nombres, de caractères, les listes mixtes, etc.
En pratique cela permet:
La création de procédures de sérialisation et déserialisation particulièrement simples, ce point est modérément intéressant parceque de nombreux langages offrent des outils adaptés réalisant ces opérations.
Coder une information de plusieurs façons différentes.
Par exemple, imaginons un mail user agent codé en Scheme dont la procédure de tri des messages admet un paramètre qui peut être:
Le non typage permet aussi d'écrire des procédures à nombre d'arguments variables ou avec des arguments optionnels, ce qui nécessite souvent dans les langages typés des mécanismes particuliers (on a souvent une syntaxe spéciale pour les arguments optionnels, par exemple).
Mon goût personnel pour programmer va cependant aux langages fortement typés, mais pour un langage de configuration ou d'extension, un langage pas très typé (comme Scheme) me paraît un choix intéressant.