Paul Grahamの新作。コンピュータサイエンス専攻の学生が卒業までに学んでおいた方が良いことはなにか、Graham流の助言。
ここで(私にとって)重要なのは「仕事に役立つ知識」についての彼の言葉。
What you should learn to get a job depends on the kind you want. If you want to work in a big company, learn how to hack Blub on Windows. If you want to work at a cool little company or research lab, you'll do better to learn Ruby on Linux. And if you want to start your own company, which I think will be more and more common, master the most powerful tools you can find, because you're going to be in a race against your competitors, and they'll be your horse.
(超訳)大企業に勤めたいならWindowsを、クールな小企業や研究所に勤めたいならLinux上のRubyを学ぶべき。自分で起業したいなら最強のツールを自分で探すこと。
ご存じのようにPaulは(元)Common Lispハッカーで、そのつながりでLight-weight Languageを推奨している。 その文脈でPerl, Python, Rubyを紹介することもたびたびあった。
しかし、私の記憶する限り、今まで彼がRubyについて言及する時にはいつも「PythonやRuby」というような、 無視はしないものの、おまけのような扱いであった。まあ、RubyはPythonよりもマイナーだし、 当然の扱いだと私自身も考えていた。
しかし、上記の引用では「Ruby on Linux」とはっきり書いている。 もちろん、ここでの正確な意味は「Rubyのような動的言語」であることは間違いないのだが、 Paulの中で「RubyはPythonよりマイナー」という意識が減ったことを示しているような気がしないでもない。
いや、考えすぎかも。
同社は...、「Coyote」と呼ばれる新たな開発プロジェクトをSun Public License(SPL)の下で立ち上げた。その目的は、開発者がNetBeans IDE(統合開発環境)を使って動的言語でコードを書く上で役に立つモジュールを作ることにある。
JVMベースの動的言語を支援するIDEということか。まあ、動的言語のプレゼンスが向上することは望ましいことだと思う。
Lisp (というか、S式的文法を持つ言語)をJavaScriptに変換するコンパイラ。 これでJavaScriptを書かなくてすむ、しかし、そこまで嫌わんでも。
変換例:
(defun apply-effect () (when (and document.all photoslider.filters) (let ((trans photoslider.filters.reveal-trans)) (setf (slot-value trans ’*Transition) (floor (* (random) 23))) (trans.stop) (trans.apply))))
これがこうなる(↓)
function applyEffect() { if (document.all && photoslider.filters) { var trans = photoslider.filters.revealTrans; trans.Transition = Math.floor(Math.random() * 23); trans.stop(); trans.apply(); } }