開発者からのメッセージ〜最終回
メッセージ:そして未来へ〜Shade 開発の現在と将来
Shade チーフエンジニア 時枝敏也
みなさん、はじめまして。時枝です。
Shadeを作り続けて、20年になりました。
いままでこのような形で、みなさんにメッセージを発信することがなかったのですが、Shadeの開発手法に関して記念すべきバージョンとなったShade 8の発売に際して、この場を借りてShadeの開発ポリシーを紹介します。
段階的な進化と汎用機能の強化
Shadeの進化は、まず過去のShadeと、使い勝手や仕様の互換性を保ちつつ、段階的な進化を続けて行くものであると考えています。
また、ユーザーからの要望を反映して、ある目的に特化した機能を増やしていくだけでなく、視野を広く保ちながら対極的な考え方も考慮しつつではありますが、汎用的な機能を強化していくアプローチをとっています。
Shadeの「扱いやすさ」
シンプルなインターフェイスのShadeには、常に「初心者でも使いやすいインターフェイス」が求められていますが、具体的にどのようなソフトウエアデザインが「使いやすさ」を実現できるのか、正解へのアプローチには数多くの選択肢が存在することも事実です。
改善したプレビュー
そこで、現在のShadeの操作や仕様をより合理的かつ直感的にすることを第一に改善しています。
例を挙げるとShade 7、Shade 8にかけて行なったのが、作業の流れを止めないダイアログ表示や、スライダの操作にリアルタイムで反応するプレビューなど、使い勝手に直結する部分に関する徹底的な機能改善です。
他にも、Shade 8ではキーボードショートカットを併用しなければ扱えない機能にボタンやメニューを付けるなど、数え上げられないほどの変更を加えています。
Shade 8ではこのような改善を重ねていくことで、統一感のとれた、矛盾のないインターフェイスが提供できていると自負しています。
現在の開発体制
ご存知かもしれませんが、以前のShade開発はアイコンやマニュアルの作成なども含め、ほとんどすべてのプログラム開発を私が行っていました。そのために、機能拡張が行いにくいといった声があったことは事実です。
現在、マニュアルやアイコン、搭載しているプラグインはもちろん、プログラム本体を、たくさんのスタッフと共同で開発しています。
Shade 8では、インターフェイスの改善やポリゴンメッシュの編集、アニメーション機能など、たくさんの機能が強化されていますが、その多くが、私だけではなくたくさんのスタッフ(いままで公開されてきたメッセージもご覧ください)と共同で開発した成果です。
時枝の役割
私は、新たなバージョンのShadeを作るたびに「今はじめから作り直して今完成したとしたら、どのようなものができあがっている『べき』か」と考えています。必要とあらば積極果敢にソースコードを変更し、将来性のある開発環境で、スタッフが協力してShadeを開発できるシステムを提供し続けることが、私の最も大きな役割です。
一例を挙げると、Shade 7からMac OS X版のShadeやプラグインは、Mac OS Xの標準開発環境であるXcodeで開発できるように開発環境を整えました。Shade 8は最新のXcode 2.1でビルドしています。Xcodeは(現時点でいろいろ問題はあるが)将来性が豊か、という大局的な流れを判断した結果です。また、CodeWarriorとXcode(gcc)の互換性の問題から、Shade本体がCodeWarriorで開発されているとプラグインもCodeWarriorで、Shade本体がXcodeだとプラグインもXcodeで開発する必要があります。将来的にXcodeに移行するのなら、社内、セカンドパーティ、サードパーティ、エンドユーザのプラグインデベロッパの痛みができるだけ少なくなるように、できるだけ早い時期に一度だけ痛い思いをして移行するのが最善、という理由もあります。
また、Shade 8では、いままで独自実装を用いていた部分を、BoostやC++標準ライブラリ、expat、OpenExr、zlibといったライブラリを用いて開発できるように内部コードを大きく変更しました。目に見えにくい変更ですが、近日公開する64bit OSへの対応版を含め、スタッフや、今後サードパーティが開発を行う場合の開発効率が良くなっていくための重要な変更です。ライブラリではなくてファイル形式ですが、形状ファイルやリソースにXMLを利用しているのも、同じ趣旨といえます。また、この辺りは、先に書いた、視野を広く保つ、対極的なアプローチも考慮するということが現れている部分でもあります。必ずしも盲目的に標準ライブラリ、標準フォーマットを採用するのではなく、例えばリソースのフォーマット(とそれを読み込むライブラリ)は、世間にある標準(的)フォーマットを評価した結果、あえて独自に実装しています。Xcodeも含めて新しい開発環境、ツールへの移行についても、盲目的に新しい環境に移行するというわけではなく、トキエダの人体実験で良好だったら移行し、それでもダメだったら元に戻れるという状態も維持します。実際、過去の例でも、Visual Studio 2002には人体実験の結果移行「しません」でしたし、CarbonからCocoa、CodeWarriorからXcodeへの移行もそれぞれ1年ほどかかっています。
Shadeをより効率よく開発でき、みなさんによりよいShadeを使っていただくために、Shadeを作る仕組みを整備することが、私の役割となっています。
Shade 8、ぜひとも使ってみてください。
2005年7月15日:時枝 敏也
|