システムにはプラットフォームが重要
現在Google社員で元米Amazon.comの社員であったSteve Yegge氏のGoogle+に付いてこのメモが流出している。面白いことは、Google+はユーザ中心で開発され、開発者のためのAPIが公開されていないことを問題と挙げている。ようするに「You don’t eat People Food and give your developers Dog Food. Doing that is simply robbing your long-term platform value for short-term successes. 」である。
オープンソースであればソースコードを入手することができるので、自由にプログラムを修正することができるのでAPIは不要だと考えている人もいる。しかし、実際にプログラム本体を何時までも修正しているよりも、他システムと連携することの方が重視される時代である。
Liferayの場合は、Service Builderというツールが用意されている。そのツールを使うと、xmlで定義したエンティティからJavaのローカル/リモートとWSLインタフェースを生成する。さらに、それらのインターフェースを組み立てて上位インターフェースを作成していく。インターフェースを作成した後に再びService Builderを実行すると、他形式のインターフェースを生成する。このようにインターフェースを作成して、Service Builderの実行を繰り返して、ボトムアップ方式でビジネスサービスを実装していく。
この仕組みがLiferayのプラットフォームである。新しいサービス及びそれを利用するポートレットを短時間で作成することが可能になる。もし、このようなプロットフォームがなければ、インタフェースをコーディングする必要があるために、生産性が悪くなつ。
LiferayはドラッグドロップやWYSIWYGでページを作成機能が豊富にあるが、実際にLiferayが海外で使われるのはこの、Service Builder機能のためだと思う。やはり、開発者に優しいプラットフォームは開発によく使われ、普及する。