すーけらぶる

あるプログラミング言語がスケールするか,と聞かれて,とりあえず3つくらいは評価軸があるよな,と思った.私が名前を知っているプログラミング言語を例に挙げてますが,この評価はタダのイメージですので,他の用途に利用する場合は注意してください.

1.実行環境がスケールするか

大体のプログラミング言語は実行するランタイム環境があるわけですが,それが十分に信用できるかどうかということ.例えば,Cや,FortranとかCobolなんかは十分に信用できるでしょう.Javaや.NETも普通は大丈夫なような気がします.Rubyはずいぶん怪しい気がする.OCamlRubyよりはマシな気がしますが,実際どうなんでしょう.Common Lispはどうでしょうね?商用の処理系ならそこそこ大丈夫だとは思いますが.OCaml以上Java未満という印象.

2.プログラミング言語機能がスケールするか

プログラムが大規模になっていったときに,言語が破綻しないかどうか,ということ.Cや,FortranとかCOBOLはかなり厳しいんじゃないかと思います.JavaC++なんかは,そのあたりよりはずいぶんマシ(C++は今後また大規模な拡張があるようですので,かなり強まってくるでしょうけど).RubyやMLなどの新しい言語は,そのあたりはよく考えられていると思います.Common LispSchemeなどのLispファミリーも,かなり強いということは異論ありません.

3.開発者の人数がスケールするか

まあ,開発者の数が確保できるか,ということですね.これは,今ならJavaなんかが最強でしょう.Common Lispはこの1面に関して言えば,かなり不安だと思う.

まとめ

というか,それぞれの軸の関係について.

1の問題は処理系を作る人ががんばればいいんですが,やっぱり広く使われている(3の意味でスケールする)言語の方が,バグは出やすいでしょう.でもまあこれはどの程度の信頼性が必要かという,問題の問題でもあります.Rubyでも問題にならない分野があれば,COBOLじゃないととてもやってられない分野もあるということ.

2と3は微妙なところで,2のスケーリング具合が大きければ,開発者の人数は少なくても良いはずなので,2の意味で十分スケールする言語なら3の意味で多少スケールしなかったとしても,全体としてはスケールすると言えるんじゃないかな,とか.


Lispがスケーラブルかとか考えたら,とりあえずこのくらい思いついた.