INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/
2022年7月下旬より再び本業多忙化してきているため、更新頻度は落ちます。 [2022/7/24 19:32]

目次 | ←前へ / 2026-02-02 02:05

■『マウスのお供』『マウスふるふる』にスクリプトによるカスタマイズ機能を付けつつ、生成AIのプログラミングへの活用もしつつ

2026年 2月 2日(月) 2:05:17



RSSRSS配信中
https://www.inasoft.org/



先月末に妄想として書いた、R-Scriptの「いじくるつくーる」からの分離・独立と、他のアプリケーションへの活用について、妄想が止まらなくなってしまったので、実際に作ることにしました。

ただ、大学4年のとき(2002年頃)のやり方でそのまま作るのだと、β版の作成までで1~2か月、テストその他もろもろ含めると半年近い時間がかかることになります。
でも、2026年は生成AIによるコーディングという強力なツールがありますので、それを活用することにしまして、「生成AIとのプログラミング」の実験も兼ねて行うことにしました。

結果、β版の作成までで4日間で出来ました。
速い!





まぁ、明らかにオーバースペックな機能ですし、需要なんて全く気にしていないのですが、まぁ、あくまで作者の100%趣味の活動なので、それくらいやっても面白いんじゃないかな、と。

生成AIの活用という観点に関しては、そのうち「管理人のふたこと(長文記事)」でまとめようかと思いますが、概略は以下の通り。


  • 去年末~年始にかけては、生成AIに相談しながらダークモード実装を徐々に行っていた感じでしたが、今回は、大部分のコードと説明書の作成を生成AI(Gemini)に依頼し、人間はチェックと手直しに注力する(一部手直しそのものもGeminiに依頼する)体制でプログラミングする実験を行いました。
  • 作者はテキストでGeminiにスクリプト仕様を与えましたが、その後、FR-Script文法マニュアルをHTMLで作ってくれという要望をGeminiに行いまして、なかなかいい感じに作ってくれました。まぁそれをベースに半分以上は加筆しましたが、0から100を作るのと50から100を作るのでは後者の方がはるかに楽だし早いわけで、新時代のモノづくりのやり方の凄まじさを体感できました。
  • 前述のとおり、プログラミングそのものには、1~2か月くらいはかかりそうだったものが、今回は4~5日で作れましたので、生成AI活用によるプログラミングの効果の高さを実感しました。
  • ちなみに今回の手法は、最近提唱されている「バイブコ-ディング」みたいなものとは、(個人的には)ちょっと考え方が違うかな、と思います。雰囲気や感覚を伝えてプログラムを書いてもらう方法ではなく、スクリプト仕様については、割とガッツリと指示を伝えるやり方となりましたんで。まぁ、定義次第では、これもバイブコ-ディングなのかもしれませんが。間違いなく短納期で仕上がりました。
  • 当初想定していた、Boost::Spiritを使うのはやめて、頭を四半世紀巻き戻してflexとBisonを使うことにしました。GeminiもChatGPTも、この辺りは得意そうだったので。なお、Copilotについては、最後までビルドが通らなかったです。小修整で済むレベルではなさそうだったので諦めました。
  • ってか、やっているうちに思い出しました。僕は、C++のクラステンプレートが吐き出すエラーが大嫌いだったんです。言われていることが宇宙語みたいに感じるし、実際のエラー発生個所からかけ離れた場所でエラーを吐き出すし。生成AIにエラーを修正してもらう場合、的確に情報を伝える必要があるのですが、C++のクラステンプレートのエラーの吐き方ではそれができなかったので。
  • プログラミングさせるAIには周辺情報含めて全て伝えた方が良いみたいです。今回は、Visual Studio 2010の使用に拘ってるとか、文字コードはShift_JIS(CP932)にしたいとか伝えれば、C++03の範疇で書いてくれたり、\(0x5c)が2バイトコードの2バイト目にくるダメ文字を考慮したコードを出してくれる様子が見れました。最終的には、「𓄿」や「👿」や「𡈽」などの文字を扱いたくて、内部動作をUTF-8に改造してしまったのですが、必要範囲ではShift_JIS(CP932)でも十分でしたし、生成AIもそれに応えてくれました。
  • 「IFブロックの後のELSEがこんな条件の時にパースエラーになるんですが、どう直したらよいですか?」とか相談をすることもありました。発生条件を調べて適切に伝えたら、思わず声が出てしまうレベルでスマートな解決法を提示してくれました。解決までだいたい1分くらい。人間だけで解決しようとしたら、もっと長くかかってしまっていたでしょう。
  • 今回はGeminiを最も活用しました。ChatGPTも、テスト段階ではいい感じだったのですが(特に、お勉強のために教えてもらうことについては非常に役に立った)、長めのコードを出力させようとすると、すぐに「ここにすべてを書くのは現実的ではない」とか言い出し、細切れのソースコードを出力しようとします。フェルマーみたいなことするんじゃねぇ。
  • ChatGPTについても、「次はこういうことができますよ」とか案内してくれるので、繰り返しお願いして完全版のソースコードをこまごま出力させることもできるかなぁと思ったのですが、だんだんと前に言ったことを忘れて行ってしまい、結局は使えないコードになってしまいました。
  • 作者がローカルLLMをやっていた時に痛感したのですが、生成AIは、出力するトークンの数が多くなれば多くなるほどツラくなってきます。ChatGPTはその上限を超えないように、色々理論をこねくり回して、少ない答え方にするというアプローチなのかもしれません。対してGeminiの場合、ホワイトスペースを詰め詰めにしてトークン数を減らしつつも完全回答しようという様子が見られました。前に言ったことを忘れてしまうことも少なかったです。今回はGeminiが大変役に立ちました。(この辺りは、採用するモデル次第らしいです。ちなみに、適切なモデルについても、生成AIに聞けば、どれを使ったらよいか応えてくれるらしい)
  • とはいえ、Geminiも、出力しているコードに「ここは簡易版」とか書いてあったりします。たいていは、こちらから提示した仕様通りにはなっていないことになるので、「この箇所について完全版のコードを書いて」とお願いすることになります。
  • 仕様変更・コンパイルエラー対応で修正が入ったとき、関連して他の部分を修正する必要があることを教えてくれる時と教えてくれない時がありました。そこは人間が気をつけて、聞いてあげる必要がありました。ここがAIにプログラミングをさせるときの限界なのでしょうね。
  • 仕様提示・仕様通りかのテストは人間がやります。また、適切な聞き方(プロンプト)をしないと正確な答えは返ってこないので、聞き方(プロンプト)を作るための勉強が必要です。ちなみに勉強そのものも、生成AIから学ぶことができます。ChatGPTは2手3手先の答えを出してくれることもあり、助かりました。
  • ちょっと気になったのは、厳密な意味での著作権の話。絵や動画の生成の世界では、ジブリ風の絵を出せてしまう問題だったり、無断学習に対する反発だったり、色々な問題があります。おそらく、生成AIによるプログラミングも、同じことが言えるかと思います。出力されたコードは、誰かが書いたコードをミックスしたものなのかもしれません。今回、生成AIに協力を仰ぎながらコードが出来て、マウスのお供マウスふるふるのβ版が出来上がりましたが、これのスクリプトインタプリタ部分の著作権を自分が主張することは可能でしょうか? とはいえ、自力でコーディングする場合も、他者のサイトに公開しているサンプルコードを切ったり貼ったりして作るわけなので、それと何が違うんだ?というところでもあります。「人間的苦労」の有無は、著作権に影響を与えるのでしょうか?


余談ですが、R-Scriptを軽量版にしたということで、FR-Script (Feather R-Script)と名付けています。
また、最初に実験的に搭載したアプリケーションが「マウスふるふる(MOUSEFR)」だったことも、FRにした理由です。


目次 | ←前へ / 2026-02-02 02:05


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはX等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。


- 最近の更新 -



3440829 (+0070)[+0415]

Copyright© 2010-2026 INASOFT