森羅万象
こないだのDebug Hacks Conference以来、究極のデバッグ環境について何となく考えていたのだけど。
私は多くのコードをVisual Studio上で書いている。適当にコード書いてF7でビルド、F5で実行、おかしければその場で修正、おかしくなければ先に進む、と実にぬるい。動作モードがエディタなのかデバッガなのかというくらいの感じで、よーしデバッガ使うぞという意識は希薄だ。
他のブログを読んでるとマウスを一切使わないで書くのは別に珍しくないようだし(例えばGoogleブログ検索によれば、emacsが12万件に対して統合開発環境は4000件弱しかない、半分ネタであるが)、開発プロセス云々などの点からもだいぶ世間から取り残されてるかなという気もするのだが、楽に書けるのでやり方を変えるモチベーションが起きない。
あまり書いてる人がいない気がするので書くと、やはりGUIの統合開発環境は素晴らしいなと。構造体の内容を表示するのに、マウスでウォッチウィンドウにドラッグするのと、マクロを組むのとでは、圧倒的に前者の方が楽である。
今までできなかったことができるようになることを進歩や進化と呼ぶが、今までできたことがより簡単にできるようになることも進化と呼んでよいだろう、と「PHPer はある意味ソフトウェア開発の最先端にいるという話」を読んでそう思った。進化した世界では、マウスだけでてきとーにプログラムが作れるのである*1。動けばいいやとやっつけで書いたコード、汚いコード、無駄なコード、もしそのような杜撰なコードで目的が達成できるのなら、それはとても素晴らしいことだ*2。昔のスパコン並の処理能力を幼稚でくだらないことに使えるという贅沢は素敵だ。
デバッグの話というのは必然的に開発の話となるわけだが、そうなるとデバッガの話というのは開発環境の話になるわけである。「それはデバッガ関係無いですよね」というタイトルなのだが、むしろ「それデバッガでできるよ」ではないかと。デバッガにテスト機構とか色々詰め込んでいくと統合開発環境的なものになっていきそうである。一般的には、アプリケーションに出力機能、ユーザーI/F、ファイルシステム、スクリプト言語など様々な機能を加えて肥大化させていくと、最終的にはOSとしか呼べないような何でもありソフトウェアになっていくわけだが、デバッガも究極的には、使う人と作る人が同じI/Fで操作するOSみたいなものになりうるのかなと。森羅万象.EXEとかそんな感じで*3。そんなとりとめのないことを考えた。