そもそも、なんでOMEを作りはじめたか?
電子メールソフトは何を使っていますか? 私もいろいろ遍歴してきましたけど、あちらが立てばこちらが立たず…。さらにはOutlook Expressでファイルを壊して大量のメールの復旧作業に一苦労。そこで、思いあまって、電子メールをやりとりする環境を作ることにしました。
メールソフトを使っていて常々思っていたのは、メールソフト独自のデータファイルに、メールが蓄積されるというのがほんとにいいことなのかということです。バックアップや一定の分類に従ったメールの整理などがかえって大変になります。Eudora式にテキストファイルで流れていれば、そのファイルを適当に移動すればいいのかもしれません。しかしながら、
という方針にすれば、大きくいろいろなことが変革できそうな気がしました。というのもオーバーですね。昔はこうした方式が一般的だったんですが、HFSフォーマットでは1ファイルが使う領域があまりに大きくなり現実的ではなくなりました。しかしながら、HFS+では状況がかわり、標準で4KB、フォーマットソフトを使えば最小単位は0.5KBということも可能です。1メール1ファイルは決して非現実的な手法ではなくなりっています。そして、ファイル単位でメールを管理することで、
ということが実現するのです。つまり、Mac OSをメール管理のベースとするわけです。ラベルでの色分けを使って、未読、既読、返信済の区別ができるようにしています。また、ファイル名に送信者、ファイルのコメントにメールのSubjectを表示するという方式で落ち着きました。
メールを書いたり、あるいはメールを読むには、まずベーシックな環境として
ということを考えました。私がふだんつかっているのがJedit3なので、このソフトでメールを参照し、またメールを作成することができます。
しかしながら、こうしたメール環境を構築できるのは、田中求之さんの、
なのです。基本的なメールのダウンロードや送信機能をこれらのソフトの力を借りることができるので、アプリケーション部分の作成に力を注ぐことができ、一定以上の成果が出せたと言えます。田中さんにはたいへん感謝しています。mboxer UVJ Mailer
こうしていろいろと実験を重ねながら、アプリケーション全体を作り始めると、まずはメールソフトに要求される機能と言うのはあまりに多いということを強く認識しました。それを全部作るのかと思うとちょっとぞっとしましたが、メールや設定をファイル単位で管理し、Mac OSの機能をなるべくベースにするということを考えると、
を作るというような方法が可能なのです。メールの受信だけを行うアプリケーション、分類だけを行うもの、新規メールを作成するだけもの…こうしてコンポーネント化された電子メール環境が構築されました。
おそらく、私一人だけではこうしたメール環境をすべて構築することは不可能でしょう。ここを読んでいただいた方で、ある一部分だけをアプリケーションとして作成したいと考えていただけるのであれば、ぜひともお願いしたいと思います。コンポーネント化してあるので、こうした開発モデルも可能だと考えます。
現在はアプリケーションはAppleScriptで作っています。
ので、スピード的にはそんなに悪くはありません。もちろん、別の開発環境を使ってもいいでしょう。たとえば、POPサーバを登録する機能は、現在はテキストファイルにエディタで書き込んでいますが、そのユーザインタフェースを作るなど、ネタはいくらでもあります。
そして、Mac OS X対応へ!
1メール1ファイル、そして処理機能のコンポーネント化を目指して、OMEはMac OS向けに開発をしてきましたが、Mac OS Xこそがこうした枠組みにより適した環境ではないかと前から思っていました。ただ、かなり根幹的な部分でJavaに依存していたため、
です。しかしながら、2001/3/24の正式版を入手したときに、すぐに開発にとりかかりました。
メールのダウンロードは、Mac OSではmboxerがありましたが、Mac OS Xでこのソフトを動かすよりも、fetchmail、procmailといった
メールの受信環境を構築しました。そして、メールファイルの作成、さらにメールの送信や返信のアプリケーションはJavaを利用して構築しました。
まだまだ、完成度は低く、一覧表示はそれほど美しいとは言えませんが、それなりに使える状態になっています。Mac OS X自体のバグのために、アイコンの表示やSwingアプリケーションの動作などさまざまな問題がありますが、とにかくMac OS Xでの開発を開始しました。
Mac OSとくらべて、大量のファイルがあってもそれほど重くならないなど、Mac OS Xなりのメリットもあります。また、
ものとも思っています。一方、Finder自体の表示に時間がかかることや、思った通りに機能が組み込めないことなどがありますので、これからまだまだ開発は続きますが、UNIXベースであることのメリットが少しずつは見てきているところでもあります。