Skip to content
- ChatGPTのようなブラウザのチャット機能
- GitHub Copilotのようなタブ補完型
- ChatGPT等のチャット機能の場合、コードベースのような大きいコンテキストを渡すのが難しい(面倒)
- GitHub Copilotも従来の静的な(型やメソッド名の)タブ補完の延長線上にあるため、あくまでコーディングの主導権は人間にあり、AIは副操縦士な役割に留まっていた
- CursorやClineといった生成AIが組み込まれたエディタを使うことで、AIがコーディングの操縦桿を握ることが可能になった
- コードベースのような大きめのコンテキストを考慮したチャットベースのやり取りや、生成AIの提案をマシンの操作にマッピングすることによる操作の自動化
- これは、機械語/アセンブリからC言語等の高級言語にシフトした以来の、ソフトウェアエンジニアにとっての大きなパラダイムシフトとなるのではと予想している
- 高級言語よりもさらに高次的で非形式的な自然言語によって記述することが可能になった
- 進化論で有名なダーウィンの「最も強い者が生き残るのではない。最も賢い者が生き残るのでもない。唯一生き残るのは、変化に最もよく適応した者である」という言葉を思い出した
- 現在はCursorやClineよりもより自律的に動作するDevin等のサービスも出現している
- ChatGPTとGitHub Copilotは引き続き利用
- Clineのフォークである Roo Code (日本語に強い)を新たに導入
- VSCodeの拡張として導入可能
- ソースコードが公開されているため、改造が可能
- Roo Codeが利用するLLMのAPIキーは OpenRouter で生成
- OpenRouterは各社のLLMのAPIキーを統合的に管理できるサービス
- クレジットをチャージする形で利用し、各社で個別で契約するよりも安いことも多い
- LLMのモデルはAnthoropicのClaude 3.7 Sonnetという現状、一番プログラミング向きとされるモデルを利用
- 仕事の成熟したコードベースにおけるCI/CDパイプラインの機能改修に使ってみた
- 自分のあまり詳しくない技術領域かつ、品質を担保する必要がある場合には、つまらなくてしんどいコードレビューという仕事だけが残されるというつらみ
- 慣れ親しんだ技術領域においても、品質を担保するにはモジュールやクラス、関数等の小さい単位で生成し、コードを確認する必要性は残る
- いよいよ人間がボトルネックになる時代が来たな、という印象
- ゼロベースでプロダクトを作る場合や独立した新機能を開発する場合、プロトタイプの作成、ノーコード開発の代替手段としてはかなり力を発揮する
- いくら生成してくれるといっても開発者ひいては人類にとって必要なコードを生成してもらう必要性があることには変わりない
- 今後はより特定ドメイン領域の深い理解や、自然言語としての記述力、自身のAIパイプラインをどう構築するか、AIの能力を最大限引き出すテクニック等が求められるようになってくるはず
- 個人としてはこの人間がボトルネックとなる時代に、キャッチアップを速く・深く行うスキルの獲得や、厳密な記述や表現が求められる研究論文の読み書き、人類の叡智を拡張する研究活動、AIの内部動作を理解するための学習等に注力していきたい
- この部分に社会人大学生というポジションは大いに活用できるはず