日本語命名について本気出して考えてみた
- soudai1025
- 3756
- 0
- 1
- 1
煽られたのでまとめます。
というわけで本流
テスト書いてた時にふと思ったことをツイート
テストコードで日本語名methodよく使うんだけどUTF8で統一された環境だしメソッド名や変数名に変な名前つけるくらいなら日本語名使うのもありなんじゃないかなって思ったりもするんだけどなかなかプロダクトで勇気でない。
2015-05-05 02:04:57寝て起きたらきょんくんさんからレスついてた。
@soudai1025 僕もたまに思います。ただ、ものにもよると思うんですけど、日本語だとまた違う感じで命名しなければいけないのでいつもそこで諦めますね。。。日本語で考えるのが難しいというか。英語と日本語だと言語学的にも扱うものが違うというか。 [うさみみ*´×`*エンジニア]
2015-05-05 07:50:01ちょっと意識高い高いした
@kyon_mm 僕はプログラミング言語でも「サピア・ウォーフの仮説」はあり得ると思ってて(昔Matzも言ってた気がする)更に言うと言語内で利用する自然言語もクラス構造だったり設計に影響すると思うんですね。なので英語の方が目的をハッキリさせるのに向いてると思います(続く
2015-05-05 10:52:11@kyon_mm でも拙い英語と成熟した日本語ではどちらがより良いイメージを作れるかというと成熟した日本語と言うパターンもあり得るんじゃないか?と思ったりするんですよね。それをテストコードを書くときに感じる事が多々あるのでチャレンジする価値はあるかなと思います。(続く
2015-05-05 10:55:57@kyon_mm 例えば読む、読んだが英語だと両方「Read」だったりするじゃないですか。メソッドも明確な名前をつけるべきとか。そういうところは日本語名の方が適切に出来る事もあると思います。ただ命名に自由度が高すぎてgrepに弱いとかあるので命名規則が必要かもしれませんが。
2015-05-05 11:00:27超わかりやすく僕のフワッとしたところを言語化していただいた
@soudai1025 いいですね。自分がよく思うのは、受動態や使役文の違いが大きいとかですね。メンタリティがちがうというか。日本語だと「彼は雨でずぶぬれになってしまった」だけど英語だと「雨が彼を濡らした」みたいになりますよね。そもそもオブジェクトに対する認知が違う。
2015-05-05 11:15:44@soudai1025 あと、受動態に対する捉え方って意外といろいろ違うとか。「AがBにXした」はAさんの行為に着目しているけど、「BがAにXされた」はXという事象に着目している。というように捉えがちなのが日本人には多いとか。
2015-05-05 11:17:32@soudai1025 文法や語彙をどう捉えるかという言語学という意味でも英語と日本語には大きく差異があると考えることも出来て、そのうえでプログラミング言語にするときは、まさに小説を書くかのように、プログラマーが世界をどう捉えているかが重要というか。
2015-05-05 11:19:06@soudai1025 たぶん、日本語でプログラミングするととても、ある面ではわかりにくくなるし、ある面ではコンテキストを非常に重要視するような書き方になると思います。例えば、「読む」だけでも「音読」「黙読」「心を読む」とかたくさんありますよね。
2015-05-05 11:20:54@soudai1025 文化と語彙がプログラムコードに表現することはまさに文芸的プログラミングの台頭といえるし、僕はそれをまずは、タスク管理とテストコードで実践している感じです。(多分生粋のBDDerとかDDDerはそうなんだと思います。
2015-05-05 11:21:59ちょっとだけ周囲に波紋が広がった
こざけさんがOptionの話をしてたので振ってみた
たしかにいきなりプロダクトで使うのは怖い。
あとこのまとめにはOptionの話は出てきません
こざけんはLLやれば良いんじゃないかなと思ったけど下手にPHPを進めるとマサカリで死ぬのでそっと胸に閉まっておいた。
2015-05-05 11:03:39@soudai1025 twitter.com/garbagetown/st…
2015-05-05 11:04:38こざけさんのタイポ率と固有名詞のあやふやさと天然っぷりを見ていると、この人にLL書かせたらどうなっちゃうんだろうと思う
2015-05-03 15:03:23