AIは間違えるため過信は禁物、「必ず人間がレビューしないといけない」とまつもとさんは続ける。
例えばリファクタリング。AIが得意な分野で、「想像しなかったような気の利いた変更」をしてくれることもある半面、頼みもしない「邪魔な変更」をしてきて、キャンセルを依頼しなくてはならないこともある。
プログラミング歴40年のまつもとさんにとって、「コンピュータが間違える」ことは新鮮な驚きだという。AI以前は、間違うのはほぼ常に人間だったためだ。
いまは「AIが人間のように間違える」時代だ。例えば、「インデントはスペース2つ」と指定したのに、4スペースで書き出す。バグを指摘しても全く関係ないところをいじり始める。思い込みで間違った場所を修正し続ける。場合によっては大事な編集まで巻き戻そうとする……。だからこそ、AIの間違いを正す役割が人間に求められる。
「AIはデバッグの作法を知らないから、簡単なバグの原因も見つけられない」とも。AIにバグの在りかを教えてやらないといけないなど、人間がAIのプログラミングをサポートする必要がある。
AIにコーディングさせ、人間がサポートするという役割分担は、「ソフトウェア開発の主導権をAIに奪われている感じがちょっと腹立たしい」半面、「適切にガイドすれば、AIは強力なパートナーになる」ともいえる。
プログラミングという概念が成立した1950年代から、エンジニアの仕事の一部を機械が代替し、プログラミングの効率が上がる、という流れは繰り返されてきた。
例えば、コンピュータが登場したばかりの頃は、「バイナリ(マシン語)を、人間が心を込めて1バイト1バイト書いていた」。その後、人間にとって意味のある文字列でプログラムを書き、機械がバイナリに変換するアセンブラが登場。ソフトウェア開発の生産性が“爆上がり”した。
次いで、より人間に理解しやすいFORTRANやCOBOLなどの高級言語が登場。プログラムの実行状態を動的に観測できるデバッガーツールや、パフォーマンスが落ちている地点を確認できるプロファイラーが登場するなど、生産性は向上し続け、人間の役割はその都度変わっていった。
いまAIが登場し、新たな効率化が始まっている。この流れは後戻りしないので、エンジニア側が合わせていくしかない。
まつもとさんのように開発経験があるシニアエンジニアは、これまでの経験を生かし、AIをガイドする役割を担える。では、これから学ぶジュニアエンジニアはどうすればいいのだろうか。
「人間とAIの架け橋になる能力を身に付けることが大事だ」と、まつもとさんは力説する。
“Rubyの父”は、いかにして“つよつよ”になったか
「競プロの神」と「Rubyの神」が考える、生成AI時代のエンジニアとプログラミング言語
Rubyの父 まつもとゆきひろが就活生に贈る「失敗から学んだ7つの“格言”」Copyright © ITmedia, Inc. All Rights Reserved.