Scribble at 2023-04-08 09:22:31 Last modified: 2023-04-09 21:02:56

このブログでは、オブジェクト指向の開発がなぜコーディングとプログラミングのスキルを分断し、ソフトウェアの品質と生産性に悪影響を及ぼすのかを説明します。オブジェクト指向の開発とは、ソフトウェアをオブジェクトという単位に分割し、それぞれに属性や振る舞いを持たせることで、再利用性や拡張性を高めるという考え方です。しかし、この考え方にはいくつかの問題点があります。

まず、オブジェクト指向の開発は、コーダとプログラマの役割を分離させます。コーダとは、既存のオブジェクトやライブラリを組み合わせてソフトウェアを作る人であり、プログラマとは、新しいオブジェクトやライブラリを作る人です。コーダは、オブジェクトの内部構造や動作原理を理解する必要がなく、インターフェースだけを使ってソフトウェアを作ります。プログラマは、オブジェクトの内部構造や動作原理を理解し、インターフェースだけではなく実装も考えなければなりません。このように、コーダとプログラマは異なるスキルセットを持ちます。

しかし、この分離は、コーディングとプログラミングのスキルの低下につながります。コーダは、オブジェクトの内部構造や動作原理を無視することで、ソフトウェアの仕組みや原理を理解できなくなります。プログラマは、オブジェクトのインターフェースに縛られることで、ソフトウェアの設計や表現力に制限されます。また、コーダとプログラマは互いにコミュニケーションが取れなくなります。コーダは、プログラマが作ったオブジェクトのバグや不具合に対処できなくなります。プログラマは、コーダが要求するオブジェクトの機能や性能に応えられなくなります。

したがって、オブジェクト指向の開発は、コーディングとプログラミングのスキルを分断し、ソフトウェアの品質と生産性に悪影響を及ぼします。ソフトウェア開発者は、オブジェクト指向の開発に頼らずに、ソフトウェア全体を理解し、設計し、表現することができるようになる必要があります。

Microsoft Edge のサイド・バーには ChatGPT に検索させるだけではなく、テーマを与えて作文させる機能もある。これが、大学のレポートの下書きとして使えるかどうかという話だけではなく、学術論文を作成するツールとして使ってもいいかという話題がある。日本の社会学とか文化人類学とか古典文学とか、その手の俳句クラブのような分野であれば、ここで自動出力したのと変わらない論文が大半だろうから、別に使おうと使うまいと社会科学的な影響は大差ないだろうが、他の分野ではそうもいくまい。

上記は、「オブジェクト指向の開発はコーダとプログラマを分離させる悪手だ。」という一文から Edge に作文させてみた文章だ。"Blog post" を "Medium" の長さの文章として書かせた結果である。もちろん、予想通りの内容だが、僕がオブジェクト指向の開発手法に感じている違和感や疑問は、実は個々の技術者のスキルとか知識という individual な範囲だけでは済まないと思っている。要は、実質的にオブジェクト指向の開発手法というものは下請け構造を固定させる手段として悪用されているということでもある。下請けの技術者には、UML のようなオブジェクト指向の開発で標準的に使われる設計ルールのドキュメントを提案したり作成する権限がない。よって、下請けなりコーダは、ソフトウェアの詳細とか設計方針とかを知るとか学ぶという以前に、そういう情報にアクセスできないのである。これは、オブジェクトやデータベースの設計という権限を握る連中が決して変えようとしない既得権益のようなものであって、システム開発の是非という話とは殆ど関係がないのだ。

ChatGPT がそういうことを書けないのは、理由として非常に簡単だ。オンラインでそういう観点からものを書くエンジニアがいないために、そういう観点で書かれた文章で ChatGPT がトレーニングできていないからである。ChatGPT は、もちろん適当に検索した結果から文章を勝手に組み立てるわけだが、何もないところから、つまり独自の観点で議論することはできない。これは別に僕が有能であろうとなかろうと関係のない、データの偏りとか分量の問題でしかないのだ。そして、どれほど騒がれていようと、しょせん現状の大規模言語モデルなんて、そういう下らない点で不十分なレベルの「ソリューション」でしかないのである。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook