お知らせ
お知らせ
CLOSE

学生エンジニアの生存戦略 〜Rubyの父が語るキャリアのヒント〜(全3記事)

AIが“欲しいコード”を生成してくれる確率は1割以下? “ガチャ要素”から逃れられない状況下での適切な使い方 [2/2]

AIはまったく新しいソフトウェアを作るのは苦手

現状のAIツールに対する付き合い方っていうのは、これに似たレベルにならざるを得ないんじゃないかなと思っています。つまり、ソフトウェアを開発する時の設計を支援するツール。それから、プログラムを開発する時のエディタ。それから、ドキュメント支援ツールみたいなかたちで、個別の目的で、いちいち人間がガイドして使わないと、ガチャからは逃れられないっていうことになるんですね。

あ、そうそう。ガチャの話で言うのを忘れてた。テトリスって、世の中にすでに存在しているじゃないですか。そういう、世の中に存在しているツールを「もう1回作れ」って言われたら、AIはけっこううまくやるんですよね。でも、ソフトウェアを開発する時って、今まで世の中に存在しなかったものを作りたいことがほとんどなんですよ。なぜならば、既存のソフトウェアはコピーできちゃうから。

「まったく新しいソフトウェア作れ」ってなると、AIはこれがすごい苦手で、外れる確率が上がるんですよね。テトリスだとほぼ100パーセント成功するけど、それはAIがテトリスを知っているから。だけど「誰も見たことがない新しいゲームを思いつきました。これを作ってください」とかを言うと、たぶん99パーセント失敗します。

つまり、ソフトウェア開発に本当に必要な、新しいものを作り出せっていうところで、AIにすべて任せてバイブ・コーディングすると、ほぼ失敗するんですね。なのでタガをはめてというか、人間がガイドして、設計支援ツールとして、プログラムエディタとして、ドキュメント支援ツールとして使うのが、現時点ではもっとも良い使い方だと思います。

設計支援ツールとしてのAIの活用

「設計支援ツールってどういうことか?」っていうと、つまり、そのソフトウェアを開発している時に、自分の知らないことについても作らないといけないことって、けっこうあるわけですよね。例えば帳簿の付け方とか、簿記とか。そういうことを知らなくても、事務系のソフトを作らなくちゃいけない羽目になることもあります。

造船についてまったく知らなくても、造船関係のソフトウェアを作らなくちゃいけなくなることだってあるわけですよ。そういう時に、その造船関係の知識っていうのは、まぁインターネットで検索したり、あるいはすでに学習したデータの中にAIが持っている可能性がかなり高いので……。それを聞きながら「どういうソフトウェアであるべきか?」っていうことについて、知識を補ってもらいながら設計することができる。検索して支援してくれたりとかがあります。

そういう意味で言うと、何かを作る時に、自分が方向性を決めるんだけど、その自分の足りない知識、足りない技術、あるいはその足りないものを補ってくれる感がね、すごくあるんですね。つまり「これこれこういうソフトウェアを、これこれこういう方針で作りたいと思うんだけど。それを作るための計画を立ててください」みたいなことを言うと、何ていうの?

8割ぐらいの出来の計画書を出してくるんですね。それを見ながら最終的には人間がアップデートして「ここをもっとこうしたほうがいい」とか「ここは、こうしたほうがいい」って言うことによって、そのソフトウェアの開発の事前計画を立てることができるんですね。ちょっとウォーターフォールっぽい作り方なので、人間がソフトウェアを作る時には、あまり向かないんですけど。

コンピュータと仕事をする時には、事前にプランを立てるのが非常に有効です。

ただ、AIっていうのはハルシネーションがあったりとかですね、勘違いをしたりとかするので。「過信は禁物に」ですね。

プログラムエディタとしてのAIの活用

次にプログラムエディタですね。私はこうやってAIについての講演をしたりすることが最近増えてきたので。みんな聞きたがるからなんですけど。私自身、未だにプログラマーとして日々プログラム、ソフトウェアを開発しているんですけれども。最近、私の愛用のエディタ、Emacsをちょっと封印していてですね。

「何しているか?」っていうと、ソフトウェアを編集したい時に、必ずそのAIに「これこれこういう編集をしてください」って人間の言葉、まぁだいたい英語を使っているんですけれど(笑)。

その編集をする時、何か意図があるわけじゃないですか。「この関数の名前を変えたい」とか。そういう意図のほうをAIに伝えて編集するっていうことをやっています。正直ちょっと、面倒くさいんですけど(笑)。

ただリファクタリングとか、そういうことをさせると非常に効果的にいきます。「ソフトウェア全体でこの関数の名前を変えるので、漏れなく関数の名前を変えてください。呼び出し側も変えてください」と。名前だけじゃなくて、例えば引数の順番とか、「引数の構造体が変わりました」みたいなことも含めてきちんと説明すると、きちんとやってくれるんですね。そういう、ちょっと賢いエディタとして使っています。これはだいぶ満足感が高いんですね。

たまに自分が想像していないような、気の利いた変更までしてくれて「ありがとう」と思うようなをしてくれることもあります。たまに邪魔な変更もしてくるので「おい、それはキャンセル」みたいなことを言わないといけないこともあります。

特に自分の詳しくない領域のソフトウェアを開発している時に、AIがいろいろサジェストしてくれたり、「こういうアルゴリズムがいいです」みたいなことを提案してくれたりとかをするので。

かけだしエンジニアにとっては、あらゆることが詳しくない領域なので(笑)。そういう使い方をする時には、非常に良い相棒になると思います。ただ、相変わらず嘘をつくので(笑)。嘘も勘違いもするので、過信は禁物ですね。

ドキュメント生成ツールとしてのAIの活用

最後、ドキュメント生成ツールですね。AIは文章作成能力が非常に高いんですね。

私みたいにオープンソフトウェアを主たる活動としていると、ドキュメントとかコメントとかは、基本的に英語なんですよ。つまり、世界中の人たちがそのソースコードを見たり、ソフトウェアを使ったりするので。

そうすると、苦手な英語でいろいろとドキュメントを書いたりしないといけないんですね。これをAIに書かせると非常に良くて。

例えば「READMEドキュメントを書きましょう」ということで、それをAIに書かせるとか。「英語でもうちょっとこのあたりを詳しく書いてください」とか。

あるいはドキュメント。最近はコミットメッセージもAIに書かせていて。時々嘘をつくので、「ちょっとそこじゃなくて」とか「その変更は関係ないから」みたいなことを僕が言わないといけないんですけど。でも、基本的にはAIに書いてもらっていますね。非常に便利です。

ただ相変わらず嘘をつくので、何も見ないでOKとはいかなくて、必ずレビューしないといけないのは現状になります。

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
スピーカーフォローや記事のブックマークなど、便利な機能がご利用いただけます。

無料会員登録

すでに会員の方はこちらからログイン

または

名刺アプリ「Eightをご利用中の方は
こちらを読み込むだけで、すぐに記事が読めます!

スマホで読み込んで
ログインまたは登録作業をスキップ

名刺アプリ「Eight」をご利用中の方は

デジタル名刺で
ログインまたは会員登録

ボタンをタップするだけで

すぐに記事が読めます!

関連タグ:

この記事のスピーカー

同じログの記事

この記事をブックマークすると、同じログの新着記事をマイページでお知らせします

コミュニティ情報

Brand Topics

Brand Topics

人気の記事

    新着イベント

      ログミーBusinessに
      記事掲載しませんか?

      イベント・インタビュー・対談 etc.

      “編集しない編集”で、
      スピーカーの「意図をそのまま」お届け!