RtS:koguro

RtS:koguro

Scheme:RoadToScheme

最初にSchemeを使ったのはいつ頃でしたか、またその処理系は?

最初に使ったのは2001年か2002年頃です。そのときの処理系はSCMでした。Gaucheを知ってからは、Gaucheをメインに使っています。

どうしてSchemeを使ってみようと思ったのでしょう

「プログラミング言語ML」を読んで、関数型言語に興味を持っていろいろ調べている内にSchemeにたどり着き、少ないルールで多くのことが実現できるという点に惹かれました。Schemeは制限が少なくとても自由な言語なので、とても気に入っています。

それまで良く使っていた他の言語は?

よく使っていたのは、C, C++, Java, Ruby, Perlなどです(今でもよく使います)。Emacs lispもちょっと使っていました。

どのくらいSchemeを使い込んでいますか?

基本的に自分で使うためのツールなどはなるべくSchemeで作るようにしています(日常的に使わないと言語を覚えないので)。単純なテキスト処理だとRubyの方が組みやすいのでRubyを使ってしまうこともありますが、アルゴリズムが複雑になったりXMLが絡んでくるような場合だとSchemeの方が扱いやすいです。

Schemeについて感じてることをざっくばらんにどうぞ

Scheme(やLisp)は小規模のプログラムを作るのよりも大規模アプリケーションの作成に使う方が向いているような気がします。この理由には「大規模アプリケーションが作りやすい」というよい理由と「小規模のプログラムが作りにくい」という悪い理由の2つがあります。

よい理由の方はSchemeにはプログラムの部品化のための強力な仕組み(ラムダ式やマクロなど)が用意されているため、Paul Graham言うところのボトムアッププログラミングがしやすいためです(というかマクロはほとんど反則技のように思います)。

悪い理由の方はSchemeのプログラム作成はちょっと敷居が高いため、小さなプログラムが他の言語に比べて書きにくいためです。敷居の高さはEmacsの支援がないととてもプログラムが書けないという点にあります。RubyやPerlなんかだとviやメモ帳でもそこそこ書けますが、Schemeのプログラムをviで作るのはとてもつらいです。小さなプログラムは思い立ってすぐ作りはじめるので、軽いエディタが使える言語の方が楽です。

あと敷居の高さの理由として漠然としたものがもう1つあります。それはSchemeはどんな概念でもS式レベルの使いやすさに落とすことができますが、逆に言うとS式以上の使いやすさにすることはできないというところにあります。ふつうの言語だと文法は自由なので、想定内の機能は簡単に使え、想定していないような機能はとたんに面倒になるという特徴がありますが、SchemeだとすべてS式の難しさに統一されてしまいます。ちょろっとしたプログラムを作るような場合だとあんまり複雑なことはしないので、簡単なことはより簡単に書ける他の言語(RubyやPerlなど)を使う方が楽だと感じるケースも多々あります。


Last modified : 2005/09/08 15:48:51 UTC