2012.04.01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

MHI 5.0

この「にっき」には暴力シーンやグロテスクな表現が含まれています。

(2012.04.01)

$ [ノイズ] 明日の言語に対する戯事

xtal が2年ほど停滞を続けてる一方、Tora という新しい言語が登場するのを目のあたりにして、 言語がメジャーになるのは、いろいろハードルがあるよねーとか思ったり。

  • 言語の基本構造が完成する
  • ライブラリが充実する
  • フレームワークが充実する

- 言語の基本構造

たいていの言語処理系開発者は、 従来の言語の基本構造に不満を持って、 新言語の開発に着手するんだよね。 その不満に同調してくれる人がどれだけいるかというところに、 言語の成否がかかっており、そういう意味で Perl は多くの言語の母になったのではなかろうか *1

インタプリタ系の場合は、既に競争過多にあって、今更、新しい言語が出ても埋もれがちなんだけど、 実行ファイル出力型のコンパイラ言語については作るのが難しいこともあって、そうでもない。

D言語は一時期熱をあげてたんだけど、仕様がコロコロ変わって、 ついていけねーと思って、投げだしてしまった。 オープンソースではなかったようにも思うけど、今はどうなんだろう。

go言語は、かの google がリリースした新言語で、当初、Windows は対象外だったけど、 今はもうサポートしているそうだ。バージョン1.0 をリリースするにあたっては、

People who write Go 1 programs can be confident that those programs will continue to compile and run without change, in many environments, on a time scale of years

Go で1プログラムを書く人は、そのプログラムが年単位のスケールで多くの環境で変更なしにコンパイル・実行し続けられると確信できる

とか書いてあって、どう見ても、D言語に対する嫌味です。ありがとうございました。

あと、アプリケーション組み込み系も Ruby とか Python とか Lispが参入はしているけれども、 言語規模がでかいせいがあるのか、あんまり善戦してそうに見えない *2

そこんとこ「Lua かわいいよ Lua」は、数百キロバイト程度で ANSI-C準拠であれば、 ほとんどの環境でビルド可能という強みをいかして、ぶいぶい言わせてますね。 Apache とか BSD とか採用もありましたし、 もう時代は下手にオレオレ言語をアプリケーションに組み込むなら Lua だろ常識的に考えて。 後続の軽量型言語も幾つかあるけど、Lua ほどは聞かないね。

ただ、その Lua。バージョン 5.2 になってから、 LuaBinariesのコンパイラが Visual C++ から MinGW になりました。 LuaForge が崩壊してそうに見えますが、大丈夫でしょうか。 まぁ、Windows限定の話なんですが、念の為。

- ライブラリ

それなりのツールを作ろうとするなら、 DB系のものは必須だよね。ウェブ系なら MySQL で、 ビジネス系なら Oracle が欲しいところ。 あとは通信系ライブラリかなぁ。 このへんが充実しないと「その言語」は実用にならず、 お遊び言語で終わってしまう。

その点、JavaVM 系の言語は少なくともライブラリはJavaのものが使用できるし、 下手するとフレームワークも利用できたりするんじゃね? その辺が強いよねー。 Jython とか JRuby とかは、それぞれの母言語を Java 環境で動かしたいという一定のニーズがある以上、 それなりにこの先生き残るとは思うけど、 groovy って、どんな感じなんだろ。よい言語だとは思いますよ。

- フレームワーク

よく分からんけど、メジャーな言語系だと、ウェブフレームワークが幾つもあるから、 これらがあって、始めて一人前とかになるのかなー。 Ruby も Rails があって、初めて爆発したって感じですしねー。

まぁ、もちろん、それ以前から tDiary とかもあったし、 「Ruby を256倍使うための本」とかも出てたり、 かなり活発ちゃー活発な動きがあるこたぁありましたが。

- まとめ

言語が成功するには、うまいこと既存処理系に対する不満やニーズ、穴場を拾い上げて、 ライブラリやフレームワークの実装者達を取り込んでいかないといけませんねーという、 まぁ、特に目新しくもない話でした。

*1なお、僕は Perl 大好きですよ。この「にっき」もPerlの自家製Wikiで書いてるくらいだし

*2Guile は結構あるっぽいし、 Ruby も「RPGツクール」とかに組み込まれている実績もある

hoso 些末な話ですが、Go version 1.0 のことを「Go 1」と呼んでいるようなので、「Go 1 でプログラムを書く人は」となるようです。 (2012/04/06 11:21:13)

はやま あ、なるほど。「Go で1プログラムを書く人」ではなくて「Go 1 でプログラムを書く人」ですか。ありがとうございます。 (2012/04/07 03:49:20)

(2012.03.31) | (2012.04.05)

.net(3) C++(3) Cygwin(12) GAME(3) Groovy(1) Linux(2) Lua(39) Mercurial(13) NYAOS(92) OS/2(7) Oracle(3) Perl(4) Python(22) SKK(4) Windows8(1) album(68) ckw(10) coLinux(1) vim(6) wifky(27) 書評(21) (9)

zetamattaのたいじゅー