ソフトウェア開発の再びネイティブへという流れは、トレンドではなく適材適所というよい傾向
先週、RAD Studio、Delphi、C++Builderの新バージョン「XE8」を発表した。IoT対応などホットな技術に対応していることはもちろんではあるが、ここ数年力を入れてきた、マルチデバイスネイティブの方向性をより強化する機能拡張が盛り込まれている。新製品の紹介は他へ譲るとして、ここでは、ネイティブに関する話題について触れておこうと思う。
RAD Studioのテクノロジーのベースは、20年前にWindows向け開発ツールとしてデビューしたDelphiだ。当時Visual Basicで簡単なものを簡単に作るか、より高度なものをC++を使って呪文のように作成するか、二者択一だったところへ、簡単でありながら高度なことまでできるDelphiが救世主のように現れた。当時からネイティブであることを売りに、単一のEXEで動く、環境依存を引き起こしかねない特別なDLLが要らない、といった利点が語られた。
しかしソフトウェアが肥大化していく中で、膨大なライブラリを抱えたフレームワークベースの言語環境がメジャーになっていく。同時に、ネイティブに対するマネージドコードは、メモリ管理などが容易になり、安全に実行できることから、エンタープライズ用途で特に広がった。具体的に言えば、Javaや.NETだ。
とはいえ、このようなフレームワークは、フレームワークのバージョン問題を同様に抱え、複数バージョンが混在しなければならない状況では、かえって肥大化を招いた。バージョンが違うと問題が起きる。
結果的に、自社でコントロールできるサーバー環境であれば、この種の環境依存の問題は解決できるものの、パッケージアプリケーションのように、お客様の環境依存である場合には、なかなかうまくいかなったり、サポート工数が跳ね上がったりしてしまうわけだ。
そのような経験を経て、今のソフトウェア開発の状況を見ると、適材適所に収まっているなぁ、と感じる。ひところのように、何でもJavaという主張は少なくなり、それぞれの特性を理解し、それを活かしていろいろ活用しているというのが、うまい技術との付き合い方だと認識されるようになった。
特にそれを後押ししているのが、モバイルなどのマルチデバイスへの対応だ。モバイルデバイスをターゲットとした場合、アプリの性格によっては、絶対ネイティブでなければならない、というものもあり、ネイティブを選択することがごく普通の選択肢となっている。とはいえ、HTML5とかハイブリットがダメか、というとそうではなく、それぞれ向いているものがあるので、何をしたいかによって選択すればいいじゃないか、という当たり前のことが普通に言える状況にある。
今回、旧バージョンのDelphiや.NETを混在させて開発してきた会計ソフトの大手TKCさんが、Delphiによって共通フレームワークを構築し、すべての会計ソフトウェアでこれを利用し、Delphiによる開発を推進していく発表をした。もちろん将来的にはマルチデバイス対応も視野に入れてのことだ。同社でも、公共系のクラウドサービスでは.NETを引き続き使っていくと考えており、まさに適材適所の選択なのではないかと思う。