2009-03-26 Thu
Why MIT switched from Scheme to Python
MIT の計算機科学の入門コース 6.001 はなぜ SICP + Scheme から Python に移行したかという話。
Costanza 氏が Sussman 氏に MIT がなぜプログラミング入門コース 6.001 で Scheme を使うのをやめたのかを尋ねた。これは宝石だった。 Sussman 氏はこう答えた。その理由は 1980 年代の工学が 90 年代中盤から 2000 までのそれとは異なったからである。 1980 年代においては、よいプログラマは考えることに多くの時間を使い、それから動くであろうと自身が考える簡潔なプログラムを書いた。コードはカナモノに近いところで動き、上から下まですべて理解することができた。 Scheme で書かれていても、だ。抵抗器のように、
帯域カラーコードを読むことができ、定格電力や許容誤差、抵抗値や V=IR など、知るべきことはすべて知ることができた。 6.001 は、自身が完全に理解できる小さなパーツをどのように扱い、それらを組み合わせて自らの望むものをどのように得るかを技術者に教えることを想定していた。しかし、現今のプログラミングはそのようではない、と Sussman 氏。今日では、誰が書いたとも知れないソフトウェアを、読みにくい、あるいは存在すらしない man ページに囲まれながらひっかき回している。ライブラリの働きを観察するためには、異なる入力に対してコードがどのような反応をするか、といった、基礎科学のようなことを行なわなければならない。これは根本から異なる仕事であり、そのためには別のコースが必要であった。
ここで、新たな 6.001 に向いていたのはロボット中心のコースだった。このコースでは、小さなロボットを動きまわらせる。ロボットは抵抗のように理想的な関数に従うものではない。車輪がすべったり、環境が変化したりする。 SICP で論じたのとは異なる方法で、頑健なシステムを構築しなければならない。
ではどうして Python なのか。それは―― Sussman 氏曰く、 Python にはちょうど実装済みのロボット工学向けのインタフェースがあったからだろう。それがすべてだ。
- 145 http://coreblog.org/ats/mit-cource-of-computer-science-and-programming-uses-python
- 125 http://route477.net/d/?date=20090331
- 111 http://mono.kmc.gr.jp/~yhara/d/?date=20090331
- 53 http://ime.nu/d.hatena.ne.jp/leque/20090326/p1
- 52 http://ja.reddit.com/r/ja
- 47 http://twitter.com/
- 37 http://reader.livedoor.com/reader/
- 34 http://d.hatena.ne.jp/blechmusik2/20110805/1312477958
- 33 http://www.reddit.com/r/ja/comments/895sx/mit_の計算機科学の入門コース_6001_はなぜ_sicp_scheme_から_python/
- 23 http://d.hatena.ne.jp/satosystems/20110114/1294996659