読者です 読者をやめる 読者になる 読者になる

Noopを試してみる

Googleが新たに開発中の言語、Noopが大変気になったの導入してみようかなと。
オブジェクト間の依存性排除と、可読性を追求している感じの言語のようです。
言語の特徴は
http://wiki.jvmlangsummit.com/Image:Noop_at_JVM_Summit.pdf
にまとまっています。
DIが言語仕様に組み込まれていることもさることながら、コンポジションの書き方が非常に美しいですね。
こうやって、親子関係という密な結合が発生しないようにしていると。
また、変数宣言がデフォルトでfinalになっており、非finalにしたい場合はmutable修飾子をつけるという仕様も僕の好みです。

さて、導入の手順を簡単に説明。
参考にさせていただいたのは
http://blog.smartnetwork.co.jp/staff/noop-running
http://d.hatena.ne.jp/sh2/20090919
です。

まずはGoogle codeのNoopのページへ。
http://code.google.com/p/noop/
Sourceタブをクリックしてで出てきたのはMercurialのコマンド
でした。

hg clone https://noop.googlecode.com/hg/ noop

というわけで、まずはMercurialのクライアントが必要。

$sudo aptitude install mercurial

にて導入し

$mkdir workspace
$cd workspace
$hg clone https://noop.googlecode.com/hg/ noop

で無事Noopのソースを入手いたしました。
さっそくビルドしよう、と言いたいところですが、NoopのビルドにはApache Buildrが必要です。
そして、そのBuildrのビルドにはRubyGemsが必要です。
では順をおってクリアしていきましょう。

$sudo aptitude install rubygems
$gem install buildr

よし、これでBuildrができあが…らない!

WARNING: Installing to ~/.gem since /var/lib/gems/1.8 and
/var/lib/gems/1.8/bin aren't both writable.
WARNING: You don't have /home/xorphitus/.gem/ruby/1.8/bin in your PATH,
gem executables will not run.
Building native extensions. This could take a while...
ERROR: Error installing buildr:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb install buildr
extconf.rb:6:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:6


Gem files will remain installed in /home/xorphitus/.gem/ruby/1.8/gems/rjb-1.1.9 for inspection.
Results logged to /home/xorphitus/.gem/ruby/1.8/gems/rjb-1.1.9/ext/gem_make.out

えー、何ですのん…。

‖TO BE CONTINUED =>