2008年02月04日 21:30 [Edit]
初心者向け言語もいろいろ
Matzにっき(2008-02-04) - 初心者向けの言語がいつの魔に初心者向けの言語祭りにハッテンしているのでこっちも勝手に神輿を担いでみる事に。祭りの様子は以下で確認することができる。
- Brainf.ck - 初心者が最も実装しやすい言語
- なにしろ「Brainf.ckで書く」よりも「Brainf.ckを書く」方がよっぽど楽だもんね。
- C - 最も言語実装初心者向け
- なんてったって、言語の母としては実例が一番が多いし
- JavaScript - 最も初心者に身近
- ブラウザーに搭載されているというのはデカい。
- Perl - 最も初心者に(も)優しいコミュニティ
- *.pmの懐の深さは、他はまだ追いついていないと思う
- Python - 最も自言語初心者に優しいユーザーたち?
- 他方他言語ユーザーには厳しいかも
- Ruby - 最も初心者に優しい言語の父
- Matzをdisる連中は、「やさしい」がわかってない。PHPは「易しい」かも知れんがちっとも「優しく」ない。
で、メタから下りて少しマジレスすると、Computer Scienceをきちんと教えている学校の多くは、最初の一年の前半に scheme を教えて、後半に C と assembly language を教えている。私が教わったのは1980年代の終わりだけど、21世紀の今になってもこれは変わっていない。このことはもう少し注目されてもよいのではないか。
たしかにこの組み合わせは、コンピューターに囲まれた現代生活からはかなり「禁欲的」ではある。「その場で使えるプログラム」を書くにはかなり辛いのだから。しかしこの二つをしっかりやっておけば、他の言語の習得はずっと簡単だ。特定の場面で「初心者に易しい」言語はたくさんある。しかし上のカリキュラムほど「初心者の将来に優しい」組み合わせは未だに思いつかない。もっともCはC++かDと置き換えてもいいかも知れない。ポインターのないJavaは不適。
ちょっと見てみたい社会実験は、この組み合わせに代えてHaskellを使うというもの。Haskellは遅延評価、参照透過というschemeの理想(の一つ)と、強力な型、型推論というCの理想の双方を具現化している。だけどmonadが難しかったり、Y Combinatorが書けなかったり(!)という問題もある。あと、assembler 相当のことが学びづらい。
結局のところ、電脳言語というのは church と turing の間のどこかにある。きちんと学ぶのであれば、最初に両極端に触れておくのがその後の人生において一番優しいのではないだろうか。
Dan the Polyglot
See Also:
この記事へのトラックバックURL
再入門者向けのComputer Scienceおすすめ本教えてくださいまし。
仕事でうんぬんというよりは単純に興味があるのです。
「最初の一年の前半に scheme を教え」る時に
使われる定番教科書はSICPです。これを読むと
コンピュータに何ができるかについて視野が劇的に広がります。
(いい本)
http://blog.livedoor.jp/dankogai/archives/50489679.html
【SICP】計算機プログラムの構造と解釈【Scheme】
http://pc11.2ch.net/test/read.cgi/tech/1107345738/
日本語
これを忘れているよ。
http://www.haskell.org/haskellwiki/Haskell_in_education
#ちなみにUNSW

