[Languages] Typage fort, faible et dynamique.

sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   -  
sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   -
Voici 2 articles intéressants qui parlent de typage dynamique, et en quoi la souplesse des langages qui supportent le typage dynamique peuvent faciliter la vie du programmeur.
Est-ce l'avenir ?
http://www.tbray.org/ongoing/When/200x/2003/05/08/FutureLanguage
http://mindview.net/WebLog/log-0025

(dont un article de Bruce Eckel, une sommité de la conception objet, et membre du comité Ansi C++).

Background:

Dans un langage fortement typé, le type des variables est déterminé à la compilation (ex: C, C++, C#, Java...)
Exemple: int a=5; string b="toto"; print a+b
déclenchera une erreur à la compilation.

Dans un langage faiblement typé, le type des variables n'est pas fixé (ex: Javascript). Le langage effectue des conversions implicites à l'exécution (horreur !)
Exemple: a=5; b="toto"; print a+b
ne déclenchera pas d'erreur à l'exécution.

Dans un langage à typage dynamique, le type d'une variable à un instant donné est fixe, mais ce type peut varier au cours de la vie du programme (ex: Python).
Exemple: a=5; b="toto"; print a+b
déclenchera une erreur à l'exécution, mais pas à la compilation.
Mais: a=5; b="toto"; a="titi"; print a+b
ne déclenchera pas d'erreur (ni à l'exécution, ni à la compilation).

3 réponses

choubaka Messages postés 5526 Date d'inscription   Statut Modérateur Dernière intervention   2 106
 
Exemple: int a=5; string b="toto"; print a+b
déclenchera une erreur à la compilation.


salut seb, pas tout à fait d'accord avec ton premier point, en java par exemple, c'est tout à fait accepté, en C++ je sais pos, mais bon
Chouba
Dansa la choubada
1
sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 667
 
mmm... mon exemple n'était pas assez particulier.
C'est vrai que le print va implicitement effectuer des conversions en chaîne. :-/
0
choubaka Messages postés 5526 Date d'inscription   Statut Modérateur Dernière intervention   2 106
 
là je suis de tout coeur avec vous les jeunes 8)

Chouba
Dansa la choubada
1
Fu Xuen Messages postés 3651 Statut Contributeur 305
 
Je me permets d'ailleurs d'insister sur la qualité des livres (disponibles en ligne !) publiés par B. Eckel (en tout cas "Thinking in C++" et "Thinking in Java").

-= Fu Xuen =-
0
sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 667
 
Oui ils sont excellents !
Il y a aussi "Thinking in Python", mais ça devrait plutôt s'appeler "Design patterns in Python".
0