> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/ja/2023/w11-pragmatism-what-gpt-can-and-cannot-do-on-its-impact-on-software-development.md).

# W11-実用主義：GPTにできること、できないこととソフトウェア開発への影響

### 実用主義の立場 <a href="#a1fb1ea1-fa48-44d0-bb65-5ec80413109a" id="a1fb1ea1-fa48-44d0-bb65-5ec80413109a"></a>

**行動を重んじる実用主義者の見方を支持したい。**

現実を直視し、変化の中でGPTが開発へどう影響するかを考えたい。人類を置き換えるかという究極の問いを回り続けても、空疎になりがちだ。悲観して諦める見方も、楽観して無視する見方も、怠惰と捉えてよい。コンピュータの登場と普及は画期的だったが、生み出したものは置き換えたものよりはるかに多い。生産要素の構造変化が社会にもたらす具体的な影響へ、もっと目を向けるべきだ。1980年代・1990年代生まれが子どもの頃に学んだ暗算や書道が、今の親の教育競争の中心ではなくなったように。

### Copilotから何が見えるか <a href="#ce593370-e50e-4f6b-b33f-14d7e22a2eac" id="ce593370-e50e-4f6b-b33f-14d7e22a2eac"></a>

GitHub Copilot、TabnineなどのIDEプラグインから、GPTの長所と短所を見てみる。

**得意なこと**

* 退屈な反復作業からの解放。使い捨てのスクリプト、CRUD、単体テストなど。
* 新領域の学習と探索。新しい言語、フレームワーク、ライブラリを素早く使い始めることなど。
* 機械の強みを生かすこと。正規表現、SQL、CronJobの記述など。

**制約があること**

* セキュリティ。現在、社内では利用が禁止されている。
* 著作権。Copilotが推論するコード片はGitHubのオープンソースプロジェクトに由来するため、licenseなどの権利問題が関わる。
* 正確さ。検索エンジンより、GPTの誤答は信じられやすい。GPTは正しい答え（correct answers）より、もっともらしい答え（plausible answers）を生成する傾向がある。

### ソフトウェア開発への影響 <a href="#fe7a1851-1071-4294-9dd3-9490d96308a6" id="fe7a1851-1071-4294-9dd3-9490d96308a6"></a>

**コーディング**

* 技能と学び方の更新が必要だ。コンパイラ技術など、より深い計算機の基礎を持つ必要がある。データ構造、アルゴリズム、フレームワークや外部ライブラリのAPIの使い方は、容易に得られる知識となり、反復して慣れるだけでは競争力にならないかもしれない。
* 業務知識をさらに蓄え、理解と洞察を深め、技術的な創造性を高める必要がある。アプリ開発の中心は、コードを書くことから、AIを通じて領域の特徴を反映するモデルを学習させることへ移るかもしれない。

**アーキテクチャ**

* アーキテクトは本質的に事業と技術の橋渡しだ。業務要件を深く理解し、それが生むシステムの複雑さを判断し、対処・軽減する選択肢を設計し、さまざまな条件から取捨選択することが中核の責務である。
* 業務要件自体の違いは学習させられない。同じ製品でも、部門やチームが違えば要件は変わる。
* 設計過程の判断は標準化できない。利害関係者の要望、チームの技術的な進捗、事業の発展状況から判断する必要があり、これらは標準化も学習もできない。
* 技術自体が進化し続けるため、設計には革新の能力が要る。ChatGPTは自身を覆す次世代の製品を作れるか。現時点では、できないと考えている。
