InfoQ

News

Java用のLINQ現る

作者 Rob Thornton, 翻訳者 編集部 投稿日 2007年9月22日 午後7時10分

コミュニティ
Java
トピック
Artifacts & Tools
タグ
LINQ
Anders Norasは先週JavaZoneにおいて、Java用のLINQと名付けられたQuaereライブラリを発表した(source)。Quaere(サイト・英語)はIterableとQueryableインターフェースを実装している、あらゆるストラクチャに対応するクエリ機能を備えたDSLである。

Nnoras氏はQuaereの機能を下記のように述べている。

  • Iterableインターフェースを実装したデータ、もしくは配列ストラクチャに対するクエリ実行能力
  • 通常のJavaコードを用いたクエリ言語を可能にさせる内部DSL(静的インポートと流動性インターフェースに基づいている)quaere.jar file(とその依存物)にリファレンスを追加するのみでプロセッシングとコード生成のステップは必要とされない
  • リストリクション、セレクション、プロジェクション、セット、パーティショニング、グルーピング、オーダリング、数量化、集合化、コンバージョンオペレーターを含む膨大な数のクエリオペレータ
  • lambda表現へのサポート
  • 匿名のクラスをダイナミックに定義しインスタンス化する機能
  • Java 1.5とそれ以降のバージョンに対応する新たなキーワード

下記は製品リストから製品名リストの受け取りの一例である。

List products = Arrays.asList(Product.getAllProducts()); 
Iterable productNames =
 from("p").in(products).
 select("p.getProductName()");

Quaereは現在一つの実装(オブジェクト用)しか備えていないが、部分的にHibernate用の実装が行われている。Hibernate実装はデモにおいて2,3時間しか費やさなかったように迅速に進行するべきであることをAnders氏は述べている。

何人かはjoSQLが類似したAPIであることを言及(source)している。Anders氏自身もその類似点を提示している(source)が、いくつかの相違点も指摘している。

  • Quaereは”ビジネス問題”を用いるとより良い結合性をもたらす。
  • Quaereクエリは更にコンパクトでタイプの安全性を備えている。
  • Quaereは新たなクエリエンジンのシームレスな追加を許容する拡張可能な言語である。

最後に、Noras氏はQuaereに関するよくある疑問(source)に答えるためCodehausにそのためのプロジェクトを発足(サイト・英語)した。

原文はこちらです:http://www.infoq.com/news/2007/09/quaere-linq

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

"YUKATA"から始まるコミュニケーション(Agile2008 ライトニングトークより)

私は「浴衣」を着てパーティーに参加したことで、たくさん声を掛けていただけました。 そこで感じたことは、このカンファレンスが人との繋がりを生み出し、また言葉の壁を越えて積極的に交流する場所であることです。民族衣装はそれらを助けてくれるものでした。きっとこの交流が、新たなムーブメントをアジア圏の仲間たちにも与えてくれると確信しています。

ソフトウェアのリーン思考入門

これは、InfoQ Chinaのアジャイル編集者、Jacky Li氏によるリーン思考とリーン思考をどのようにソフトウェア開発に適用するかについての入門です。

Java 6のスレッド最適化は実際に動作しているのか?

2つのパートからなるこの記事では、シングルスレッドベンチマークの助けを借りて、Java 6のスレッドのパフォーマンスに関する疑問に答える試みをしようと思います。

平鍋氏のGordon Pask Award受賞スピーチ

Agile2008において、Gordon Pask Awardの授与式が行われ、その一人として、チェンジビジョンの平鍋氏が受賞しました。本賞は、毎年、アジャイルコミュニティで定評のあるリーダーだけではなく、新たなリーダーになる可能性のある者に贈られるものです。InfoQでは、授与式のスピーチを動画にてお送りします。

Linda Rising氏による「誰を信頼しますか?」

Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。

Jean Tabaka氏による「Collaboration Explained--真のアジャイルチームのためのファシリテーションツール」

Jean Tabaka氏の書いた書籍では、会議などのチーム活動において、ファシリテーションの手法とツールについて具体的かつ実践的に説明しています。8/8(金)、Agile2008の最終日の朝のセッションでは、Jean Tabaka氏自身が本の内容をベースとしたセッションを行いました。

Hubert Smits氏による「ゲーム・デザイン・ワークショップ」

Agile2008の4日目となる8/6(木)の8:30から、Hubert Smits氏による「ゲーム・デザイン・ワークショップ」がおこなわれました。ゲームと言っても単なる遊びではなく、「フレームゲーム」と呼ばれる、グループでの情報収集や意志決定、また教育やトレーニングの教材として使えるいろいろなゲームです。

スケーラビリティに関するベストプラクティス:eBayからの教訓

eBayが日々挑んでいる主要なアーキテクチャの勢力は、スケーラビリティです。これはアーキテクチャや設計に関するあらゆる意思決定を特徴づけたり、駆り立てたりします。