ブログ
Boring Engineering #1:産業システムのモダナイズに、シンプルな技術が最適なこともある
シンプルなCで十分なこともある
アルドネットでは、シンプルなC言語を使ったベアメタルに近い開発にも対応しています。
サードパーティ製パッケージは使わない。多くのリソースを消費したり、古い機器では動作しなかったりする重いフレームワークも使わない。シンプルなCプログラムだけで、既存システムをクラウドにつなぎます。
アプリケーション間の通信にはCで扱いやすいプロトコルを使い、より複雑な処理はクラウド側に任せます。
最近の開発では、既存設備に小さなクラウド接続用バイナリを追加することで、セキュアな最新のクラウドシステムへ接続しました。
そのサイズは、組込みLinux上でわずか約30KB。
シンプルなCのロジックです。

アプリケーションをシンプルにする
ポイントは、利用可能なOSの機能を最大限に活かしながら、Cプログラムをできるだけ軽くすることです。
Cプログラミングは、リスクが高く、バグを生みやすいと言われることがあります。実際、Cで複雑なことをしようとすれば、そうなる可能性があります。
そこで役立つのが、シンプルなアプリケーション設計です。できるだけ多くをOSに任せ、そのOSが本来想定している使い方に沿って設計する。

すべてに適した一つの技術はない
「すべてに適した一つの技術はない」ということも、常に意識しておく必要があります。
最近では、同じ言語をシステム全体で使うことでフルスタック開発を容易にするなど、一つの技術をスタック全体に適用する傾向があります。
しかし、そのようなアプローチでは、動作に多くのメモリやストレージを必要とする汎用的な技術スタックを持ち込むことがあります。
チップフレーション(chipflation)やメモリ価格の急騰が進む今、アルドネットでは別のアプローチもあると考えています。しっかり考え、システムを構成する各部分の特性や考え方に合った、シンプルでセキュアなソリューションを設計する。そして、既存システムへの変更を最小限に抑えながら、新しい機能を追加します。
生成AIが役立つ場面の一つが、対象システムを理解するまでの学習時間の短縮です。これにより、どこでも同じ技術を押し付けるのではなく、それぞれのシステムの特性に合わせた設計がしやすくなります。
C言語そのものが重要なのではない
今回はCプログラミングについて書いていますが、フットプリントの小さいコンパイル言語であるC++やRustも、それらを理解できる人材がいれば、良い選択肢になり得ます。
C言語の明確なメリットの一つは、意味が分かりやすく、シンプルで素直なコードを書くことができ、比較的理解・保守しやすいことです。
重要なのは、プログラミング言語そのものではありません。システム、その制約、そして将来それを保守する人に適した技術を選ぶことです。
次の「Boring Engineering」へ
アルドネットは、新しいベアメタル開発のチャレンジにも対応します。
ぜひお気軽にご相談ください。流行の技術の波に左右されず、長く使い続けられる「Boring Engineering」のソリューションを、一緒につくっていければと思います。