ソフトウェアにおける名称とDSL

ソフトウェアの持つ機能・インターフェースの名称は、そのソフトウェアが扱う領域(写真管理、作曲、請求書の作成などなど)におけるDSLである。

これは、37signalsがiPhoto ‘09 and Domain Languageというエントリで主張していることで、言われてみればその通りなんだけど実際にソフトウェアを設計している段階ではなかなか思い当たらないことでもあります。

DSL(ドメイン固有言語 – Wikipedia)といっても実際に何らかの言語でコードを書くという話ではなく、機能に付けられた名称がソフトウェアの挙動や使われ方までもを左右するため、新しい機能やソフトウェアにおける用語は熟慮したうえで決定する必要があるということです。

例えば、37signalsのプロダクトのひとつであるBasecampの場合は「プロジェクトにおける人々のコラボレーション」という問題領域を扱っており、同社ではこれを

  • メッセージ
  • ファイル
  • マイルストーン
  • ToDo

というメタファーに切り分けて表現しています。Basecampの例だと具体的な効果がわかりづらいですが、この考え方のよりわかりやすい例としてAppleのiPhotoが挙げられています。


Originally uploaded by Quasimime

Before iLife ‘08, iPhoto’s domain language was the same as any other photo app. You had Photos and you had Albums. Then in iLife ‘08 something changed. Suddenly you also had Events in the mix. This is huge. Apple realized that people don’t just want to find photos. Go back to iPhoto’s domain: it’s that situation where you have a bunch of photos and you want to look at them and share them. When you’re in that situation, you don’t just want to see random photos. You want to see and share photos of certain things. Like photos of your wedding, photos of your trip to Maine, or photos of that dinner in Paris. These are Events. They’re part of the domain, and since 2008 they have been expressed in iPhoto’s domain language.

かつてのiPhotoでは、他のソフトウェアと同様に「写真」と「アルバム」という用語(ドメイン固有言語)が用いられていたが、iLife’08(に含まれるiPhoto)からは「イベント」という用語も使われるようになりました。これはつまり、iPhotoユーザーは単に写真を探したいわけではなく結婚式や旅行といったイベントの写真を家族や友人と見たり共有したりしたいのだ、ということにAppleが気付いたということです。

この考え方が正しかったと言わんばかりに、7日に発表されたiLife’09ではさらに「人々(Faces)」と「撮影地(Places)」という用語も導入されましたが、これもちゃんとiPhotoがどのように使われるかという点を意識した機能になっています。

ソフトウェアやサービスを設計する時には、対象とする業界や競合製品で使われている用語をそのまま真似るのではなく、そのメタファー・用語で問題ないかどうかをユーザーの利用シーンを想定しながらよく考える必要があります。用語を決定するということは、ソフトウェアの挙動や使われ方を決定するということでもありますから。

Comments are closed.