【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】

このエントリーをはてなブックマークに追加
438378
そろそろ投稿も落ち着いたかな。
実はオチに使おうと思って用意していた言語がある。

R。R言語やGNU Rとも呼ばれる、統計用ベクトル言語。基本的にすべてのデータ
がベクトル。

> request <- c(hoge=1, fuga=2, piyo=3)
> request[c('hoge', 'fuga')]
hoge fuga
   1    2

ご覧の通り、変数の添え字にベクトルを与えられるので、きわめて簡潔、と言
うかそのまんまに書ける。これ以上簡潔というと、話に聞くAPLぐらいしか思い
つかない。まあAPLに連想配列があるか知らんけど。

--
プログラミング言語というものは、使用目的が固定された場合、
ライブラリ → フレームワーク → DSL
という形で進化していくものだと思う。効率ではDSLが最高で、汎用言語は絶対
に追いつけない。例えば、RDBをSQLじゃなくてCで直接操作するのは鬼のように
大変。

しかしDSLは、習得は容易だが自由度が低くて、やろうとしたことができないこ
とも多い。だから一般的に、人気の出たDSLはだんだん汎用言語化していく。
PL/SQLとか。R なんか、行き過ぎるくらい汎用言語化している。

つうことで、言語の進化には、汎用言語<-->専用言語の逆向きの流れが同時に
存在していて、人が言語の良し悪しについて議論する場合、どっちを重視する
かが人によって違うのが、話のかみ合わない一因じゃないかなと思っている。