dotkuwaの日記: もめる理由 2
プログラミングに関してもめるのは、
・自然言語の上位概念と下位概念
・それらを持たないプログラム言語
(個別のロジックを対応付けると最下層と言っていい
下位概念に対応付き、それを特定の条件下(キャラが被らない)
で数を沢山集めると上位概念に対応付く(かも知れないが、
不具合が有ると何にも対応付かない(バグ)))
という状況下で、理由が有ってもめるのだと思います。
まず、自然言語で説明をする時、
1.代表的な例から説明する(それには大抵上位概念に
相当する名前が付けられる)
2.今までに説明していない事は引用しない
事が一般的な原則ですが、
プログラミング言語では、(個人の感想として)7割の確率で誤りと
なります。
プログラミング言語で「代表的な例」を表現するには、
1.今までに説明していない事は引用しない(のは同じ)
2.最も特殊な例から判定する
3.それらすべての特殊な例以外こそが代表的な例と
なる。
からです。
それは、
プログラム言語では、最初から上位概念を表現出来ない
(結果的に表現出来るに過ぎない)ので、
★「代表的な例」を表現するのに、全ての特殊な例を
引用する必要が有る。
★「今までに説明していない事は引用しない」を守る為
には、先に特殊な例を説明しなければならない
からです。
今はまだ、個別の事は外国人から買って、自分らは全体を見れば
いいんだと言っていられますが、それが出来なくなった時に、
自分らがやらなければならない時には、そんな有りもしない全体
を担当しているとお金を稼げなくなると思います。
---------------------
また、プログラム言語で、(オブジェクトや関数などで)
名前を付ける事が重要だとされていますが、
これももめる原因です。
沢山のプログラムを書いた結果、自然言語で言う上位概念
を模倣する事に成功したひと固まりのプログラムに
名前を付けたいと思うのは、自然言語で考えている人間の
勝手な願望です。
AIなんて訳が分からなくても人の顔を区別したり、猫と
魚を区別したり出来る訳で、名前を付けたいと願うのは
人間の理由です。
それを、レビューと称してプログラミングの書き方に
対して適用するのは誤りです。プログラムは、各制御の
キャラが被っていなければ取り合えず動きます。
結果として、上位概念を模倣出来たと
しても、それは結果論です。
なので、自然言語の宣言的で先験的な表現を以って合意と
しても玉虫色で、特定的な名前を付けてもプログラムで
うまく行くやり方となるとは限らず、
合意に矛盾(プログラムが失敗する)が生じ、
★もめる
★けんかになる
だけです。
宣言的な表現は、
・自然言語の中では、黄昏に飛び立つ
・プログラム言語では、それがプログラム言語で
有る限り、無理であり不存在である。
(有るという時、それが指しているのは自然言語に過ぎない)
では無いでしょうか?
いや〜もうプログラミング能力じゃなくてヒューマンスキルのみだよ (スコア:0)
> それらすべての特殊な例以外こそが代表的な例となる。
には同意。
まぁどういう事かっていうと
上級プログラマに必要なのはモメたりケンカしたりせずにすむヒューマンスキルとエスパー能力ってこと。。。
上位概念がどうかリクツを捏ねずに済むチカラってこと。。。
そして上位SEに必要なのは、それが自分より上手にできる奴が下位プログラマにいたら己のプライドなんか捨ててリクツで反論せず黙って認めてやれる度量ってこと。。。
プログラミング言語とか関係ないよ。コミュ力だよ。俺は35歳になってようやく悟った。
Re:いや〜もうプログラミング能力じゃなくてヒューマンスキルのみだよ (スコア:1)
コメント有難うございます。
自分は、プログラム言語と自然言語の2元がやっぱり
いいです。
2元にすることで、
・オブジェクト指向は純粋にプログラム言語だけの
観点からは、あまり意味のない、メソッドやフィールドの
所属に関して決め手の薄いルールしか無い言語要素だ!!
・しかし、自然言語からすると「中位概念」を記録するに
たる位置づけとなって非常に良い言語要素だ!!!
・犬や猫でオブジェクト指向を説明すると破たんするのは、
犬や猫は、オブジェクト指向の言語要素的には、
上位概念過ぎて、説明が破たんする。
・犬や猫には総合的な、キャラが被りまくりの含意が沢山
含まれているが、オブジェクトはその様な事の記述を予定して
いない。
とか議論できます。
それに、上位SEがお客側により強く立ちすぎると(彼らの
利害関係からして、そうなりがち)、なんでもかんでも
混ぜ込んだ上位概念を、そのまま丸投げして来る事も有る
訳で、上位プログラマーがそんな事を考えずに済むとも
思い難いです。
2元止む無しです。
---------------------
もっと言うと、下位のプログラマーに任せろと言いますが、
そういう人は、
・規約を改め、コメント禁止、既存のコメントも一律削除
とかする人ばかりです。
要するに、自分が書けないもので、そうするのです。
壊すわ、憎いから。ってなもんです。
コメントは、
・プログラム言語に直に対応する程度の下位概念を記載して
置く、唯一の場所です。
・自然言語は代名詞が弱く、自立した文書としてその程度の
下位概念を記載しても何が何だか、確実に分からなくなり
ますが、コメントとして記載するとその問題がきれいに
解決されるのです。
という良いことだらけの物ですが、自他ともに認められた
訳でもない下位のプログラマーは、プログラミングは出来ても
コメントが書けない人だらけなのも事実だと思います。
これが出来ないのも、コミュニケーション能力不足の一つ
だと思います。