パスワードを忘れた? アカウント作成
13891282 journal
日記

dotkuwaの日記: ソフトウェアに関する「違う科学」 5

日記 by dotkuwa

博士の権威性を以って、企業活動で「合っている」とされている
科学を、
・古い、誤っている
と主張されると、通常、号を持っていない人間は太刀打ち出来ません。
 
ソフトウェア分野はまだ新しく、その様に主張される論点が
幾つも有ります。もっと古い分野なら、すでに検証され、教科書に
載っていて、ゆめゆめ、
・古い、誤っている
と主張されない様な、
・「違う科学」も、「合っている科学」も、企業の外部で専門的に
 学んでおらず、入社後、その科学に浸って、当たり前としてきた
 人間(職人だといわれれば、その通りです。)
では、思いもしない様な、
基本的な論点を、
・古い、誤っている
と権威性を以って主張され、現場の人間の意志を挫き、結果的に
誤りをスティグマとしてこすり付け、
(多くの場合)始末せずに逃げてしまう、
事が有ります。沢山あります。
 
不善も少ないが、善も少ない「エセ科学」より、「違う科学」の
方がたちが悪いゆえんです。
(時間が経った後で見た)客観的立場から見ると、「違う科学」の
不善は、量も質も隔絶しています。
 
----------------
 
「『違う』かどうか誰が判定するのだ」と当然、疑問に思われる
かと思いますが、それは、
・博士を採用する側
でしょう。
採用する側も、自社で『合っている』科学か、判定する資質は
有る筈です。これを無いと決めつけるのは、博士の見識の欠如です。
さすがに、現在の日本で、これが無いとするのは、時代錯誤です。
 
どの科学に親和し、方向づけて来たか? どこに進むか? は
ポット出の一求人者が決める事では有りません。
また、
本当にその科学を方向性としたら、世の中に貢献できると確信する
ならば、それこそ起業すべきです。
 
----------------
 
では、具体的に何が「違う」のでしょうか? 
自分が知り得る、経験済みの3点を披露します。
 
1番目は、「滑らかなカーブにフィットさせて推論出来るか」、
です。
ソフトウェアの基本単位の関数やオブジェクトなどは、
・それぞれが相異なり、エッジを利かせたり、角度を付けたり
 すればする程、良く
・類似性のある、滑らかなカーブにフィットさせて推論出来る
 様な事柄は、それら類似性を軸に1つにまとめるべきで、
・結果的に、基本単位間は「「「「非常に」」」」異なり、
・たとえばバグの発生を「何とか曲線」で近似する事は、
 ほんの些細な一致すら見ません。
・一々個別に因果推論をし「尽くす」事
がすべてで、事象を説明するどんな滑らかなカーブも存在
しません。根本的にしません。
 
2番目は、「第一原理を持つか」、
です。
ある人の見たシステムの見え方と、他の人の見た見え方は、
矛盾し得ます。
これは、
・調査・考察不足
とかでは無く、原理的な理由です。
ですので、設計書をいくら書いても、
・最終的な正解(様々な角度のテストを経て、得た結果)
とは異なります。
ですので、その「初めに書いた設計書」で合意し、
甲も乙も拘束されるとしたら、裁判が頻発して当然です。
 
3番目は、「表現が豊潤か」、
です。
ソフトウェアは、
・単純でテストが可能
な代わりに、
・文学や仏典(!)などと異なり、表現が豊潤
では有りません。
それゆえ、、表現が豊潤な分野で成功する、
・原典主義(ソフトウェアのプログラム至上主義)
は、破綻します。そうでは無く、
・他の分野から借りて来る、「キャッチーな」スローガン
 と、その時代の流行り廃りを持ちながら、
 (堅実な存在であるプログラムと)共生して、発展
します。見た目上、
・自然言語とプログラム言語の二元性
という風に見えます。一元にまとめる事は出来ず、
なぜ、出来ないかというと、
・プログラムの表現の非豊潤性
に求める事が出来ます。
これを、
・不純である、非科学的である
とするのは、「違う科学」者による侵略行為です。
 
まだ有るかも知れませんが、自分はこの3つしか知りません。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2019年04月20日 22時58分 (#3602934)

    ソフトウェア工学の基本にして至高は、「発注者の希望想定している機能がなるべく早く完成すること」です。
    それに付随して、「開発者はいかに楽をするか、間違えないようにするか」という目的が生じます。

    各種科学が周辺環境に制限されるように、ソフトウェア工学もツールやインフラなどに制限されます。
    他の科学と違うのは、その周辺環境が人によって大幅に異なること。
    より多くの環境で有効なベストプラクティスは存在しますが、必ず例外があります。銀の弾丸はありません。

    例えば地球上ではニュートン力学でほぼ十分でしょう。
    科学が進歩して宇宙空間に進出すればニュートン力学では不足で一般相対性理論などが重要になって来ます。
    そのような世の中でも、やはり地球上ではニュートン力学で十分なんですよ。
    ニュートン力学は間違っているといっても無駄です。計算コストに見合わない。
    もちろん宇宙に進出できませんから、活用できる範囲は限定されるでしょうね。

    どこで理論を切り替えるのか。どの状態が間違っているのか。
    簡単に言えば、トータルコストが無視できなくなった時ですね。
    一時的なものでなく将来永続的に。
    まあ開発者や開発会社が耐えきれないと判断した時ということでいいと思います。

    • by Anonymous Coward

      >例えば地球上ではニュートン力学でほぼ十分でしょう。
      逆に、そういう普遍的な制約はくり込まれてソフトウェア上には現れない
      様に思えますが、どうなのでしょう。

      普遍的で無いから、ソフトウェアでわざわざ記述しないとならなくなる
      けれど、
      その様な普遍的でない制約は、第一原理を持たないとしか思えません。
      (そう考えると、またそう考えた時に限り、「互いに話が通じない」現状を
       きれいに的確に説明できます。)

      • by Anonymous Coward

        普遍的の範囲が狭いだけです。
        同時に複数の命令は実行できない(何らかの工夫をしている)とか
        機械語レベルで命令はアトミックであるとか。
        処理速度はクロックに依存するし、ハードウェア性能は物理的特性に依存する。
        命令した通りにしか動かないし、命令通りに動かなければバグです。
        普遍的ではないものをなるべく普遍的なものにしようというのが、
        言語仕様とかライブラリ、フレームワークなどのプログラム系制約だったり
        ソフトウェア開発の方法論だったりです。
        それぞれきちんと読めば、なぜそうなっているのか、メリットやデメリットは何か、
        適用できる範囲はどこかなどが分かります。
        探せばインタビューなどで述べられているはずです。

        ニュートン力学の範囲でも、摩擦を無視できたり出来なかったり。
        空気抵抗を減らした方がいい分野と増やした方がいい分野と。
        車なんかだと最適解を導く方法が部分ごとに対立していてバランスを取る必要がありますよね。

        • by dotkuwa (9387) on 2019年04月21日 18時31分 (#3603199) 日記

          >普遍的の範囲が狭いだけです。
          >普遍的ではないものをなるべく普遍的なものにしようというのが、
          >探せばインタビューなどで述べられているはずです。
          自分が知る限り、最良の普遍的な言説でも、ウルトラ5つの誓い程度の
          ことしか言っていないと思います。
          それもこれも、第一原理の「不在」が原因だと思います。
           
          自分は第一原理の「不存在」とまで言っていいと思いますが、少なくとも
          「不在」は事実です。

          親コメント
          • by Anonymous Coward

            コンピュータの話であれば、全ての計算は論理演算で近似できるということ、
            ソフトウェア工学の話であれば、コンピュータは決めた通りにしか動かないことと人間は間違えるということです。
            なのでソフトウェア工学の発展とは、いかに人間に余計なことをさせないか、間違いを排除できるようにするかという歴史になります。
            はっきり言って当たり前のことなので、ウルトラ5つの誓い程度にしか思えないだけではないでしょうか。

typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...