Tuesday 20 February 2007

初心者向けプログラミング言語



日記を飛ばさないためには予約しておけばいいのだが... カレー食いながら書いても良かったが。

やっぱり最初から実用的な言語に触って欲しいと思います。マイナーな言語から教えるのは、ちょっとなぁ。初心者ということだと、

 インタプリタとデバッガは譲れない

と思う。ってことは、eval loop を書ける言語ってことですね。C でも書けるって? ふーん。

なので、実は、Perl からが良いんじゃないかと思ってます。自分で授業を持っていたときは、Perl からでした。

 perl -de 0

として、debugger を立ち上げさせて、そこから色々やってもらう。
 $a=1+2
 p $a
とか。

メジャーだけど、嫌なのはVBか。OS X でも動くはずだが。

scheme ってのも良いんだけど、マイナーなのがちょっとなぁ。どれくらい使ってもらえるんだろうか? Perl は一生の財産になる(借金か?)になるだろうし。Emacs lisp の方がまし?

そういえば和田先生がPostScript とか言ってたな。和田先生もInterpreter が好きらしい。 http://tinyurl.com/2xkb8v


Java はコンパイラだし、教えるものが、ちょっと多い。Iterator とか Comparator とか入っちゃたからなぁ。Eclipse みたいなIDEを使うと、ちょっと良いが... オブジェクト指向プログラミングを教えるためには、プログラムの経験が必要だっていう矛盾があるからなぁ。Java で入門すると、どうしても非オブジェクト的なプログラムから入ることになるし。

オブジェクト指向だったら、Squeak から教えるという技はあると思うんだけどね。最初の環境がはではですぎる。もっともminimum なのないの?

C でも、glib 使えば良いってな話を読んだけど、基本的なデータ構造を言語の外に出してしまうのは、構文的に勿体無いね。もっとも、malloc() を使いこなせない学生を見ていると、「mallocを知らなくてもプログラムできる方がいいのか」と思わなくもないです。C とアセンブラを教えないっていう選択肢は情報工学科ではないと思うんだけど、どうなんでしょうね? と言いながら、うちではアセンブラの正規の科目がないんだよな。

JavaScript という選択もありなんだけど、JavaScript のPureなengineって、あまり意味がないしな。かと言ってBrowserをいちいちあげてってのも、デバッグが辛いし。JavaScript Interpreter 付きのBrowser とかを作ればいいのか?

ML 系はeval loop がある(top levelがある)言語なので、初心者向きだと言えなくもないです。型が表示されるので、型の理解の手助けにもなるね。ただ、リストの表現が独特なのはなんで? 馴れだとは思うが。それに、やっぱりマイナーだと思う。

この前、AppleScript を学生に見せたら、はまっていましたが、あの地獄の遅さと、わけわからない構文がネックだな。properity とか properties とか英語嫌いな人にはつらいだろうし。デバッガもないしね。大きなものを書く気にならない言語の一つ。

Flex とかはどうなんだろう? Flash は、学生には受けるかもね。

No comments: