2013年5月5日日曜日

javaからscalaを呼び出すサンプルプログラム

最近話題のscala。

コンパイル結果が.classファイルになるので、javaから普通に呼び出すことが出来るみたいです。

なので、scalaのコードをコンパイルして、jarを生成し、そのjarをjavaから呼び出すサンプルプログラムを書いてみました。

まずscalaのコード。

object JarMain {
    def main(args:Array[String]) = {
     println("Hi, I am Scala.");
     println("I've got your message:");
     for (elem <- args) println("> " + elem);
    }
}

これをscalaでコンパイルした後、javaのコマンドを用いてjarを生成する。

それを呼び出すjavaのコードは下記のよう。

public class Main {
 public static void main(String args[]){

  String[] strs={"Hi, I'm Java"};
  JarMain.main(strs);
 }
}

で、実行結果
Hi, I am Scala.
I've got your message:
> Hi, I'm Java

簡単。そして地味にすごい。

最終的にjarに落としこむことができるので、ひとつのjavaプロジェクトの中で一部分だけscalaで書くということが簡単に実現できる。

これはtraditionalで大規模な開発を行なっている企業には特に嬉しい。
一つのプロジェクトで一部分だけscalaでスモールスタートして、様子を検証しつつ、上手く行ったら徐々にscalaに置き換えていくストーリーが実現可能になる。

この点は非常に重要で、例えば一昔まえに流行ったruby on railsなんかだと、導入するとなったら全部変えなきゃいけないので、アーキテクチャ全体の変更が必要だわ、多数のエンジニアの教育が必要だわ、とかくtraditionalな会社では導入の敷居がかなり高かった。

でもscalaならまずは最小限からスタートさせて徐々にjavaを置き換えていくということも簡単に出来るので、保守的かつ大規模に開発している企業とかでも容易に導入が進みそう。




ランキング1位のiPhoneアプリの履歴を表示するサービス作ってみた

定期的に新しいアプリが話題に上がってくるiPhoneアプリ。
毎日App Storeを眺めてても面白いんですが、忙しくなるとしばらく見ないこともしばしば。

なので、ランキング1位のアプリを毎日記録して一覧表示するサービスを作ってみました。


iPhoneアプリだけでなく、iPadアプリも見ることができます。
それにしてもパズドラすごいですね。さすが1300万ダウンロード。

元になるデータはapple公式のiTunes Store RSS
これをgoogle apps engine上でかいたpythonで一日一回cronで取得しています。

今回のアプリでは日本のメディアタイプがiTune Appsのデータを取得していますが、プルダウンの選択を変えればmusicとかも取得出来ます。