Diary-nagataka-シリコンバレーで働きたい!という夢への日々

外資ITで働くエンジニアが趣味や日々の事など書いてます(技術の話は別ブログ http://wanna-be-geek.seesaa.net/ )

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告
  3. このエントリーを含むはてなブックマーク

MITのCS6.001、schemeからpythonへ

どうも、風呂上がりにRSSをチェック中のながたかです。

MITの名物授業CS6.001といえば、あのschemeですよね!

教科書がwebに公開されているため、以前ワタシは研究室で自主ゼミをやっていた事がありました
http://mitpress.mit.edu/sicp/
(あれ、なんだかグダグダになった気が...リーダーシップが無くてスミマセンw)

その当時ブログにも書いてますね
http://nagataka.blog50.fc2.com/blog-entry-171.html


まぁ、関数型言語を崇拝しておられる(笑)方々がネット上には沢山おられるようで、それを見た俺は興味を持ったわけです、なんだかんだで結構楽しかったかも♪

ところで、そんな6.001なんですが、某ブログで知ったのですが、この度、言語がschemeからpythonに変ったそうです!

なんと!

ちょっと検索してみたら、何やらSussman氏のスピーチを聞いた人が記憶を頼りに内容をブログにupされていた

なので、ちょいと英語の特訓ついでにコイツをザッと訳してみる事にしましたw
(意訳してるトコロは勘弁。そして、普段あまり日本語に訳すという作業をしないため読みづらい日本語になってます...と、予め言い訳をしておくw)

When we conceived of scheme in the 1970’s, programming was a very different exercise than it is now. Then, what generaly happened was a programmer would think for a really long time, and then write just a little bit of code, and in practical terms, programming involved assembling many very small pieces into a larger whole that had aggregate (did he say ‘emergent’?) behaviour. It was a much simpler time.


1970年に私達がschemeを思いついたとき、プログラミングは今とはかなり違うものだった。その当時、一般的に行われていた事というのは、プログラマがかなりの長時間にわたり考え、そして、少しのコードを書くということだった。実際的な言い方をするなら、プログラミングというのは、多くの細かなピースを大きな一つのプログラムへとまとめる行為だった。とても単純だった頃だ。


Critically, this is the world for which scheme was originally designed. Building larger programs out of a group of very small, understandable pieces is what things like recursion and functional programming are built for.


これは、schemeが最初にデザインされた当時の話しだ。とても小さなピースから大きなプログラムを作るために、例えば再帰とか関数型プログラミングが作られた。

The world isn’t like that anymore. At some point along the way (he may have referred to the 1990’s specifically), the systems that were being built and the libraries and components that one had available to build systems were so large, that it was impossible for any one programmer to be aware of all of the individual pieces, never mind understand them. For example, the engineer that designs a chip, which now have hundreds of pins generally doesn’t talk to the fellow who’s building a mobile phone user interface.


世界はもはやそのような状態ではない。ここに至るまでのいくつかの時点において、作られたシステムや、システムを作るために利用可能なライブラリやコンポーネントはあまりに大きく、一人のプログラマにとって、全てのピースを気にかけるのはもはや不可能だ。例えば、チップ(現在においては数百本ものピンを有している)をデザインするエンジニアはふつう携帯電話のユーザーインターフェイスを作るエンジニアの事は話さない。

The fundamental difference is that programming today is all about doing science on the parts you have to work with. That means looking at reams and reams of man pages and determining that POSIX does this thing, but Windows does this other thing, and patching together the disparate parts to make a usable whole.


根本的な違いは、今日のプログラミングは、あなたが関わらなくてはならない事柄に関するすべてについて科学しなければならないという事だ。それは、果てしなく膨大な文書やマニュアルに目を通し、
(...よくわかんない...w)
それらを、一つの利用可能なものいまとめる事を意味する。

Beyond that, the world is messier in general. There’s massive amounts of data floating around, and the kinds of problems that we’re trying to solve are much sloppier, and the solutions a lot less discrete than they used to be.


その上、世界はグチャグチャだ。そこら中に膨大な量のデータがあり、私達が解決しようとしている問題はもうメチャクチャで(かなりの意訳w)、解決策は、以前よりもかなりdiscreteでない。

Robotics is a primary example of the combination of these two factors. Robots are magnificently complicated and messy, with physical parts in the physical world. It doesn’t just move forward along the ground linearly and without interruption: the wheels will slip on the ground, the thing will get knocked over, etc.


ロボティクスはこれらの二つの要素の初歩的な例だ。ロボットは、実際の"モノ"を伴いかなり複雑でゴチャゴチャしている。ロボットは、ただ前に一直線に進むだけじゃない。

This is a very different world, and we decided that we should adjust our curriculum to account for that. So, a committee (here, Prof. Sussman peaked his hands over his head, which I interpreted to indicated pointy-headedness) got together and decided that python was the most appropriate choice for future undergraduate education. Why did they choose python? Who knows, it’s probably because python has a good standard library for interacting with the robot.


全く別の世界だ。なので、私達は、我々のカリキュラムをこれらに適合させる事を決めた。委員会が結成され、pythonが最も学部生の授業にふさわしいと決めたのだ。何故彼らはpythonにしたのか?知らないが、たぶん、pythonはロボットと相互に作用するための良い標準ライブラリを備えていたのではないか。



以上、間違い結構あると思うので、指摘してください~
ってか、ちとこの訳は酷いなw時間を見つけてちゃんと読んで訳し直さないと恥ずかしいカモ...訳が悪いとここまで文意が掴みずらいもんかw


まぁ、原文を読んでください。。

ともあれ、あの強烈に胡散臭い表紙のSICPの教科書はこれからも古典として語り継がれ、そして一部の熱烈なファンはこれからもLispをあがめ続けるのでしょうw

けど、pythonってホント人気なんだなぁ。

言語の差を語れる程の力は無いのでよくわかりませんが。
可読性が良い、か。。
まぁ、そのうち機会を見つけてちゃんと触ってみたいな。



では、最近はバイトでよく使う機会があるため、今さらperlが好きになりつつあるながたかでした~
また明日も頑張りましょう^^
スポンサーサイト
  1. 2009/09/30(水) 02:16:50|
  2. SICP
  3. | トラックバック:0
  4. | コメント:0
  5. このエントリーを含むはてなブックマーク
<<仕事があるのは | ホーム | 日本語が亡びるとき>>

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://nagataka.blog50.fc2.com/tb.php/372-a13e9c6a
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。