【2012年3月19日の朝礼でのスピーチより】
先週、16日にFirefox 11がリリースされました。
このリリースから3次元によるHTML構造の視覚化機能が搭載されています。Tiltと呼ばれる機能で、HTMLを解析してDOMツリーを立体的に表示しています。これを自由に動かして見たい部分をズーム、パン、ティルト(名前通り)できます。
見るだけではなく、特定のブロックをポイントするとその部分のHTMLソースが表示されますので、複雑な構造のHTMLドキュメントをわかりやすく見ることができ、解析に役立ちそうです。TiltはこのままXMLエディタとしても使えるのではないでしょうか。これまでは手書きで紙の上(2次元)にブロックの構造を描いたものですが、Tiltがあればそのまま納品ドキュメントにもなりそうです。
映画の世界ではかなり前から3D作品が製作されておりますが、プログラミングの世界にも3Dが実用的なツールとして提供される時代になったと感じます。こういったアプローチが進めば、クラスの派生元をたどる、コーリングシーケンスを表現する、例外処理の流れを追う、サブクエリーを持つ複雑なSQL文のデバッグなど、色々なものに応用されそうです。
実際、オブジェクト指向という考えが出てくる前のいわゆるK&RのC言語までの時代は、処理の流れは2次元的でした。ロジックは平面上にフローチャートで表現できるものであり、X,Yという座標軸でものを考えるのが普通でした。
それがオブジェクト指向の時代となり、私が感じていたのは考え方が立体的になったなということでした。それと同時に、平面的なものの考え方ではついていけないということも感じておりました。
オブジェクト指向を技術者に学ばせる際、なまじ非オブジェクト指向言語の経験が長い人よりも、初めてプログラミング言語に触れる人に教えるほうが、習得が早いというようなことを聞いたことがあります。これは、2次元の世界で自分の思考を作り上げてきた人にとって、2次元の延長で3次元を理解しようとするからでしょう。
いずれ、3Dモニタに向かって3D眼鏡をかけたプログラマが3Dマウスを操作してプログラミングするようになるのかもしれません。