IT探検の追憶スマートフォン用の表示で見るIT探検の追憶この広告は、90日以上更新していないブログに表示しています。Touch+Cordova)でアプリを作っていたんですが、パフォーマンスやOSの最新機能のキャッチアップという点で不満を感じ始めました。Javaで書くのは冗長な感じがしたので、別の方法がないか検討してみました。最初に自分なりの要件を挙げておきます。生成したアプリのパフォーマンスが高い。ライブラリが充実している(サードパーティも含めて)。これらの要件から、やはりクロスプラットフォーム系の開発環境(Cordova/PhoneGapやXamarinなど)とJavaは除外しました。その上で、以下の要件を追加しました。言語や開発環境に不具合があった場合、Javaでの開発に戻ることが容易。Javaと共存できるとベスト。すると、JVM上で動作する言語のどれかということになります。あと、必須要件ではないですが、後でiOSアプリも作ると思うので、iOSアプリへのポーティングがやりやすいといいですね。以降で、これらの要件にマッチする候補を検討したいと思います。ちなみに、僕は以下の言語をどれも使ったことがないですし、Javaすらほとんど経験がありませんので、そのレベルでの評価と考えてください。調べた感じでは、コードをかなり簡潔に書けそうです。Scalaにすれば、将来的にサーバー側もScalaでいけるので、その点でもメリットがありますね。残念なことに、Androidではそれなりにオーバーヘッドがあるみたいです。厳しそうなので、今回は見送ることにします。Androidのサポートが改善してきたら、また検討したいと思います。スクリプト言語だと思っていたので、当初は眼中になかったのですが、2014年にAndroidにも対応し、静的コンパイルを行えばパフォーマンスも問題ないようですね。(2014/6)ただ、Groovyの静的コンパイルには少し問題もあるようですね。(2012/2)今は改善しているのかもしれませんが、ベースが動的言語という点が引っかかるので(上記のInfoQの記事でも苦労したと言っている)、見送ることにします。Kotlinさて、あとは比較的マイナーなJVM言語が残ります。良さそうに思えました。2011年に登場した比較的若い言語ですが(Scalaは2003年)、そのため、いろいろな言語のいいとこ取りをしたような感じですね。見たところでは、Javaよりも簡潔な記述ができ、Scalaほど関数型プログラミングに寄っていないので、ほどよい言語仕様のように感じます。特徴的なのは、型やヌル値の扱いが厳密なことですね。Android用のライブラリも揃っているようです。文法がSwiftにかなり似ているので、iOS版を作る場合にも、ビジネスロジックのポーティングは比較的楽にできそうです。唯一の難点は、まだV1.0が出ていないことですね。言語仕様が揺れているので、その点は要注意です。結論ということで、ひとまずKotlinでやってみることにします。KotlinはJavaと共存できるので、最悪(Kotlin自体に致命的なバグがある場合など)そこだけJavaで書くことにするつもりです。(1)月別アーカイブ検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!shimoxさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。