「80%の領域をカバーする言語」について思ふこと
あらゆることに使える完璧な言語(the one true language)が存在しないことは明らかである。
たとえば、Rubyがどんなにすばらしい言語でも、Ruby自身はRubyでは記述されていない。 また、OSなどRubyで記述するには向かない分野はいくらでもある。 そもそもRubyが向かないプログラマーもいるようだが、その点には今回は触れない。
しかし、100%を考えるから、完璧な言語は存在しないわけだが、 仮に80:20則にしたがって「80%の領域をカバーする言語」について 考えると、そのような言語はどのような性質を持つのが望ましいだろうか。
「80%の領域をカバーする言語」として一番近いのはやはり現在のところ Java だと思う。
「the 0.8 true languageはなんらかの形で内部DSLを支援するべきだと思う」という Matz さんの定義にはまらないけど、その役目にもってこいの Groovy とはとても親和性が高い。因みに特定目的言語(DSL)の JavaFX とも馴染みやすい。
ところで最後の方で述べられているけど Ruby の並列処理は(いつ?)改善されるのだろうか。ロードマップとか全然見てないけれど。
そう言えば最近こんなの読んだ。
http://dl.getdropbox.com/u/132573/groovy_scala/index.html
Scala と Groovy は比較されることが多いけど、比べてもそんなのあまり意味が無い。両者が向いている領域はそれぞれ異なっている。この話は両者を混在して使うことについても言及している。
と、ネタ切れの苦し紛れの感もやや。。。