集団と個人の「利益を守る行動」の衝突として、
* 集団としては、その構成員たる個々人は代替可能である方が良い。故に、属人化は排除したい。
* 個人としては、集団から排除される危険は無くしたい。故に、「自分にしか出来ない」属人化を高めた方が良い。
というのが在るけれど、もしかしたら、
*「 集団内の属人化されたタスクを無くす」行動を取り、集団内の「無能で高コストな個人」を排除できる素地を作る個人
は、何方の立場にとっても有利だという事になるんだろうか。コレ自体を属人化出来れば尚良しな感じで。
集団と個人の「利益を守る行動」の衝突として、
* 集団としては、その構成員たる個々人は代替可能である方が良い。故に、属人化は排除したい。
* 個人としては、集団から排除される危険は無くしたい。故に、「自分にしか出来ない」属人化を高めた方が良い。
というのが在るけれど、もしかしたら、
*「 集団内の属人化されたタスクを無くす」行動を取り、集団内の「無能で高コストな個人」を排除できる素地を作る個人
は、何方の立場にとっても有利だという事になるんだろうか。コレ自体を属人化出来れば尚良しな感じで。
現行のオブジェクト指向プログラミング(OOP)、「意味的な型」と「能力的な型」をゴッチャにしているのが拙いのでは。
例えば、
```
int calcBmi(int height, int weight) { /* 略 */ }
```
……と、「身長」と「体重」という「意味の異なる型」に同じ型を使う一方で、
```
class XXX {
private int value1;
private int value2;
// 他は略
}
```
……という風に「2つの整数フィールドを持つ」同じ性質を持つ型で、「人間の身長と体重」「矩形の幅と高さ」を表しては駄目という事にもなっている。
(続く)
(続き)
OOPの思想に則れば `calcBmi()` は、
```
class Height { /* 略 */ }
class Weight { /* 略 */ }
class Bmi { /* 略 */ }
Bmi calcBmi(Height height, Weight weight) { /* 略 */ }
```
……でなければならない筈だが、こんな手間の掛かる事、誰も望まない。
「値の処理方法は、その値自体が知っている」というアイディアは良いのに、こんな風に自ら定義を曖昧にしてしまっているので、「OOPよー分からん」って人が居たり、「OOP完全に理解した」と思っている人間も実は「理解してない」(雰囲気で使っている)だったりするのではないか。挙句の果てには「OOPは糞だ」という人間が出てくる。
#TheDesk むっちゃ長文(縦に長い)tootを投稿欄に書いていると、無限に投稿欄が縦に伸びていって、投稿欄の高さがウィンドウの高さを超えると、投稿内容の下部が確認できなくなったり、投稿欄下部のボタン類が押せなくなったりする。
このアカウントは、notestockで公開設定になっていません。
@genbuchan それはまぁそうなんですけれど、挙げたような(理想と現実の差による)ダブスタを、皆、無意識的にやって(或いは目を背けて)いるよね?そうやって「運用」で適当やってるのが、OOPが分からんくなったり、糞に思えたりする原因なんじゃない?という話です。
じゃあその理想と現実の差を埋めるためにはどうすれば?というのは、私も答えが出せてないんですけれど。