全てをC#で記述することで、共通論理のC#ソースを使うことができるので、iPhone、Android,WinRTのアプリを作るのが簡単になるという話だった。UI部は結局はそれぞれのOSの特色をすくいきれないで、別々の定義が必要となるようだ。
JNIはどうしてくれるのだろう。JavaやC#では非力なのでCを使ってグラフなどを描くのは当たり前のこと。それはゆっくり動けというのだろうか。対応については一切語られていなかった。
そもそもだが、コアな部分のコーディングはCだろうが、C#だろうが、Javaだろうが、何だろうが、簡単に移植できるものだ。なぜなら、全てがC言語が元になった言語なので、それなりに一定のルールで移植できる。移植できないのはUI部だ。画面定義やコントロール(ビュー)といった、OSが用意した画面制御、またOSが用意した通信手段、OSが用意したI/O(ファイルを除く)が共通化できないのだ。
Azureは共通化できないところはプログラマ任せにして、共通化が簡単なコアロジックをC#で作らせようとしている。
実際、モバイル業務アプリにコアな部分がどれだけあるだろうか、まさか、モバイル端末でデータ解析でもやらせない限り、結果的には入出力を行っているだけである。主たる機能は出力であろう。文字入力は入力装置が貧弱なので大量の文字入力はできない。入力はGPSや加速度センサーと合わせた情報を取り込むのが向いているのだろう。結果的にコアな部分は小さく、入力と出力部分が大きなアプリがモバイルアプリである。その上でコアな部分を共通化して、各OSのかゆいところに手が届く部分のUIを削ってしまうようなAzureのモバイル開発に何の価値があるのだろうか。
業務アプリなら端末を限定して(OSのバージョンまで限定して)使わせることになるだろうから、AzureでiOS,Android,Windowsとそんなに多くのターゲットで開発する必要は無い。それとも、WindowsRTアプリが少ないからAzureに移行してもらって、WinRTアプリを増やして欲しいという考えなのか。もし、そういう考えが少しでもあるのなら呆れてしまう。
0 件のコメント:
コメントを投稿