見出し画像

LLMがプログラミングをどう変えているか分かる3つの記事

お疲れ様です。Y研究員です。ChatGPTに始まるLLM(大規模言語モデル)祭が始まってから大体1年が経ちました。今日はそれらのLLMがプログラミングをどう変えているか分かる記事を紹介します。


プログラミングのやり方が変わった

ChatGPTとペアプログラミングをしたり、Copilotを使ったりするのはだいぶ広まりました。特別にやり方を教える本も出ているとわかりました。英語の本ですが無料で内容が見えたので、斜め読みをしました。

プログラミング初心者向けでした。Copilotを使ってゲームなどを作る方法が説明してありました。面白かったのが、その開発手法です。大きいタスクを分割してから、関数を作るスタイルでした。これは前回の記事で図解したウォーターフォール的なやり方に見えました。

そこでアジャイル的なやり方も考えてみました。たとえばアングリーバードみたいなゲーム作るとします。ウォーターフォールならあれこれ部品を考えます。アジャイルならゲームの本質を考え、コアから作り初めることができます。アングリーバードのコアは物を投げる事と考え、まずは放物線を計算するプログラムから始めれば良いと思います。

プログラミングの授業も変わっている

大学の先生も、教える内容を変えていると分かりました。プログラムの文法ではなく、もっと他の部分を教えるようになると言っていまいた。

UI/UXの作り込みや最適化は分かりやすい例です。テストやデバックは、LLMが出してきたコードを使う時に必要な技術です。先程の本でもテストとデバッグは出てきました。さらに大きい視点では、問題の解き方や問題の見つけ方まで言及されていました。

ここまで来ると壮大なテーマです。何故プログラミングをするのか。プログラミングをしてどうしたいのか、が問われます。それとは別に「好きだから」プログラムを書く人もいます。仕事で書くプログラムはLLMが当たり前になるとすると、趣味で書くプログラムはかなり趣が異なると思います。「自宅ではプログラムを手で書いています。」と言うと驚かれる時代が来るのでしょうか。

プログラムの使い方が変わる

書いたプログラムがどのように動かされるかも変わるようです。ChatGPTに「あなたは〇〇の専門家です」という前置きをすると、返答の様子が変わるらしいです。立ち位置を明らかにする手法と言えそうです。その効果を使って、プロジェクトをまるごとLLMにやらせる手法があると知りました。

たとえばプログラマやデザイナなど、それぞれの役割をLLMに演じさせます。役割分担したLLM同士で会議をさせたり、プログラムを交換させてプロジェクトが完結するアイディアです。簡単なアプリはすでに出来るみたいです。

そこで、どうするか

プログラミングのやり方

よくある、プログラミングをする仕事がなくなる!という心配はしなくて良さそうです。しかしLLMを多用するプログラミングか、手動でやるプログラミングに分かれそうな気がしました。

特に書きやすいPython関連はLLMを使う場面が増えそうです。Jupyter Notebookでやるデータの処理と視覚化は爆速でできました。逆にC言語で書くGStreamerのデバッグとかCUDAの最適化などはChatGPTに聞いても解決しない場合が多いです。

プログラミングの勉強の仕方

このブログではプログラムを手で書き写す「写経」を推奨して研究しています。結論から書くと、LLM時代でも「写経」は有効だと考えています。理由は以下のとおりです。

LLMは回答を素早く出します。コピペして動けばいいですが、LLMはたまに間違えます。エラーを基に問い合わせると、改善策を提示してきます。何往復かして動けばいいですが、動かない場合もあります。その時に役立つのがプログラムを読んで理解する力です。提示されたプログラムを自分で読み、問題点を考えます。いわゆるデバッグです。

このプログラムの読解力は、じっくりプログラムを読んで理解しないと身につきません。この「じっくり」読むのに役立つのが「写経」です。目で追うだけでなく、手で書くことでスピードを一段落とすことが出来ます。手の指も動くので、視覚以外の刺激を脳に入れることもできます。

もちろん写経の題材を求めたり、質問する相手としてLLMは大変役立ちます。この辺は自分もやりながら手法を考えている最中です。未経験の言語であるHaskellで実験しているのでまた進捗があったら記事にします。

おわりに

世の中を変えるイノベーションにはサイクルがあって、世間で大騒ぎされたあとが重要な時間帯と昔どこかで聞きました。「猫も杓子も」の時間が過ぎ去ると大体は淘汰されて、残ったものが世の中に浸透するらしいです。ChatGPT祭も落ち着いた気配ですが、本当に世の中が変わるのは今か、もう少しあとになる気がしました。

それではまた。

参考にした記事


無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。