使っていたPCで電源ボタン長押し
使っていたPCで、電源ボタン長押しをせざるを得ない事が(時々有るのですが)有り、
何でなのか少し調べたのの1つとして、
- ソフトウェア分野における、レースコンディションというのはどの様な
位置付けになりますか?
というお題を、この前入った有料Geminiで使えるコースの1つの、
- 「Deep Research with 2.5 Pro」*1
で質問しました。
最近のマルチスレッドのPCで、レースコンディションが固まる原因では無いか?と思ったからです。
その中に解せない記述が有りました。
不変オブジェクト?
- 6.4. イミュータブルオブジェクト(不変オブジェクト)の活用 (Utilizing
Immutable Objects)*2
が、
- 別のスレッドがその中途半端な状態を読み取ってしまうといったレースコンディションの典型的なシナリオを根本から排除します。
というのです。
関数型プログラミング界隈の論調そのもの
不変オブジェクトは出来て以降、
- 使われるだけ
となるはずです。そして、
- 往々にして、不変オブジェクトは、末尾に連番を付けた複数の(同用途の)ものが同時に使われる事が多くなり、
- それらを選択して選ぶ
事が必要となり、
- 複数の不変オブジェクト+それらを選択
の際に、結局はレースコンディションが出来てしまう事が、十分に有り得ます。
「根本から排除」というのは、プログラム全体を考えた場合、余りに早計です。
一事が万事
前に「現象学的観点 1」で述べた、「制御の反転*3」でもそうですが、
- 細部で良い(「根本から排除」の様な)結果を得る
- 根本解決だという
- しかし、その1つか2つ外側まで視野を広げると、全く改良されていない
- かえって、見通しが悪くなってしまう場合も
というのが、(批判されるべき)関数型プログラミングを信望する人間の、典型的な論調です。
結論
これからも「何指向でもダメな時はダメ」で、良くなっていない案を根本的解決と喧伝される事による、一種の出版バイアスで、プログラミングが嫌いになる人は存在し続ける事でしょう。