開発にかかる労力

数あるタブブラウザの中でもそこそこ規模の大きいプログラムであるDonutPソースコードはおよそ4万5千行、そのコードを元に開発しているunDonutは約5万行のコードで成り立っています。Donut系はオープンソースですので何人もの作者により育まれてきましたが、それ以外のタブブラウザ作者はそれに匹敵するくらいのソフトウェアをほぼ1人で開発しています。正直この量を組み上げていくのは並みの労力ではないでしょう。新機能の追加、バグの修正、ドキュメントの整備と、要する時間も相当必要になります。

ちょっとここでタブブラウザ開発に必要となる知識をまとめてみようかと思います。

  • プログラム言語の知識
    • プログラミングするならこれを覚えないと始まりませんね。タブブラウザ開発に適した言語はC++,Delphi,VBといったところでしょうか。また、開発環境についても使い方を覚える必要があります。タブブラウザは結構大きめのプロジェクトですから、言語の習得でつまづいているようでは厳しいものがあります。
  • Windowsプログラミングの知識
    • たかだかウィンドウ1つ表示させるだけでもいくつもの手順を踏む必要があります。また、ボタンをクリックしたり、ウィンドウのサイズが変化した等のイベントを処理するための知識も必要となります。メニューにツールバー、ステータスバーにツリービューと、タブブラウザに一般的なバーツについてもそれぞれ使い方を習得しなくてはなりません。
  • ライブラリの使い方
    • いかに優秀なプログラマでも、一からプログラムを書いていたらいつまでも作品は出来上がりません。そのためライブラリと呼ばれる出来合いのコードを使って開発を進めます。それはさながら数学の公式を用いて問題を解くようなものです。当然公式、もといライブラリに関する知識もまた必要となってきます。unDonutではSTL+ATL+WTLという3つのライブラリを利用しています。SleipnirではMFC+BCGControlBar(+STL?)を使っているはずです。
  • IEコンポーネントに関する知識
    • IEコンポーネントブラウザである限り、このIEコンポを制御しないわけには行きません。IEコンポーネントはCOMという技術にて作成されているのでこのCOMに関する知識もまた必要になります。これだけでも相当に面倒な話ですが、IEコンポーネントに関する資料は大半が英語で、日本語の資料はほとんど得られません。高校程度の英語力があれば読むのに差し支えは無いでしょうが、結構嫌なハードルではあります。

これ以外にもあるでしょうが大体こんな感じでしょうか。これ全てに精通するなんてのは無理なわけで、普通は必要になったときに調べるわけです。

まあ、そんなこんなで日々開発が進められるタブブラウザの数々、作者さんたち相当頑張っています(私はそんなでもないですが)。シェアウェアだっておかしくないクオリティーのソフトがごろごろしている分野だと思います。そんなソフトが無料で使用できるのは実はけっこう凄いことなんだと思うわけです。