JVMで動作する新言語「Noop」- Google開発者らによる新プロジェクト

    Yoichi Yamashita  [2009/09/18]

    Sun Microsystemsで開催中の「JVM Language Summit」において、Googleの技術者Alex Eagle氏とJeremie Lenfant-Engelman氏が、Java仮想マシンで動作する新しいプログラミング言語「Noop」を発表した。旧、新の開発言語からの経験を教訓に、読みやすく、そしてメンテナンスしやすい言語を実現する。「2人以上のチーム向けの言語」だという。

    Noopは"noh-awp"と発音する。機械命令のNOP(No Operation)に近い。Eagle氏らGoogle技術者を中心に、開発者同志が集まってNoopプロジェクトはスタートした。現在Google Code上でホストされている。

    同プロジェクトのミッションを語る上でEagle氏らは、Michael Feathers氏の「Working Effectively With Legacy Code (レガシーコード改善ガイド)」の内容を引用した。同著でFeathers氏は、"テストのないコード"をすべてレガシーコードと定義し、その上で、コードを理解し、テストで保護するための手法をまとめている。Noopが目指すところも同じだ。たとえ、きれいな設計やコードであっても、手が加えられるに従って次第に分かりづらくなり、そして壊れていく。テストを用意し、元のきれいな設計やコードを維持しながら、プログラムを変更できる環境が望ましい。こうした特徴を言語レベルで備えるべきであるという考えがNoopプロジェクトの背景だ。

    たとえばFeathers氏は、ユニット・テスティングを実現する上で、接合部を利用してSeamという、元のコードを編集することなくプログラムのふるまいを変える場所が重要になるとしている。Eagle氏らによると、Seamがないケースは言語機能に由来する。Noopでは、すべてのクラスのペアの間にSeamが設けられる。またプログラムの実行までコンポーネント同士が依存関係を持たないようにするDependency Injection (DI: 依存性の注入)が組み込まれている。

    ほかにも、コードは書かれる以上に読まれるものという観点から"読みやすさ"を重視。プロジェクト・ページでは、不変性、実行可能なドキュメンテーション、プロパティ、実用的でモダンな標準ライブラリなどの特徴が挙げられている。

    NoopはApache License 2.0の下で公開される。Noopのソースファイルの利用方法として、Javaソースを生成するJavaトランスレータ、インタープリタ、Javaバイトコードへのコンパイラの3つが検討されている。

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン