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つが検討されている。
| アイシンの最新安全運転システム - 車両周辺・後方障害物監視、わき見・居眠り判断 [10:30 5/28] |
| ラネクシー、画像処理ソフトウェア開発キットの最新版を64bit版で販売 [10:10 5/28] |
| 東陽テクニカ、1G/10GbE回線対応のポータブルネットワークアナライザ [09:57 5/28] |
| 日本発の取り組み「Mozilla Factory」がスタート [09:30 5/28] |
| 【レポート】クラウド/モバイル/ビッグデータ時代に求められるUIとは - TOBESOFT 金代表 [09:00 5/28] |
|
関西電と中部電、北陸電と四国電から風力発電による電力を受電 [11:37 5/28] 経営 |
|
Ustream、視聴者情報を確認できる「リアルタイム解析ツール」を提供 [11:33 5/28] ネット |
|
【女性編】1番歌がうまいキャラランキング [11:00 5/28] ホビー |
|
【男性編】1番歌がうまいキャラランキング [11:00 5/28] ホビー |
|
凸版とサイバーエージェント、ゲーミフィケーション活用の新プロモーション [11:00 5/28] ビジネスPC |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。