methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

Web系で動的型付け言語が人気なワケ

ここ数日、未経験だったWeb系がどんなもんか触れてみている。
Webプログラミングでは、DBやViewとのやりとりが大きな部分を占める。そして、DBに静的型付け言語でアクセスすると、Object形から適切な型への変換が必要になってしまう。*1
また、Viewとのやりとりも、辞書*2が多いので、静的型付けの恩恵を受けにくい。

C++の、コンパイルが通ればしょうもないバグのほとんどが消えている感覚になれきっているから、大きなプログラムを動的型付け言語で書く気はしなかった。でも、Web系では動的型付けで大きなサイトがポンポンできている理由が判った気がした。
手間*3をかけて宣言を書いても、その恩恵があんまり受けられないなら、動的型付けの方がいいよな。


静的型付け言語に、動的型付け言語の良さを取り込めないだろうか?
動的に型が解決される変数を宣言する構文を作ったとして…あぁ、overrideでコケるか。いや、overrideされた関数の引数に動的型が渡されたときは、overrideも動的に解決すればいい。あとはどんな問題が考えられるだろう?インタプリタ型言語じゃないと動的型付けするのが面倒とか?

あと、IronPythonJRubyみたいなのを使う方法は…結局IroyPythonからC#へ変換する部分で同じ問題になるだけか。

*1:定義ファイルからSQLクエリとマップする型のコードを生成するタイプのO/Rマッパを使えば型変換が要らないが、一手間増えることに変わりはない

*2:aka.連想配列

*3:C++の場合はこの手間がすっごく大きい