ビジネスソフトの開発をしようとすると、最初の言語やツール、フレームワークを選ばなければならないという問題に直面します。このことは誰もが分かっておかなければなりません。しかし、プログラミング産業には、言語や補助ツールが驚くほど多く存在するため、「何を最初に学ぶべきか」という問題は非常に難しいです。
ビジネスアプリケーションとはどのようなものなのでしょうか?
一般的に、ビジネスアプリケーションは非常に大きいタイプのソフトウェアソリューションで、現代の産業のどの分野もカバーしています。しかし、あらゆる種類のソリューションがあるにもかかわらず、そのようなアプリケーションの持つビジネス機能は非常に限られています。実際に、どのビジネスアプリケーションも平均12のモジュールを用いて実行されています。
あらゆる種類のソリューション(貿易、銀行、製造、医薬、教育など)があるにもかかわらず、すべてのビジネス機能は数百のウィジェットとモジュールを用いた一つの工程に収めることができます。これは非常に優れた初期データと言っても差し支えなく、開発プロセスを統一することができます。
一方で、ビジネスアプリケーションの顧客の要求は概してとても似ており、「時間・費用・質」の「三本柱」に帰着することができます。膨大な数のユーザーインターフェースライブラリが市場に出る際に、単一化や単純化されるのはこのためです。
では、近い将来における最適なアプリケーションへの要求を明らかにしてみましょう。
まず初めに、言語の選択です。
誰も驚かないでしょうが、これはJavaScriptに集約されます。そのため、JSは地球上で最も人気のあるプログラミング言語となっています。これは、プログラムの性質上ほとんどのライブラリがJSのソリューションとなっており、Web技術に支配されていることによります。新しく革新的なソリューションの多くがブラウザを使って操作されています。かつては「検索エンジン」と呼ばれていたものが、現在ではある意味「最高レベルのコードインタープリター」ともいえる巨大な多機能マシンになっています。
このことを考えると、ブラウザアプリケーションが選択されるのは当然のことです。さらに、スマートフォン、タブレットPC、デスクトップのそれぞれに合わせて開発する必要がなく、すべてのデバイスで等しく動作するアプリケーションが求められています。このこともJavaScriptの人気を高めています。
では、代表的なJSツールを見てみましょう。それぞれのツールに短所と長所があり、ユーザーは自分に適したものを選ぶ必要があります。
Angular
ソフトウェア開発の世界に入るとき、多くの人はまずこのフレームワークから使い始めます。この記事で紹介するツールの中でも、近年最も人気のあるツールの一つです。
まず、Angularの長所は、成熟したフレームワークであるAngularならではの大きなコミュニティです。もちろん、多くのユーザーは、長い間愛されてきた馴染みのあるフレームワークを、比較的馴染みのない新しいものに、たとえそれがもっと便利で速いものであったとしても変えようとはしません。
Angularの場合、フレームワークがかなり「重い」という理由でユーザーの一部を失いました。限られたSEOサポート、学習の難しさ、新バージョンリリース時の特定の機能など、多くの点で、経験豊富なプログラマーの期待には応えられません。そのため、Angularではなく、ReactやVueなどの他のプログラムが選ばれることも多いです。
それにもかかわらず、Angularは、Guardian、PayPal、Sony、Upworkなど、多くの人気プロジェクトで使用されています。
他の分野における多くの「重い」システムと同様に、Angularは信頼性が高く強力なフレームワークが必要な場所、つまり大規模で本格的なサイトで使用されています。このような理由から、Angularを選択すべき場合が4種類あります。大規模プロジェクトの開発、TypeScriptへの関心、リアルタイムアプリケーションの作成、スケーラブルなアーキテクチャの必要性です。
React
State of JavaScriptの調査によると、Reactは3年目にしてあらゆる格付けで一貫して1位を獲得しています。Reactは2013年にFacebookなどのソーシャルネットワークからリリースされたフレームワークで、ユーザーインターフェースを一連のコンポーネントに分割して開発プロセスを簡素化することを目標としています。
このフレームワークはネイティブ開発ができることが大きな利点です。その中でも、大規模なコミュニティ、充実したエコシステム、SEO対策における便性、最高のパフォーマンス、再利用可能なコンポーネントなどが特にすばらしいです。
一方で、欠点もあり、主なものは突然のアップデート、JSXの使用、ドキュメントの不足などです。
SPAやクロスプラットフォームアプリケーション、その他にもアプリケーションのアイデアを作成する場合は、このフレームワークがおすすめです。
全体として、Reactはほぼあらゆるビジネスアプリケーションの構築において、素晴らしいフレームワークです。しかし、残念ながら、Reactのライブラリはスイスナイフ問題に悩まされています。WebixやExt JSのような専門的なライブラリと同じ仕様でありながら、Reactの内蔵ライブラリは非常に限られたビジネス機能しか持っていません。そのため、このフレームワークは基本的なものとしてのみ利用し、専用ライブラリと合わせて用いることで、必要なビジネス機能を開発するための時間を大幅に短縮することができます。
Vue
このフレームワークは、近年の発見と言っても過言ではありません。全くの基本的な開発から突然、プロの間で人気のフレームワークになりました。
フレームワークの小ささ、反応性、詳細なドキュメント、TypeScriptのサポート、再利用性、学習のしやすさなどが、Vueの急速な成長につながっています。Vueのもつ機能の数は非常に多いため、その内多くの機能がメリットとデメリットの間でバランスをとっています。例えば、このフレームワークの驚異的な柔軟性は、たくさんの開発者を抱えるチームにとっては過剰なものかもしれません。
当初、Vueはアジア市場に焦点を当てていたため、アジアで大きな需要を獲得しました。一方で、このフレームワークには、コミュニティの小ささや大規模プロジェクトのサポート不足などの欠点もやはり存在します。小型で軽量なアプリケーション、または高性能でパフォーマンスの高いアプリケーションを作成する場合や、アプリケーションを短期間で市場にリリースする場合がVueの最適なソリューションとなるでしょう。
Ext JS
数年前、Ext JSは経験豊富な開発者の間であらゆる人気についての記録を更新し、当然のことながら彼らの尊敬を集めました。Sencha Ext JSはUIライブラリ市場の支配者であると誰もに認められた時期もありましたが、その地位は十分ではありません。というのも、ユーザーレビューによると、このライブラリは不必要に複雑で、パフォーマンスに大きな問題があると考えられているからです。
しかし、チームに経験豊富なExt JS開発者がいれば安心してプロジェクトを開始することができます。優れたドキュメント、多数のサンプル、機能的なユーザーインターフェースライブラリは強力な助けとなってくれるでしょう。また、AngularやReactフレームワークに特化した統合パッケージも、Ext JSの大きな競争力となっています。
Webix UI Library
現時点では、登場時と変わらず、最も機能的で高性能なライブラリの一つです。Webixの長所は、ビジネスアプリケーションだけに特化していることです。
また、先述のスイスナイフの比喩が否定的な意味で使われていたとすれば、ここでは多機能性の代名詞として使うのが適切です。Webixは本当にほとんどすべてのことができるからです。
Webixには100以上のUIウィジェットが搭載されており、どんなビジネスアプリケーションでも構築することができます。 その中で最も使用されているのは、10個のハイレベル・ウィジェット-SAPアプリケーションで、File Manager、Document Manager、User Manager、Chat-Messenger、Task Manager (Kanban)、Pivot、Spreadsheet、SQL Query、Scheduler、Report Builderです。
レビューを信じるのであれば、Webixはかなりシンプルで非常にエレガントなフレームワークであり、開発者がアプリケーション層のUIをプロトタイプ化して開発することをできる限り容易にしてくれると言えるでしょう。ユーザーには、複雑なウィジェットが小さなスクリーンサイズのデバイスと互換性がないことが欠点だと言われています。
DHTMLX
DHTMLXは、ビジネスのさまざまな分野で使われるインタラクティブなWebインターフェイスを構築するための豊富な機能を持つJavaScriptライブラリやUIコンポーネントなど、多様な製品を提供しています。
現在、同社の製品ラインは以下のようなソリューションで構成されています。20種類以上のUIコンポーネントを搭載したSuite、ガントチャートやイベントプランナーを使ってプロジェクトを管理するGantt and Scheduler、データの視覚化を担うDiagram、Excel形式でダイナミックテーブルを扱うよう設計されているSpreadsheet、Pivot、Rich Text Editor、ファイルのアップロードを便利にしてくれるVaultなど。
さらに、DHTMLX開発チームは、DHTMLX Ganttと統合してプロジェクト管理をより効率的にすることができるKanbanのリリースを準備しています。
DHTMLXの開発ペースには感心させられますが、その分、コンポーネントの使用例をすべてドキュメントに掲載する時間がないことも事実です。
DHTMLX ライブラリの紛れもない長所は、大量のデータを処理できることです。あらゆるコンポーネントを、特定のビジネスアプリケーションのニーズに合わせて簡単にカスタマイズすることができます。
Jquery UI
このユーザーインターフェースライブラリは「恐竜」と呼べるかもしれませんが、今でも最も人気のあるライブラリのひとつです。このライブラリをベースにして、多くのユーザーインターフェース製品が作成されましたし、JavaScriptライブラリの一群を生み出したのもこのライブラリです。
現在主流となっているAngularやReactのフレームワークがまだプロジェクトに入っていなかった頃がjQueryのピークでした。HTML5のリリースに伴い、jQuery UIは多くのユーザーインターフェイスの問題を解決に導きました。需要の減少により、現在はアップデートやウィジェットは非常に稀なものとなっています。
このライブラリのユーザーインターフェースコードは、よりモダンでエレガントなフレームワークやライブラリと比較すると、ぎこちない印象を受けます。HTML5規格以降、jQuery UIの機能の多くがモダンブラウザでjQueryなしでもサポートされるようになり、jQueryがが不要になったためです。
とはいえ、ライブラリ自体は練習やラピッドプロトタイピングに適したツールであることに変わりはなく、その点では正当な評価を受けています。このライブラリのユニークな要素には、今でも開発者の間で需要があるものがあります。
フレームワークとJSライブラリを使いこなせるよう、応援しています。