歯車加工技術研究所ロゴ

ソフトウェアの技術スタック刷新について

弊所ではこれまでExcel VBAを用いた歯車計算ソフトの開発・保守に努めてまいりました。
しかし近年、Excel VBAでの開発に限界を感じるようになったことに加え、AI技術の進歩によって新しい技術スタック (どのようなプログラム言語・フレームワークで開発するか)の習得が現実的になってきたことから、このタイミングで 技術スタックを刷新することを決意しました。

本お知らせは、技術スタック刷新に向けた取り組みの方針と、新しい技術を着実に習得していくための 決意表明として公開するものです。
2年後を目標に新しい技術スタックで開発したソフトウェアのリリースを開始し、順次、既存のExcel VBA版ソフトウェアを 新技術スタック版へ移行していく予定です。

既存のお客様へ: 現在ご利用いただいているExcel VBA版ソフトウェアにつきましては、 これまで通り保守・サポートを継続いたします。また、新技術スタック版への移行につきましても、お客様にご負担をおかけしないよう 順次対応してまいりますので、安心してご利用ください。

従来通り継続すること

  • 既にリリースしているプログラムの不具合修正・保守・サポートサービス
  • 既にリリースしているプログラムの販売と立ち上げサポート

新たに行うこと

  • 新しい技術スタックの習得
  • ボールエンドミルで内歯歯車を加工するプログラム(DGM_IB)の開発

ボールエンドミルで内歯歯車を加工するプログラム(DGM_IB)は、新しい技術スタックの習得も兼ねて、可能な限り 新しい技術スタックで開発を行います。従来のExcel VBAで作成すれば5か月程度の開発期間で完成する見込みですが、 新技術スタックでの開発が1年後までに完成しそうにない場合は、UI部分のみExcel(VBA)を使用するなどの方法で、 1年後のリリースを目途に開発を進めます。

当面行わないこと

  • Excel VBAでの新規開発、および現行ソフトウェアへの新機能追加
    (特別なご要望がある場合を除き、原則として行いません。不具合修正や保守は継続いたします。)

Excel VBAの限界

以下が、Excel VBAでの開発に限界を感じている点です。

  • 1つのExcelファイルに多くの機能を詰め込むとファイルサイズが肥大化し動作が不安定になるため、 用途に応じてソフトウェアを小分けにしてきた結果、ソフトウェアの数が増えすぎたこと
  • ソフトウェアの数が増えすぎた結果、多くのソフトウェアを導入していただいているお客様にとって 管理工数がご負担になっていること
  • ソフトウェアを小分けにしているため、例えばDGMの歯切とDGCの歯面取りを1つのNCプログラムで両方実行したい場合に、 お客様の方で統合作業をしていただく必要があること
  • 各ソフトウェアに共通のプログラム部分が多く存在し、共通部分の機能向上や不具合修正を他のプログラムへ 反映させる工数が増えてきたこと(反映できずに放置している部分があることも課題)
  • Excelは本来ソースコードの閲覧やファイルコピーによる複製が可能な構造のため、これを防ぐための 対策部分の動作が不安定になりやすく、安定化のための工数が掛かりすぎていること
  • 現在、登録キー方式でソフトウェアの複製防止を行っているが、1年毎の登録キー更新とバージョンアップ作業が お客様にも弊所にも負担になっていること
  • Excel VBAは繰り返し計算が苦手で計算時間が長く、待ち時間が発生するソフトウェアがあること。また計算時間の制約から、 追加したい機能を見送らざるを得ないケースもあること(C++等で計算すると30倍以上高速化できることは検証済み)
  • グラフ描画等の描画機能が弱く、マウスやキーによるインタラクティブな描画操作ができず、3D描画にも対応できないこと
  • AIによるコード作成支援が得られにくいこと

チャレンジする技術スタック

以下が、今後使用していく技術スタック(プログラム言語やフレームワーク等)です。

  • UI(見た目)の部分: Webの技術(TypeScript、React、Tailwind CSS 等)
  • 計算等の処理 : デスクトップアプリはC#(またはC++)、WebアプリはPHP
  • Web認証 : Webサーバーで管理(PHP、MySQL)
  • データベース : お客様のデータはAccess(今まで通りローカル保存、テーブル設計は変更予定)

Excel VBAは非常に便利で、Excelの機能と合わせれば大抵のことは実現できる優れた環境です。しかし、言語自体の 機能拡張は十数年前から実質的に止まっており、今後の発展は期待しにくい状況です。これまでも限界は感じていましたが、 次に進むのがデスクトップアプリかWebアプリかで方向性が定まらず、Excel VBAから脱却できずにいました。
しかし、昨年あたりからのAIの進歩により、AIのサポートを受けながら開発できるようになったことで、 「デスクトップアプリかWebアプリか」と二者択一で迷うのではなく、両者の良いところを取り入れ、どちらにも すぐに移行できる構造でソフトウェアを開発するという方針が現実的になりました。
Web関連のテクノロジーは現在最も進化が活発な分野であり、言語やフレームワークの制約で実現できないことは 少ないと考えています(その分、開発者は技術の進化に追従し続ける必要がありますが)。

新しい技術スタックで可能になること

新しい技術スタックへの移行により、以下のような改善が期待できます。

  • 現在、複数のソフトウェアに分割されているものを、1つのプログラムにまとめることができる
  • その結果、DGMとDGCなどを1つのNCプログラムとして出力できるようになる
  • 同時に使用できるPCは1台ですが、ライセンスキーの返却と再認証を行うことで、お客様(ユーザー)が 自由にPCを入れ替えられるようになる
  • 一度ソフトウェアの基本構造ができれば、開発スピードの向上が期待でき、AIの支援も最大限に活用できるため、 さらなる開発スピードアップや機能向上につながる
  • Excel VBAでは計算待ちになっていた処理が解消され、今まで躊躇していた複雑な繰り返し計算も 取り入れられるようになる
  • 描画機能が強化され、マウスやキーによるインタラクティブな描画操作が可能になり、3D描画にも対応できる