アカウント名:
パスワード:
ここ何年か、オブジェクト指向分析設計やオブジェクト指向プログラミングなどを推進しているが、プロジェクトの規模が大きくなるとどうしてもうまくいかない、これはいったいなんなんだろうか?と悩んでいる。
アラン・ケイだったか、誰だったかの記事かBlogで、Smalltalkを使うとこんな感じで英語みたいになるんだよ、と書かれているものをみて、ハッ、っと思った。我々日本人ではこの感覚は英語を理解していないとできないし、これが案外オブジェクト指向のギャップではないかと。
英語圏のひとは、UMLでクラス図を描いても、そのままそれがコードになる。我々は、日本語を一旦英語にすることで、一呼吸おく必要がある。
オブジェクト指向の世界では日本語がいろいろ足かせになっていると感じている人、他にいませんか?
英語関係ないと思うなあ。「もの」という概念が日本と欧米とで違うわけでもないはずなのだし。「擬人化」だってどちらの文化圏にも大昔からある考えかただし。
せいぜい違いといえば語順だろうと思います。で、それはOOPかどうかじゃなく、プログラム言語の文法の問題でしかない。SVOかSOVかの違い。
たとえばLispの亜種として手続き名をリストの最初じゃなく最後に書くというルールにした実装が有ったが、要はその程度の差でしょう。
単語や語順がより日本人(日本語)に近いような「文法」の言語を作れば済むことであって、その言語がOOP言語か否かで特段の違いが出るとは思いにくいです。
(日本語とOOPとのバランスという意味では、無理に日本語に傾倒しすぎた「なでしこ」系よりも、プログラム言語であることを隠そうとしていない「ドリトル」のほうが、筋が良いと思っています。余談ですがドリトルの単語は単なるリソース設定でしかないので、設定変更一発で韓国語モードになるらしい。)
まずは例えば「Javaを書くときクラス名やメソッド名は出来るだけ日本語を使う」などを実践してみるといかがでしょうか?つまり概要設計から実装に至るまで、せめて単語だけでも日本語を貫くんです。翻訳コスト(意味のブレ)は馬鹿になりませんから、それを排除できるだけで相当なコスト(バグ)削減になると私は踏んでます。
#日本語を許さないCheckStyle設定を渡されて悶絶してるのでAC。もちろん似非英語やローマ字ブレのオンパレードも有ります。
ところで、むしろ日本人がソフトウェア(OOPに限らず)をするときにシンドイなあと感じるのが、曖昧に考えることに慣れすぎているという点です。キッチリ分けることを面倒がるというか忌避してるというか。人間(日本の)はそれで動くかも知れないけど、それじゃコンピュータは動かないんだけどなあ…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
オブジェクト指向と英語 (スコア:2)
ここ何年か、オブジェクト指向分析設計やオブジェクト指向プログラミングなどを推進しているが、プロジェクトの規模が大きくなるとどうしてもうまくいかない、これはいったいなんなんだろうか?と悩んでいる。
アラン・ケイだったか、誰だったかの記事かBlogで、Smalltalkを使うとこんな感じで英語みたいになるんだよ、と書かれているものをみて、ハッ、っと思った。
我々日本人ではこの感覚は英語を理解していないとできないし、これが案外オブジェクト指向のギャップではないかと。
英語圏のひとは、UMLでクラス図を描いても、そのままそれがコードになる。我々は、日本語を一旦英語にすることで、一呼吸おく必要がある。
オブジェクト指向の世界では日本語がいろいろ足かせになっていると感じている人、他にいませんか?
Re:オブジェクト指向と英語 (スコア:0)
英語関係ないと思うなあ。
「もの」という概念が日本と欧米とで違うわけでもないはずなのだし。
「擬人化」だってどちらの文化圏にも大昔からある考えかただし。
せいぜい違いといえば語順だろうと思います。
で、それはOOPかどうかじゃなく、プログラム言語の文法の問題でしかない。SVOかSOVかの違い。
たとえばLispの亜種として手続き名をリストの最初じゃなく最後に書くというルールにした実装が有ったが、要はその程度の差でしょう。
単語や語順がより日本人(日本語)に近いような「文法」の言語を作れば済むことであって、その言語がOOP言語か否かで特段の違いが出るとは思いにくいです。
(日本語とOOPとのバランスという意味では、無理に日本語に傾倒しすぎた「なでしこ」系よりも、プログラム言語であることを隠そうとしていない「ドリトル」のほうが、筋が良いと思っています。余談ですがドリトルの単語は単なるリソース設定でしかないので、設定変更一発で韓国語モードになるらしい。)
まずは例えば「Javaを書くときクラス名やメソッド名は出来るだけ日本語を使う」などを実践してみるといかがでしょうか?つまり概要設計から実装に至るまで、せめて単語だけでも日本語を貫くんです。翻訳コスト(意味のブレ)は馬鹿になりませんから、それを排除できるだけで相当なコスト(バグ)削減になると私は踏んでます。
#日本語を許さないCheckStyle設定を渡されて悶絶してるのでAC。もちろん似非英語やローマ字ブレのオンパレードも有ります。
ところで、むしろ日本人がソフトウェア(OOPに限らず)をするときにシンドイなあと感じるのが、
曖昧に考えることに慣れすぎているという点です。
キッチリ分けることを面倒がるというか忌避してるというか。
人間(日本の)はそれで動くかも知れないけど、それじゃコンピュータは動かないんだけどなあ…