【IT技術者が語る】ChatGPTが登場してもプログラマーが不要にならない5つの理由

当ページのリンクには広告が含まれています。

ChatGPTに指示を出せば、いとも簡単にプログラムを自動生成してくれます。

このことから、巷では「プログラミングの知識が不要になる」=「プログラマーが職を失う」のではないかと言われています。

では、これからはプログラマーは要らなくなっていくのでしょうか?プログラミングのスキルを身に着けても無駄なのでしょうか?

そう心配しているあなた、今のと心配無用なので安心して下さい。

この記事では、ChatGPTを仕事で活用している現役IT技術者(エンジニア)の視点から、理由を説明したいと思います。

目次

プログラマー不要論は、ChatGPTやプログラミングを良く知らない人

プログラマー不要論を唱えている人は、ChatGPTやプログラミングについて浅い知識しか持っていないか、ChatGPTに簡単なプログラムしか書かせたことが無い人です。

実際にIT業界でシステム開発をしている、私のようなシステムエンジニア、プログラマーは、ChatGPTについて次のように捉えています。

  • いずれプログラマーが不要になるだろうが、それは今ではない(もっと先の将来のこと)
  • ChatGPTにプログラムを依頼する人間にもプログラミングの知識は必要不可欠
  • ChatGPTをうまく業務に活用することで、プログラマーの生産性が高められる

確かにChatGPTは今まで出来なかった多くのことを肩代わりしてはくれますが、2023年4月の時点でまだ完全ではありません。

シンギュラリティ(技術的特異点)を迎えた後のことは分かりませんが、少なくともここ数年でプログラマーが不要になるとは誰も思っていませんし、10年先でも不要になることも考え難いでしょう。

もっとも、プログラマーとして必要となるスキルは変わってくるので、これについては後述します。

プログラマーが不要にならない5つの理由

ChatGPTやBingAIなどの大規模言語モデルを用いたチャットは、私も実際の日常業務で利用しており、プログラミングをする上でとても重宝しています。

しかし、使えば使うほどプログラミングに関する知識の必要性を痛切に感じます。

常に最適なプログラムを生成するとは限らない

ちょっとしたプログラムであれば、ChatGPTは正しく動作するプログラムを自動生成してくれます。

例えば、「CSVの1列目に日付が含まれているので、年月単位で2列目と3列目を合計するPythonプログラムをpandasを使って作成して」とお願いすると、意図通りに正しく動作するプログラムを生成してくれました。

誤って「年月単位」を「年月単」と指示していますが、特に指摘されることなく自動で「年月単位」に読み替えてくれています。

しかし、ちょっと待ってください。Pythonでプログラムを組んでいる人なら、ちょっと違和感を覚えるはず。なぜなら、pandas というライブラリを使えば、もっと簡単に出来ることを知っているからです。

そこで、「今度はpandasを使って」というキーワードを含めて指示してみました。今度はわずか4行で同じことが出来ました。

左が先ほどChatGPTが作成した結果、右が「pandasを使って」という一文を含めて指示した結果です。

確かにどちらも正しく動作することに違いはありませんが、分かりやすく効率が良いのは明らかに「pandas」を使う右のプログラムです。

この様に、ChatGPTが常に最良のプログラムを生成してくれるとは限りません。

常に動作するプログラムを生成するとは限らない

今度は、「価格.com の液晶テレビの製品一覧ページから、価格、順位、登録日、画面サイズ、画素数、電気代を抜き出し、CSV形式で出力する Pythonのプログラムを作成して」とお願いしてみました。

ChatGPTは見事にそれっぽいプログラムを生成してくれました。しかし、いざ動作させてみると・・・エラーで動きません。

やりたいことは、価格.com から液晶テレビの情報を抜き出し、CSVに保存するという単純なことなのです。

しかし、これを実現するには価格.comのページ構造(HTML)を理解し、価格、順位、登録日などの抜き出し方の知識が必要となります。

このように一見単純に見えても、実はもっと中身を理解しないと出来ないことも多く、現段階でのChatGPTでは正しく動作するプログラムが生成できません

ChatGPTへの指示、生成するプログラムの長さに制約がある

先ほどのプログラムも、ChatGPTに対して細かく指示をしてあげれば、おそらく動作するプログラムを自動生成してくれると思います。

ただ、ChatGPTへ指示する(ChatGPTへの入力)にも上限が決まっており、2000文字を超える長いテキストを一度に入力できません。

逆もしかりで、ChatGPTが自動生成するプログラムサイズ(ChatGPTの出力)も上限が決まっており、数千文字で切れてしまいます。

これはChatGPTの有料プランに加入したり、ChatGPTの進化によって緩和されはしますが、それでも何万行ものプログラムを自動生成することはできません

ChatGPTはシステム全体の設計と開発が出来ない

優秀なプログラマーは、システム全体を俯瞰的に見て、共通性を見出したり、生産性を高めるためにプログラムを部品化します。

また、要件に合わせてシステムをいくつかの役割に分割し、それらを連携する仕組みを考えたりします。

いわゆるシステム設計、プログラム設計と呼ばれる作業ですが、ChatGPTにはこれが出来ません

もちろん、大量のソースコードをChatGPTに読み込ませて、「部品化して」と指示すると部品化はしてくれますが、これは人間が依頼したからであって、自ら進んで行動は起こしません。

ChatGPTはあくまでも指示された仕事をこなすだけなので、システム設計、プログラム設計はプログラマーが率先して行う必要があります。

ChatGPTはプログラムの運用保守が出来ない

システム開発は最初に何千万や何億もの開発費が投入されるため、おいそれと破棄することが出来ません。

必然的に長期間使い続けされるため、様々な事情に合わせて定期的に改善が行われます。

定期的な改善では、既存プログラムへの機能追加や不具合修正が行われますが、事前に影響範囲は変更箇所の特定、変更方法について吟味します。

そして、実際にプログラムを改修し、動作確認(テスト)を行い、顧客と日程を調整して新しいプログラムをリリースするという手順を踏みます。

これら一連の作業を行うためには、システム全体に精通しており、かつ他人が書いたプログラムを理解する能力が求められます。

仮に対象システムに関するすべての設計書、すべてのプログラムコードを学習させればプログラマーは不要になるかもしれませんが、現実的にそのようなことは不可能ですし、仮にChatGPTだけで出来たとしても、その結果が100%信頼できない限り、だれかが正当性をチェックしなければなりません。

つまり、システムの運用保守においては、まだまだプログラマーの存在が必要となります。

プログラマーにとってChatGPTは敵ではなく、強力な武器

これまでの内容から、ChatGPTはプログラマーの仕事を奪うほどのレベルには達していないことがお分かり頂けたかと思います。

もちろん2023年4月現在での話であり、シンギュラリティに代表される今後の進化によって、いづれはプログラマーという職業が無くなる可能性は否定できません。

しかし、RPAによる自動化やノンプログラミングパッケージの登場、30歳定年説など、今までに何度もプログラマーが危ぶまれる事がありましたが、現在においても需要はあり、むしろ技術者が不足している状況です。

ChatGPTは、プログラマーを駆逐する敵ではなく、プログラマーの生産性を上げるための武器として捉えるべきです。

これからプログラマーに求められるスキル

これからのプログラマーは、ChatGPTに対して的確な指示(プロンプト)を出し、流用可能なサンプルプログラムをいち早く生成させられるスキルが求められます。

全てのプログラマーが同じ武器を持つわけなので、その武器の使い方が明暗を分けるのです。

同時に、ChatGPTが出したサンプルプログラムが適切なものであるかを見極め、必要に応じて手を加える力、つまり今まで通りプログラミングの力も併せて必要となります。

ChatGPTに対して適切な指示を出すスキル(プロンプトスキル)と、ChatGPTが出したプログラムを理解して必要な個所に手を加えて利用する力(プログラミングスキル)は、相乗効果をもたらします。

 プログラマーの価値 = プロンプト × プログラミングスキル

で決まるといっても過言ではありません。

まとめ

今回は、巷で噂されている「ChatGPTの登場により、プログラマーは不要になる」という件について、実際に日々の業務で利用している私の見解を述べさせていただきました。

ChatGPTやプログラミングについて浅い知識しか持っていない人ほど、「ChatGPTに指示するとプログラムを書いてくれるので、これからはプログラマーは不要になる」と主張します。

しかし実際に業務で使ってみると、まだまだ改善が必要であることを痛感します。なぜなら、システム開発はそれほど単純に作れるものではないからです。

プログラミングを楽にする便利ツールが数多くリリースされ、簡単にプログラムが出来るようにはなってきましたが、同時に要求される難易度も上がり、システムがより複雑化しています。

ChatGPTはあくまでも道具でしかないので、道具のことを熟知していかに使いこなすかが大切です。そのためには、使う側にもプログラミングの知識は不可欠であり、プログラミングスキルが高い人ほど、ChatGPTとうまく付き合っていけると確信しています。

プログラミングスキルを身に着けることは、決して無駄ではなく、ChatGPTを使いこなすためにプログラミングスキルは必須であることを、理解していただければ幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次