« January 2012 | Main | April 2012 »

2012.03.28

Lispから得られる悟りについて

元ネタは、lispとその他関数型言語について
http://okwave.jp/qa/q7384756.html

Lispから得られる悟りについて、最近なんとなく分かってきた気がするので書いてみます。僕の思う「悟り」ってのは仏教的な定義とは違って、新しい概念が身につくくらいの意味です。おそらくEricが言っている enlightenment experience には近いんじゃないかな。

Lispを学んで得られる悟りってのは、言語処理系を作る側に回ると言うこと。SICPの4章はもろにそうだし、文法を拡張できるLispってのは、作る側に回るのにちょうど良いと思うんだ。そう考えると、俺Lispってのはよく見るけど、俺C++とか俺Javaとかはあんまり見ないよね。せいぜい俺Cくらい。Pythonには、IronPythonや、pypyやら別の実装があるけど、基本はべた移植で俺Pythonってイメージとは違う。文法が単純で、拡張が容易なLispだから俺Lispって発想が出てくるんだと思う。実際、プログラミング言語を実装している人でLispの影響を受けている人って多い。有名な人ばっかりだから、名前はあげないけど。

もしかしたら今後は、((Pythonで) 書く (Lisp) インタプリタ) のように俺Lispを実装する言語は変わってくるかもしれない。
http://www.aoky.net/articles/peter_norvig/lispy.htm
http://www.aoky.net/articles/peter_norvig/lispy2.htm
でも、これだとPythonとLispの2つが分からないと作れない。だったら最初からSICPで良いと思う。

CPUでもコンパイラでも何でも良いんだけど、使う側から作る側に立場が変わるってのは一種の「悟り」だと思う。それが一番体験しやすいのが、今のところLispなんだろうね。

でまとめるつもりだったけど、MITのPython版SICPを見てみたら面白そうだったので紹介しておく。
http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html

| | Comments (0) | TrackBack (0)

2012.03.27

Rubyの話

Rubyに感銘を受けたという話について。
http://d.hatena.ne.jp/next49/20120324/p1

話自体はすごくいい話で、一人でも多くの人がプログラミングを楽しいと思ってくれれば、それはとても素敵なことです。

この話を読んでいて思ったのが、学生にプログラミングを教える話と、スタートアップが使うプログラミング言語みたいな話と同じような所があるなと。

スタートアップの少人数で開発を行う場合、世間の評判よりも開発者自身がその言語を使いこなしていて、かつ愛が無いと駄目だと思う。この言語の苦手な面が顔を出してきても、自分達で選んだ言語だからしょうがねーなみたい割り切りってのが開発の力になる。それが、HaskellだろうがCommon LispだろうがPerlだろうが、よそから何と言われようとも自分達の好きな言語を使えばいいし、でかい声で「○○サイコー」って叫べばよい。

それが会社が軌道に乗りそうになって、人を増やしたり、プロダクトを拡張したりしていくと、どっかで最初の情熱だけじゃきついところ出てくるよね。

学生にプログラミングを教える話も同じで、先生が面倒みれる範囲で、先生が一番好きで良いところも悪いところもひっくるめて愛してやまない言語を使うべきだと思う。そんな先生に教わった生徒は幸せだ。これが話が広がってくるとなんかきつくなってくる。「今までの先生がRubyだったから、私もRubyで教えます」とか、「いろんな言語教えるの大変だから、この学科の授業は全部Rubyにします」とか。

全然落ちはなんだけど、そんなことを考えていたら春到来です。僕も頑張ろう。

| | Comments (0) | TrackBack (0)

« January 2012 | Main | April 2012 »