Duck Typingについて
参考の記事を見て、おっPrototypeパターン*1かってことで興味を引いた。
というのも個人的にすごくタイムリーな内容で、ちょうどまつもとさん*2の「コードの世界」を拝読してたところでおんなじ様にDuck Typingだよねっていう記事があった。
そして、この機会にDuck Typingについて考察してみようと考えた。
Duck Typing
“If it walks like a duck and quacks like a duck, it must be a duck”
(もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである)
静的型言語と動的型言語
データ型*3で定義された変数のみの範囲で処理をする言語が静的型言語で、変数にデータが割り当てられた時点で初めて型が決まる言語が動的言語という簡単な解釈。
Duck Typingはこのデータ型ではなく、振る舞い*4でそのインスタンスは何者かを判断する。
コンピュータに優しい人間
あくまでも型の宣言というのは、コンピュータにとって都合の良いものであるため出来るだけ現実世界や人間に都合の良いように設計されている言語のほうが本来イイはず。
でも、みんながみんなコンピュータに優しいプログラミングに慣れてしまっているので気付かないし、概念も少し難しいかもしれないから違和感はあんまりない。というか、言語なんてあくまでツールなんだからそんなことはどうでもよくて実装がいかにスムーズに出来るかということのほうが重要かもしれない。とは言っても言語設計とかに興味を持ち出したりするとこちらもほっとけなくなってくる。
つまり
Rubyがいいよってこと。
参考
- newを封印して、JavaScriptでオブジェクト指向する(1) - 泥のように
- newを封印して、JavaScriptでオブジェクト指向する(2) - 泥のように
まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法
- 作者: まつもとゆきひろ,日経Linux
- 出版社/メーカー: 日経BP出版センター
- 発売日: 2009/05/21
- メディア: 単行本(ソフトカバー)
- 購入: 50人 クリック: 1,708回
- この商品を含むブログ (112件) を見る