1990年代後半からJavaのノウハウを書き続けてきた「いがぴょんの日記」で有名な伊賀敏樹氏。「RAD Studio」を提供するエンバカデロ・テクノロジーズのセールス・コンサルタントとして活躍する伊賀さんに、コンパイル言語へのこだわり、エンバカデロの強み、モバイル・クラウド時代のプログラミングについてざっくばらんに聞いた。
ガラス屋の情シスからSIerのプログラマーに
伊賀さんのビジネスプロフィールはガラス屋の情報システム子会社からスタートする。「ガラスを作るつもりだったのに、作るのはソフトウェア。あんまり堅くないモノだった(笑)」とのことで、外販向けのパッケージソフトを作っていたが、その後勤めていた情報システム子会社にNTTデータの資本が入ってきたことで、仕事がSIになったという。
そんな中、伊賀さんが書き始めたのが、C++やJavaの開発ノウハウについて書いた「いがぴょんの日記」。「サーバーアプリを書いていたんだけど、C++だとメモリが漏れちゃうので、Javaが魅力的に見えました。1.1.6でJITが導入され、一気に速くなって、これはいいぞと思った」とのことで、1998年頃にC++からJavaにシフト。「スニプレットのコードを載せたら、いつの間にかたくさんのJavaのプログラマーが見てくださるようになった。それがきっかけで、雑誌や書籍で記事を書けるようになった」とのことで、ブログという言葉が世に出る前、2005年くらいまでアクティブに投稿していた。
しかし、プログラマーからプロジェクトリーダーになり、慣れ親しんだプログラミングの世界からどんどん離れた業務にシフト。「プロジェクト管理者ではなくて、プログラミングやりたい。汎用機じゃなくて、スマホのアプリを作りたい。悶々としていました」とのことで、2014年6月に飛び込んだのが、当時開発ツールを検証していたエンバカデロになる。
エンバカデロのアプリケーション開発環境「RAD Studio」は、DelphiとC++の開発ツールをセットにしたもの。2008年にデータベース設計ツールのベンダーだったエンバカデロがボーランドから開発ツール部門のコードギアごと買収したRAD(Rapid Application Development)ツールだ。「現在の私は言語より仮想マシンに興味があるんです。その点、エンバカデロはレイヤーの下がLLVMという仮想マシンで、DelphiもC++もLLVMベースで動く。アーキテクチャ的にスマホやタブレット時代のツールとして一番いいんじゃないかと思った」(伊賀さん)。
現在伊賀さんは、エンバカデロのセールス・コンサルタントとして、営業やマーケティングのためのコンテンツ作りや講演などを担当している。「セールス・コンサルタントも、マーケティングも初心者なので、苦労してますが、新鮮です」と伊賀さんは語る。
一世風靡したDelphiもきちんと使える
エンバカデロのRAD Studioと言えば、マイクロソフトの「Visual Studio」やOSS化した「Eclipse」とともにRADツールの代名詞的な存在だが、開発元のボーランドの社名変更や戦略の迷走、無料版の廃止もあり、一時期停滞したのも事実だ。
しかし、2008年にエンバカデロに体制が変わって以降、マルチプラットフォームのコンパイラを拡充。2011年には「FireMonkey」という抽象化フレームワークを追加したことで、単一の言語でWindowsやMac、iOS、Androidなどの開発を行なえるのが大きな特徴となっている。「1つのコンポーネントを貼って、1つの画面を作れば、同じコードで全部のデバイスで動く。ここが強烈な特徴になっている。最近はMac対応のよさで選んでくれているお客様も増えてますし、IoTの部品やクラウド接続の部品も拡充されています」と伊賀さんは語る。
1990年代後半に一世を風靡したDelphiが今もきちんと使えるのもメリット。伊賀さんは、「最初の頃はC++ですごくがんばって開発するか、Visual Basicである程度の制限を受け入れるしか選択肢がなかった。でも、Delphiは簡単な言語なのに、かなり凝ったことができた。しかもランタイムがいらないので、1つの実行ファイルで動くのが魅力的だった」と語る。その他、コンポーネントの充実ぶりやDBへのアクセス機能など、開発者を魅了したDelphiのよさは引き続き現在も継承されているという。「ボタンを配置すれば、アプリが作れる。ハンズオンで記者の方々にもやってもらったんですけど、30分でAndroidのカメラアプリが作れた」(伊賀さん)。
昨今はライトウェイト系の言語でシステム構築されることも多いが、コンパイル言語のメリットはいまだに大きいというのが伊賀さんの持論。「開発スピード重視であればPythonとか、Rubyのようなライトウェイト言語がよいですが、ずっと維持運用していくためのコードはコンパイル型の方が向いていると私は考えます。コンパイルやコーディング規約でチェックしたいとか、ガチガチに固めて、人が入れ替わっても保守できるというメリットはあります」と伊賀さんは語る。モバイルやゲーム系の開発でHTML5からネイティブに戻ってきている状況もある。「電力供給がバッテリで、性能をある程度出したい場合などは、やはりコンパイル系の方がいいのです」(伊賀さん)。
最新のRAD Studioではデバイスごとに最適化されたユーザーインターフェイスを自動設計できる「FireUI」を搭載しており、画面をオブジェクト指向のように扱えるという。こうしたモバイルフォーカスが訴求し、既存の業務アプリ開発だけではなく、スマホアプリの開発者もエンバカデロのツールを導入しつつある。「日本人って、画面の端っこまできれいに使いたいんですよ。お客様の要望を聞いたら、みなさん画面設計に困っていて、FireUIには特に関心を持たれていますね」(伊賀さん)。
プログラマーよ!ハードウェアに寄り添える時代が来た
伊賀さんのスタートは、小学校のときに買ってもらったPC-8001。「BASICとマシン語が僕の入り口。夢のアイテムはフロッピーディスクだった。好きだったゲームを作ってたんだけど、当時はBASICマガジンに書かれていたコードを入力することがゲームをやることだった。でも、バグが多かったので、そのときにデバッグを覚えた」と振り返る。
アセンブラもなかったので、Z80の命令を一部覚えて、機械語でプログラムを作っていた。データの保存も家庭用のテープだったので、音を聞けば、どこを保存しているのか理解できたという伊賀さん。「タスクマネージャー見たら、なにがボトルネックなのかわかるし、I/Oが競合したがために、針がピクピクしているのも、肌感覚でわかる感じ」と語る。
一方、現在はゲーム機が簡単に入手できる機械語を使う必要がない。「機会が奪われているので、技術伝承されないのはしょうがないと思います」(伊賀さん)。しかし、抽象化されたレイヤーから先に進まないと、トラブったときに対応できない。「トラブルのときに学べるか。しんどいけど、トラブルのときにこそ成長できるのがIT屋のいいところですよね」と伊賀さんは語る。
残念なのは、古い人と若い人の交流が少なくなっていること。「Javaでやっていたことって結局、汎用機でやっていたことをインプリしていただけだと思います。それくらい汎用機のノウハウってすごい。汎用機でできて、まだ実現していないことも多い。そこに携わっている人たちは、酔ったらオヤジギャグしか出てこないんだけど(笑)、もっといろいろ話して欲しい」。Webやデータベースの運用で苦労しているところなど、汎用機のノウハウに学ぶ部分はあると伊賀さんは語る。
プリパラだけは見ておいた方がいい!
最近はIoTの関係でラズパイなどハードウェアに直接触れる機会も増えており、ふりだしに戻っている感がある。伊賀さんもNFCやBluetoothまわりに興味を持っているという。「スマホもリソースが限られているし、BluetoothやNFCになると読み書きの命令しかないので、きわめて“低レベル”な触り心地があっていいですね。IoTの世界になって、エンジニアの人はのたうち回りながら楽しめると思いますよ」(伊賀さん)。
そんな伊賀さんが熱い視線を注いでいるのが、娘さんと楽しんでいるという「プリパラ」(タカラトミーアーツ)。いわゆる女子向けのトレーディングカードゲームなのだが、プリズムストーンというアクセサリでコーデを読み込ませたり、写真を撮って自分専用のチケットを作ったり、ゲームソフトのQRコードを読み込ませてコーデをコレクションできたり、とにかく高機能。「高解像度なカメラが付いて、印刷できて、今後はNFC対応で通信まで入ると言われている。IoTとしてのインターフェイスが揃って、今後3Dプリンターや音声認識、ARまで入ったら、なにが起こるんだろう。プリパラだけは本当に見ておいた方がいい」(伊賀さん)。未来を語る伊賀さんの笑顔はどこまでもまぶしい。