オブジェクト指向にもとづく Smalltalk では、すべての処理対象は何らかのクラスに属すため、型という概念そのものは存在する。しかし Smalltalk では、
などの特徴を持ち、型よりもむしろ「特定の名称のメソッドを受け付けるべき」「メソッドはその名前に見合った動作を行うべき」というプロトコル的な立場による疎結合の信頼性を重視している。このプロトコル的な信頼性こそが動的型付けの要である。これを積極的に行うのがダック・タイピングである。
両者の違いは、静的は予防的な立場であり、動的は自浄的な立場といえるだろう。
通常、静的型付けはオペレーティングシステムやシステムプログラムのような大規模で厳密性が要求される領域に適合するといわれている。その反面、最初の型定義を誤ると一部分の影響が全体に波及すること、また柔軟性に乏しくわずかな変換に手間のかかる経路を用意したり同じような機能を型別に実装しなければならないことなど、いわばお役所仕事的な煩雑さを伴うという弱点を持つ。この煩雑さは IDE によるリファクタリングの支援によって軽減され得る。なお近年の研究により、静的型付き言語も文脈から型を推論する型推論能力を持つなど、簡略化の方向へ向かってはいる。
一方、動的型付き言語ではそもそも対象に特定の構造を期待しないため、変更への対応は柔軟である。特に配列、辞書、集合といったコレクションの利便性が顕著で、そのため近年いわゆるスクリプト言語や動的プログラミング言語は多くが動的型付けを採用している。動的型付けの難点である最適化の弱さは、コンピューターの能力が増すことで相対的に小さな問題になっており、スクリプト言語を中心に今後も動的型付けは発展するものと思われる。
静的型付けとの比較.
静的型付けは、
プログラムの最適化手法のうち、静的型付けでは容易だが動的型付けでは難しいものがあり、動的型付けが不利とされる理由のひとつになっている。
高橋ナオヒト
来歴・人物.