AIアシスタントとの会話の情報のみでツール開発を試した話

こんにちは。エンジニアの横浜です。

この度新しくWPFでサウンドツールを作成することになりました。
Win32やWindowsFormでのツール作成経験はありますが、WPFについては何年か前に1回使用した程度ですので、ほとんど忘れていて初心者の状況です。

早速ツール作成を開始したのですが覚えることがたくさんあり、分からなくなってはGoogle検索または公式ドキュメントに頼るという事を繰り返していました。
これがなかなか効率が悪く、「人に聞いたほうが早いなあ、でもみんな忙しそうだなあ」という状況になってきました。
四苦八苦している時に「そうだ、生成AIを使ってみたらどうだろう」と思いつきました。

生成AIサービスの選定

生成AIサービスをほとんど使ったことが無かったので、まずは無料でそして簡単に試したいと思いました。
・ブラウザ上で使用できる。
・テキスト入力による会話方式。
・GPT-4が採用されている。
・無料(本ブログ執筆時)

以上のポイントで、Microsoft Copilotを選んでみました。

Microsoft Copilotはブラウザ上で使用でき、テキスト入力による会話方式で様々な提案や解決方法の提示、学習サポートをしてくれます。

使用例 その1 WPFの使い方について質問

Google検索での調べものと大きな違いは、会話方式で質問できることです。

私「~~でほにゃららな実装をしたいのですがどうすればいいですか?
Copilot「お任せください。コード例と説明です

実際にコードと説明を表示してくれます。その提示されたコードに対して、

私「ここの処理はどういう意味か教えてください
Copilot「ここの処理は、~~~で~~~という事を行っています

と、会話の流れで丁寧に説明してくれます。

また、過去の会話も覚えていて、自分がどのようなものを作ろうとしているのかを汲み取った上で返答してくれます。
質問し終わったソースコードも覚えていてくれますので、毎回ソースコードをチャットウインドに張り付ける必要もありません。
「先ほどの質問のこの処理は何故必要なのですか?」
という質問にも正しく返答してくれます。

この流れによる作業がWPFのラーニングにとても役立ちました。

使用例 その2 簡単なクラスであれば自動コード生成

「WPFで複数のベジェ曲線を管理するクラスを生成してください、その際、曲線ごとにユニークIDを設定し始点と終点も変更する関数も欲しいです」
と入力すると即座にクラスを生成し、使用方法まで提示してくれます。

また、こういう場合どうコードを書けばよいのだっけ?という場合でも、
「このxmlの~~の要素を取得するコードを教えてください」という文面とともにxmlコードをチャットウインドウに張り付けると、
即座にプログラムコードを返してくれます。

自分で1から書いた場合、おそらく10分~1時間かかるようなコードを一瞬で生成してくれます。

使用例 その3 デバッグ

例えば上手くコントロールが表示されない時に、xamlコードをチャットウインドウに張り付けると、
「この行に問題があります」と原因と、修正されたxamlコードを提示してくれます。
他にもビルドエラーに対しても、的確な修正方法を教えてくれます。

まとめ 良かった点

プログラム言語のラーニングに向いている:
Copilotは新しい言語やフレームワークを学ぶ際に非常に役立ちました。具体的な例やコードスニペットを提供してくれるので、理解が深まりました。

対話方式で問題解決ができる:
質問に対して即座に答えてくれるため、問題解決の速度が上がりました。まるで隣に有能な同僚がいるかのようでした。

ちょっとしたクラスであれば全部書いてくれる:
簡単なクラスや関数の実装を一から書く必要がなく、効率的に開発が進みました。

質問に対して基本的に即答してくれる:
即時フィードバックが得られるので、開発のリズムを崩さずに作業を進めることができました。

まとめ 気になった点、注意点

たまに動かないコードを提示してくる:
提示されたコードが動作しないことがありましたが、その場合でも参考にしながら調整することで問題を解決できました。

返答の文字数が多いと途中で返答が止まってしまう:
長い返答の場合、途中で切れてしまうことがありました。適宜質問を分けることで対処しました。

情報漏洩には気をつける:
これは当たり前の話ですが、機密情報をチャットウィンドウに入力するのはやめましょう。

AIによって今後ソフトウェアエンジニアの仕事は無くなるのか?

想像以上に便利だったため、10年後くらいにはソフトウェアエンジニアの仕事が無くなってしまうのでは?と思いました。
そこでCopilotに、「10年後にはソフトウェアエンジニアの仕事は無くなりますか?」と質問してみました。
以下、Copilotからの返答をそのまま記載します。

    これは多くの専門家が議論しているトピックです。AIや自動化技術の進展によって、ソフトウェアエンジニアの仕事は大きく変わる可能性があります。しかし、完全に無くなるとは考えにくいです。

    どうして?

    創造的な仕事: AIはルーチン作業や定型的なタスクを自動化できますが、創造性や問題解決能力が求められる仕事には限界があります。新しいアルゴリズムの開発や革新的なソフトウェアの設計は、引き続き人間のソフトウェアエンジニアが主導するでしょう。

    新しい技術の登場: 技術の進歩は新しい課題やニーズを生み出します。AI自体の開発やメンテナンスには高い専門知識が必要であり、これらを扱えるソフトウェアエンジニアの需要は高まる可能性があります。

    人間との協働: AIはソフトウェアエンジニアの仕事を補完し、効率を向上させるツールとして機能します。AIと人間が協力することで、より高度で複雑なプロジェクトを成功させることができるでしょう。

    多様な分野への適用: プログラミングスキルは、ソフトウェア開発以外にも多くの分野で必要とされています。AIや機械学習、データサイエンス、ロボティクスなど、さまざまな分野でプログラミングの需要は続くでしょう。

    まとめ
    ソフトウェアエンジニアの仕事は、AI技術の進展に伴い変化しますが、完全に無くなるわけではありません。むしろ、技術の進歩に伴って新しいスキルや知識が求められ、その結果として進化することになるでしょう。これからの10年も、新しい技術やツールを学び続けることが重要です。

日々AIは進化しているので、この通りになるかは分かりませんがAIをどう使っていくかというのがテーマになりそうですね。これはどの職種にも言えそうです。

最後に

最近よく生成AIというワードを見聞きしてきましたが、今回実際に触れてみて本当によかったと思っています。
さらにプログラムに特化した生成AIサービスが色々ありますので、今後も使っていきたいという気持ちになりました。
まだ生成AIに触れたことのないかた、まずはお気軽にブラウザで使用可能な生成AIサービスを試すのはいかがでしょうか?

シェアする

  • このエントリーをはてなブックマークに追加

フォローする