動的型付という性質上どうしてもプロダクトの堅牢性が落ちてしまう
「動的型付という性質上どうしてもプロダクトの堅牢性が落ちてしまう」という意見は、動的型付のCommon Lisp界隈ではほとんど耳にしたことがない。 Common Lispには100万行超のプロジェクトもぽつぽつあるが、堅牢性に難があるという話も耳にしない。100万行越えのプロジェクトの例だとAxiomなどがある。Google Flightの中身もビルドに数時間掛るような規模のCommon Lispである。
Common Lispには実行時にしか動作が確定しないような文法も用意されているが、eval
にせよprogv
にせよプログラマは殆ど使わないし、使うとしても意図がはっきりしているので、意図せぬ濫用もあまりない。
マクロはコンパイル時に実行されるeval
ともいえるが、Common Lispの大抵のメタプログラミングはコンパイル時で済んでしまう。
Common Lisp(SBCL)程度のコンパイル(ゆるい静的チェック)ができればRubyでも一般的な業務の範疇の堅牢性位は担保できるのではないだろうか。