Webサービスを開発していると、アプリケーションの中にはテーブルを多用する場合があります。現在作成中の「統計データ API エクスプローラ」は、その典型的な例です。それで、大量のデータを Excel のように便利に表示してくれる JavaScript ライブラリーを探してみました。

DataTables

この分野のライブラリーで、最も有名で、最も活発に活動しているのが、DataTables です。jQuery のプラグインで、HTML のテーブルにソート、スクロール、ヘッダー、フッター、編集等の機能を簡単に追加できるので便利なソフトです。使い易く機能が豊富なので、一般的な使い方では最もおすすめのライブラリーです。欠点といえばデータ量が多くなると重いことです。

jqGrid

DataTables についで有名なのが、jqGrid です。こちらも、jQueryのプラグインです。jqGrid は、DataTables ほどは親切ではありませんが、機能は豊富です。現在では、HTML Table も利用できるようになったり、サンプルも詳しくなっていますが、DataTables の方が使い易いのでどちらかというと開発者向けのライブラリーです。

SlickGrid

今回採用しようと思っているのは SlickGrid というライブラリです。機能は少ないし、データも JSON にする必要があるので、プログラマー向けのライブラリーです。しかし、大量のデータを処理できるライブラリーで、100万行のデータにも対応でき、APIも使えるということなので、今回のケースには最適だと思いました。現在テスト中ですがある程度使える目処がたちました。ライブラリーはいろいろありますが、有名なものを使うというだけでなく目的や用途に合わせて最適なものを選択することも必要だと思います。

少し話はそれますが、SlickGrid の作者である Michael Leibman 氏は、現在は Google 社のシニア・ソフトウェア・エンジニアです。Linkedin で調べると、SlickGrid は、Google 社に入社する前から作っていたそうです。欧米系IT企業では、有名なフリーソフトの作者は入社試験で圧倒的に有利だそうです。エンジニアtypeの記事「Twitterで働く日本人「開発現場はリアルなタイムラインのよう」」でも、twitterの非公式ライブラリを作っていて Twitter社に採用されたという日本人エンジニアが紹介されています。少し前に紹介した NLog の作者である Jaroslaw Kowalski 氏はMicrosoftのエンジニアです。このように就職に有利になるということも、世界的にはOSSのソフトウェアが盛んに作られている理由の一つだと思います。一方で日本のIT企業ではそういう話は全く聞かず、過酷な労働環境で「IT土方」になってしまっているのは非常に残念です。