「弱い毒」とは具体的にプログラミング分野では何になるのか?
歴史的に見て、
- 名前の接頭語
- 継承
で「弱い毒」が発生し、絶対ダメなやり方となりました。
結論から言いますと「弱い毒」とは具体的にプログラミング分野では、
- 厳密で
- 分かりやすい
だと思います。プログラミング言語は大抵厳密で、ちょっと間違えるとするエラーになりますし、名前の工夫は分かりやすさの第一歩だと思います。
一つづつなら何の問題もなかったはずですが、
ただ、その2つを結びつけると「弱い毒」になります。
「弱い毒」とは、
- 初学者の学習には役に立つ
- 何かやりにくさが有るが、学習を進める上の有益な困難だとも取れる
(若い雄のごきぶり) - しかし、実用的なプログラムを作ろうとし始めると、とてもやっていられない毒になる。
(雌のごきぶり)
という問題が発生し、数学的にも根拠があり(順序関係とか)、誰が見ても良いやり方だとされていた手法が、絶対にダメなやり方に成り下がるのです。
実例1:名前の接頭語
コボルでは手続き(関数みたいなもの)の名前は英大文字数字8文字(先頭に数字はダメ)でしたが、
私のやっていた所では、先頭3文字はシステムの接頭語として固定でした。
ただし、その接頭語は全部で1つでした。
もっとも、手続き全部で50〜100個程度だったので、3文字を(ほぼ)無駄に使っても問題は有りませんでした。
MicrosoftのVisual Basic(VB.NET含む)は、
- Dim int何ちゃら As Integer
- Dim str何ちゃら As String
- Dim dte何ちゃら As Date
とか型の接頭語をつけるのが通例でした。そしてその頃は別にこれで何も言われる事は有りませんでした。
さて、接頭語の工夫くらい、
- 言語の改造も
- 国際規格も
不要です。勝手に色々試せるはずです。単なる名前の先頭文字の工夫に過ぎないのですから。。。
もっと内容に踏み込んだ、きちんと考えた分類に基づいた接頭語のセットを設計しなかったはずはありません。絶対にそう思います。
しかし、その様な工夫について、何か公開された記事・書籍等、全く見たことがありません。
名前の分かりやすさに加えて、厳密さも付け加えた、先頭文字の工夫には「弱い毒」が出来、途端に絶対ダメなやり方に格下げになる為では無いでしょうか?
実例2:継承
継承だって、一番の親からの順序関係とか有って、数学的根拠も十分有る手法だったはずです。数年前までは、推奨されこそすれ、これで何か言われる事は無かったはずです。
それは、多分、
- あるクラスを継承するとき、継承元と継承先のクラスの振る舞いを同じにしよう
とか、書き方の分かりやすさに加えて、厳密さも付け加える試みが、継承に「弱い毒」をもたらし、途端に絶対ダメなやり方に格下げになる主要なきっかけを与えたとしか思えません。
将来予想:静的な型
今は、内容には触れず、素晴らしい素晴らしい、としか言っていないので、問題は起きような無いのですが、
- 厳密で
- 分かりやすい
に踏み込んだ途端、継承と同じ理由で、途端に絶対ダメなやり方に格下げになると予想出来ます。
結論
これからも「ごきぶりの雌と研究者」の例えの通りの毒が回り、プログラミングが嫌いになる人は存在し続けることでしょう。