エンタープライズ向けRIAとして幅広く導入されているリッチクライアント/RIAテクノロジー「Curl」。5月31日には、Curlの業務システム向けUIコンポーネント群「Curl External Library(Curl EXT)」をオープンソースとして提供開始した。Curl EXTは、Excelのように使用できるワークシートや地図アプリケーションを作成できるジオグラフィックAPIなど多数の機能を搭載しており、開発者は生産性がさらに向上する業務システムを容易に構築できるようになる。今回は、CurlおよびCurl EXTの概要や特徴、今後の展望などについて、実際に開発に携わった方々にインタビューした内容を紹介する。
お話を伺ったのは、住商情報システム株式会社 Curl事業部 Curlプロダクトチームのプロダクトマーケティングの担当である三野 凡希氏、それに実際にCurl EXTの開発に携わった小段 政樹氏、カール ウィリアム スターン氏の3名だ。
世界1000社以上が使用している「Curl」
まず、Curlの現況について教えてください
三野氏
|
「Curl」は、高度で複雑なユーザーインタフェースを持つシステムを構築できるエンタープライズ向けWebプログラミング言語です。1995年にMITで研究が開始され、1998年に米国でCurl社が設立されました。2004年には住商情報システム(SCS)がCurlの知的財産権を買収し、日本側のニーズを捉えた研究開発にも注力できる体制を整えています。
日本国内では500社以上の導入実績があり、海外でもFortune 500の企業をはじめ、米国や韓国などに1000社以上がパッケージ版を中心に導入されています。メインマーケットは日本国内ですが、今後はアジアを皮切りに海外へも積極的に展開していく方針です。
|
|
エンタープライズ向けRIA「Curl」スクリーンショット
導入企業の規模や業種の傾向はいかがですか?
三野氏
エンタープライズ向けということもあり、大企業が多いですね。会計、物流、サプライチェーンなど大手企業を中心とした導入実績が多く、最近でのトレンドとしては特に製造業の「モノ作り」現場のコアなシステムなど、企業価値を決めるシステムにも導入されています。また、公共での導入事例として、例えば長崎県庁では「長崎クラウド」としてクラウド化、オープン化を推進していますが、フロントの電子申請システムにCurlが導入されています。
学習のしやすさと自由度の高さ
Curlの特徴、差別化ポイントを教えてください
三野氏
まず最初に、企業システムのニーズに対するパフォーマンスの高さ・高速性、それから企業システムに対応する高いセキュリティが挙げられます。次に、デスクトップにおいてマルチプラットフォームを実現していること、そしてそれをCurlという単一の言語、Curl RTEという単一の実行エンジンで実現していること。最後に、Excelや帳票など日本特有のニーズに対応していることがあります。テキストから3D、アニメーションと高い表現力を持ち、HTMLのスクリプトデザインやオブジェクト指向を入れられるなど、柔軟性が高いことも特徴です。
スターン氏
Curlは当初より「学習のしやすさ」をコンセプトにした言語で、初めての方にも基本のデザインでかなりのことが対応できますし、学習者のレベルに応じて機能を追加できることも特徴です。また、学習のハードルはそれほど高くなく、ドキュメントが豊富に用意されているという安心感もあります。Curlはエンタープライズ向きと言われますが、一般的なRIA(リッチインターネットアプリケーション)と比べてカスタマイズできる仕組みが豊富に用意されていることも大きなポイントだと思います。
小段氏
学習のハードルといえば、統合開発環境CDEで提供している
ヘルプドキュメント(Ver.7)が活かせると思います(※リンク先はWebサイト用)。ドキュメント内のサンプルをその場で改変して実行することができます。初めて学習する方にもプログラムを動かせることは、学習において非常に役立つと思います。
三野氏
CurlはLISP言語に似ていると言われますが、手続き型的にもスクリプト的にも対応できる、つまりVBライクにもJavaライクにも、多彩な形式、スタイルで書けるという特徴があります。Webの言語ですがイベントドリブンの開発ができることも特徴です。VB開発者の方には入りやすい言語かも知れません。開発スタイルとしてはオブジェクト指向で開発できます。
また、起動の速さもポイントです。サーバからソースコードがクライアントにダウンロードされ、クライアント側で即時コンパイル(JITコンパイル)するので一般的なアプリケーションに比べて高速に起動することができます。
テキストベースでクライアントに送られるので、マルチプラットフォームに対応しやすく、データをコンパクトにできるため、細い回線での運用も可能ということも特徴です。
ニーズの高いUIコンポーネントをまとめた「Curl EXT」
Curl EXTの概要と、リリースに至った経緯があれば教えてください
三野氏
SCSはこれまで、Curlの「Curl言語」「実行エンジン」「開発環境」の3つを柱をベースに、ライセンス販売とシステムインテグレーションビジネスを展開してきました。また、アプリケーションの要件に応じて柔軟に開発を進められるよう、さまざまな拡張API(開発ライブラリ)をオープンソースで提供しています。今回、業務システム向けに利用者ニーズの高いUI(ユーザーインタフェース)コンポーネントをまとめたものが「Curl EXT」です。
UIに対する要求は高度で複雑化してきていますが、Curl EXTを活用することで簡単に開発ができ、満足度の高いUIを提供できます。具体的には「ワークシート」「ガントチャート」「アニメーション画面遷移」「自動GUIテストフレームワーク」「ジオグラフィックAPI」などが含まれています。
小段氏、スターン氏はどの部分の開発に携わったのですか?
小段氏
|
Curl EXTはコンセプトにも関わっていますが、実装までやったライブラリは「ジオグラフィックAPI」です。このAPIは、地図などの図形情報を読み込んでCurlに落とし込んでオブジェクトとして表示するというものです。その他に、「アニメーション画面遷移」も担当しました。
|
|
スターン氏
ワークシートの計算機能などを担当しました。ワークシートはExcelのように、セルの結合や計算式の埋め込み、グラフやチャートを生成するコンポーネントを備えており、これらを併用することによりExcelライクに利用できます。
企業システムにこそ必要な「画面遷移」の工数をゼロに
苦労した点はありましたか? またお勧めの機能も教えてください
小段氏
地図情報のシェープファイルをCurlに落とし込むところで、パフォーマンスが上がらないという問題が発生したところです。解決するまでトライ&エラーを繰り返しましたが、原因を発見し解決方法を導き出す過程は楽しみでもありました。
スターン氏
ワークシートの場合は、大量のデータコンポーネントが中にあって、それをユーザーに正しく表示する必要があるので苦労しました。また、パフォーマンスとUIデザインのバランスについて、どうすればユーザーの利便性を高められるかを常に悩んでもいました。Excelの機能を再現しようとすると、使用頻度や認知度の低い機能も意外に多く、ユーザビリティ、デザインと機能の見つけやすさ、わかりやすさなど、多くのハードルがありましたが、利便性の向上が実現できたときは達成感もあり面白かったです。
小段氏
お勧めの機能としては、ぼくが開発したジオグラフィックAPI(笑)、ワークシート、それからアニメーション画面遷移です。これは画面が切り替わる際にトランジションを表示するものですが、アニメーションというと企業システムでは「遊び」と取られてしまうことが多く、そこに工数をかけることが価値と認めてもらえないのが現状です。 しかし、企業利用においてもアニメーションによる画面遷移は必要だと思っています。既存の企業システムには画面が遷移したことさえわからないようなものも多いですから。そこで、豊富なエフェクトも用意して組み合わせられるようにした上で、ライブラリとして追加しました。最初から用意されていれば、画面遷移の工数をゼロにできるので開発者にとっては大きなメリットになると思います。
スターン氏
Excelライクな機能は、ユーザーからの利用ニーズが高くコンポーネントに追加した機能のひとつですが、いつになってもExcelのように使えるワークシートは便利だと思います。他には、アニメーション画面遷移もユーザーエクスペリエンスを意識した機能だと思います。
小段氏
それから、自動GUIテストフレームワークも今回テスト的に用意しています。UIが複雑で高度なものになってくると、UIのテストも複雑になってきます。特に画面遷移などでは、テストにあまり工数をかけられませんし、そもそもGUIのテストをマニュアルでやるのは開発者にとっても大変です。そこで、GUIテストを自動化できるツールを作り、コンポーネントに追加しました。
ユーザーエクスペリエンスのガイドラインを作成したい
今後の展開について教えてください
三野氏
時期は未定ですがユーザーエクスペリエンスのガイドラインの作成やそれにともなうUXコンポーネントを検討しています。Curlの優位性を活かすには、ユーザー視点に立った考え方や体制が必要だと考えています。また、ユーザーエクスペリエンスに対する要望をユーザーから引き出すよりも、Curlならではのユーザーエクスペリエンスを提案しユーザーのニーズを捉えていきたい。そのために、どんどんアイデアを出していきたいと思っています。
業務システムは、画面遷移、入力や検索といった単調なデザインになりがちですが、業務システム向けに、よりレベルの高いユーザーエクスペリエンスを提供していきたいですね。それを差別化ポイントとして、もっと上のレイヤー、アプリケーションに近いレベルで融合したフレームワークもオープンソースで提供していきたいと考えています。
さらに、パフォーマンスの面も重要なポイントです。業務で必要とされる数十万件のデータをどう見せるか、その実現には高いパフォーマンスが求められます。そして、高いパフォーマンスと共に複雑なものを求められるようになると重要になるのはバランスで、Curlに精通した高度な能力が必要になる場合もあります。
ロードマップとしては、どのような感じになりますか?
三野氏
戦略的には、クロスプラットフォームへの対応を進めていきます。すでにWindowsやMac、LinuxといったPC系は網羅しているので、これからはスマートフォンなどのモバイルへのニーズに、ユーザーエクスペリエンスも含めて応えていきます。モバイル向けは年内にリリース予定で、Curlを知らなかった人でも使ってもらえたらうれしいですね。
また、Curlはクライアント技術のイメージが強いと思いますが、今後はサーバソリューションも提供していきたいと考えています。さまざまなシステムと疎結合できる柔軟性もCurlの特徴ですから、サーバーサイドも含めることで生産性をさらに向上できます。他社製品とのコラボレーションや、ERPのパッケージや生産ラインのパッケージとの連携ということも考えています。
近い将来では、Curlをよく知っているギーク的なユーザーには、オープンソースのライブラリを選択して利用できる環境を提供し、ビギナーや簡単にアプリケーションを作りたい人にはオールインワンで提供していきたいですね。さらに、将来的な展望としてはクラウドでの運用も含めたトータルサービスを提供し、SCSならではのソリューションとして展開していくことになるでしょう。
求められる「モバイルへの対応」
直近ではモバイル対応でしょうか?
三野氏
一番はやはりモバイルですね。開発体制も現在デスクトップからモバイルにシフトしてきており、進んでおりますが課題もあります。
スターン氏
|
モバイルデバイスには、様々な機種があり、機種ごとに画面サイズやユーザインタフェースも異なります。また、マウスを使わない仮想的なタッチ入力が採用され、リソースやスペックも多様です。
|
|
小段氏
Curlには多くのユーザインタフェース用のAPIがありますが、現状のものを流用するのか、あるいは新しい機能が必要なのか、またその差はなんなのかは非常に悩むところですし、重要なことです。
三野氏
Curlではモバイル版として「Curl Lite」のコードネームで動いていますが、エンジンに実行エンジン(RTE)を積むわけではなく、Curlの開発環境からHTML5、CSS3、Javaスクリプトを出力してアプリケーションを生成する、いわゆる『Embedded Web View方式』という形でのモバイル対応になると思います。 何がデファクトになるかはまだ判断できませんが、リソースやアップデートサイクルの速さを考えると、結論としてはデファクトのHTML5に対応することになると思います。一方でパフォーマンスが求められる処理というのはPCで作業するはずですから、Curlそのもののパフォーマンスはさらに高速にしていきます。
最後に、それぞれメッセージをお願いします
三野氏
Curlの開発者を対象としたセミナーを実施しています。7月からはOSSを使った開発のハンズオンなどもやっていきます。また、開発者の講演も考えています。今はメニュー体系がありませんが、
有償サポートの提供も考えています。その一方でコミュニティも充実させ、無償サポートとして利用できるようにしていきたいです。また、コミュニティのなかで開発者ブログも公開する予定ですので、開発状況などを告知したり、コードへのフィードバックをいただければと思います。
小段氏
スターン氏
開発者の方々には、ぜひOSSを広げて欲しいと思います。興味を持って中身を見て、どんどんコラボしていくことが刺激となり、より良い開発のアイデアを引き出していくことにもつながると思います。
ありがとうございました
Curlの統合開発環境や、今回紹介したUIコンポーネント群「Curl EXT」は、住商情報システム株式会社のサイトより無料でダウンロードできる。これまでCurlに触れたことのない開発者は、ぜひ開発の柔軟性や生産性を体験してみてほしい。
参考資料