エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

日本語を日本語に翻訳する

パターン指向リファクタリング入門」を読んでいます。一つ一つの事柄を読んでいくと、普段わたしがソフトウェア開発をする中で、よく感じることが裏付けを持って書かれてる、と感じます。本家「リファクタリング」を読んだときもそうだったのですが、自分の嗅覚は、それほど間違っていない、と感じました。
ただこれを、ひとに説明しようとすると、難しい。具体的なメリットを説明しても、相手はそれがメリットとして感じてくれない。
リファクタンリングでは、形は変わっても、意味はかわりません。ピンとこない人は、形が変わったら意味が変わると感じてしまっているのかもしれません。もちろん、入力も出力も結果も同じだからと、理屈ではわかっていても、それらが同じものだという感覚が、持てないのかもしれません。

@ITで「ITエンジニアにも必要な国語力」という連載が始まりました。その中で、「図解には読解力が必要」と、国語力の必要性を説いています。同感です。

リファクタリングに必要なのは、実は、この国語力のような気がします。リファクタリングは、プログラミング言語からプログラミング言語への「振る舞いを変え」ずに「形を変える」ことですが、「振る舞いを変え」ないよういするためには、それの意味するところを、理解する必要があると感じるからです。

要求から設計を起こすのも、実は同じこと。要求を説明した日本語の文章を、プログラムを構築するための設計の日本語の文章に、翻訳する作業。プログラミングは、自然言語プログラミング言語に翻訳する作業。これは、こじつけっぽいですが。でも、ソフトウェア技術者に必要なのは、本当はそんな能力なのかも知れません。