Web 2.0と呼ばれる潮流が注目を集め、マッシュアップなどの技術が脚光を浴びた結果、近年、Webアプリケーションの進化はさらに加速したように思える。最近ではデスクトップアプリケーションとWebアプリケーションを融合する取り組みが進められており、デスクトップアプリケーションとインターネットアプリケーションの境界はもっと曖昧なものになっていくかもしれない。

ここではデベロッパサイドの視点となるが、興味深いAPIとして「Java client API for using Google Translate (google-api-translate-java)」を紹介したい。同APIはインラインで動作するテキスト翻訳APIで、テキストと変換する言語を指定しておけば、変換後のテキストが利用できるというものだ。その動作は、同プロジェクトサイトに掲載されている以下のサンプルソースコードを見るとよくわかる。Translate.translateの行に注視してほしい。

Java client API for using Google Translateの活用例 - プロジェクトサイトから引用

import com.google.api.translate.Language;
import com.google.api.translate.Translate;


public class Main {
  public static void main(String\[] args) {
    try {
      String translatedText = Translate.translate("Salut le monde", Language.FRENCH, Language.ENGLISH);
      System.out.println(translatedText);
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

ここで注目されるのは、google-api-translate-javaがgettext APIのようなインラインで扱うAPIであるにもかかわらず、カタログファイルや辞書データ、オフラインの翻訳エンジンを使っているのではなく、Webアプリケーションとして提供されているGoogle Translateにアクセスして翻訳を実施しているということだ。非公式なAPIとして提供されているため今後も開発が継続されるのかわからないが、デスクトップアプリケーションとWebアプリケーションと直接ソースコードレベルで融合する例としてきわめて直感的でわかりやすい。

Javaに限らず同種のAPIは機能がWebサービスとして提供されているかぎり、多くのプログラミング言語で活用できるものだ。向こう数年間で、デスクトップアプリケーションの開発スタイルも大きく変わっていくことになるのかもしれない。