「変数に型は無い」はメリットか?
http://developers.slashdot.jp/story/13/03/01/0228235/
./ネタが続いて申し訳ないけど、非常に論争になるこの話題が./に載っていた。
自分は、変数に型があるべき派。
確かに、小規模なプログラムならば、変数に型があるのは煩わしいのはわかる。
でも、型をしっかり管理した方がエラーが事前に見つけやすいと自分は思う。
特に、業務案件でこれは大切。
書いているそばから型がおかしいと言われれば、直すわけだし。
一度完成したプログラムを修正したら、芋づる式に、影響範囲が分かって、修正漏れが無い。
いや、逆に、型が無い言語は、ちょっとした修正も、プログラム側が勝手に推論して、
恐らく正しいと思える動きをしてくれるから楽だろうという意見もわからなくはない。
でも、それって、言語の型の推論機能が優秀なだけで
たまたま動いているんだよね?
優秀というか、たまたま、自分が望んだ通りに動いただけだよね?
と思っちゃう。
そういえば、某Webサービスからデータを取り出すときに、
WSDLを喰わせて、それを元に最終的にDBに格納する処理を、C#とPHPで書いたけど、
そのWebサービスのとあるデータが数値型から文字列型に変わったことがあった。
C#は、WSDLを喰わせなおしただけで、
コンパイルエラーが出て、その場所を重点的にチェックすれば良かったけど、
PHPだと、プログラムの仕様書から、影響範囲を調べるだけでも一苦労。
みたいなことも。
なので、自分は断然、型有り派です。
まぁ、プライベートでコード書くときには、
アセンブラレベルで書くことがあったり、
Cのライブラリを作ってC#から使うとかしたりもするので、
データがどうなっているかが分からないと
気持ち悪いという気持ちもあるのかも知れない。