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

この記事へのトラックバック
最近、いろいろな方から、「どうしてschemeを始めたの?」という意見を頂く機会が多いので、今回、考えをまとめてみました。
[scheme]schemeを始めた理由【Bugle Diary】at 2008年12月17日 23:14
さすがにJavaやPHPはなかったけど、高級言語を先に学ぶというのは今にはじまったことじゃない。 304 Not Modified: プログラミング初心者はギークから学べるのかそんな私が学んできてずっと思っていたことは、私はC言語から学び、Java、PHPと進んできたが、今の人はいきな....
いきなりCの方がよっぽど難しい【404 Blog Not Found】at 2008年12月17日 12:34
前からぽつぽつと気になってたネタ。 前置き 先に書いておくけど、リンク先の意見は、完全に正しいんだ。そして、ヲレはリンク先の方々なら、「こいつはダメだ」と即答される程度のプログラミングスキルしか持ってない。けど、その通りにした時に、タコ壷にこもることになっ
[memo][comp][bioinformatics][badknowhow][comment]じゃぁさ、融合領域をどうするの?【bak_a_monoの日記】at 2008年09月01日 00:56
毎日コミュニケーションズ編集3部書籍1課吉田様経由で著者本人より献本御礼。 Jythonプログラミング 西尾泰和 著者と同日着である。 宅急便きた - 西尾泰和のはてなダイアリー意外と厚みもある! Jythonプログラミング なんとミスリーディングなタイトル!....
初心者本3.0? - 書評 - Jythonプログラミング【404 Blog Not Found】at 2008年04月26日 15:04
アマグラマーのすすめが止まっていて一部の読者を絶望させて申し訳ありません。他の本を先に出さないといけないというのがその理由なのだけど、いい機会なので、 2008-02-20 - きしだのはてな デブサミでid:amachangが、初心者がプログラムを勉強するための言語としてJav...
私がJavaScriptを初心者用の言語として選んだわけ【404 Blog Not Found】at 2008年02月20日 16:06
ここ数日、はてなブックマークのあるエントリーがきっかけとなって、「初心者向けの言語」についての記事が多く見られます。そして、それに??..
各大学のCS学科で学ぶプログラミング言語【情報科学を学ぶ大学生のブログ】at 2008年02月06日 01:31
「初心者」って言葉を使ったとたんに話が分散するから使わない方が良いと思うけど。 Brainf.ck - 初心者が最も実装しやすい言語 なにしろ「Brainf.ckで書く」よりも「Brainf.ckを書く」方がよっぽど楽だもんね。 C - 最も言語実装初心者向け なんてったって、言語の母として
[Tech]「初心者」をセグメンテーションせよ【二十代は模索のときブログ】at 2008年02月05日 07:28
この記事へのコメント
Scheme=>C/AssemblerのSchemeの部分は関数型言語であればなんでも代わりになりますか?
Posted by Daisuke Mori at 2009年10月14日 09:41
1996年あたりから、1年の前半コースでHaskellを教える学校があったりしました。自分の場合は前半Haskellで、後半はJavaでした。Assembler・Cを触れたのが2年でした。

http://www.haskell.org/haskellwiki/Haskell_in_education

#ちなみにUNSW
Posted by レオ at 2008年02月06日 00:45
最も初心者向けの言語

日本語

これを忘れているよ。
Posted by a_four at 2008年02月05日 12:48
>再入門者向けのComputer Scienceおすすめ本
「最初の一年の前半に scheme を教え」る時に
使われる定番教科書はSICPです。これを読むと
コンピュータに何ができるかについて視野が劇的に広がります。

(いい本)
http://blog.livedoor.jp/dankogai/archives/50489679.html
【SICP】計算機プログラムの構造と解釈【Scheme】
http://pc11.2ch.net/test/read.cgi/tech/1107345738/
Posted by ム板住人 at 2008年02月05日 00:48
オンザジョブで何とか身につけた力で、細々と喰っています。
再入門者向けのComputer Scienceおすすめ本教えてくださいまし。

仕事でうんぬんというよりは単純に興味があるのです。
Posted by o_6. at 2008年02月04日 23:58