はじめに——なぜ今、Zigが組込み界隈で注目されるのか
マイコン開発といえば、長年C言語が事実上の標準でした。しかしCでの開発には、ターゲットごとにarm-none-eabi-gccのようなクロスコンパイラを別途用意するツールチェイン構築の面倒さ、未定義動作に起因する潜在的なバグ、プリプロセッサマクロが生む読みにくいコードといった課題がつきまといます。モダンな代替としてRustも注目されていますが、所有権やライフタイムといった独自概念の学習コストの高さに、二の足を踏むエンジニアも少なくありません。
こうした中で注目されているのが、システムプログラミング言語のZigです。Zigは既存のC/C++コードベースを壊さずに段階的に改善できる言語として設計されており、公式サイトでは「堅牢、最適、再利用可能なソフトウェア」のための言語兼ツールチェインとして紹介されています。隠れた制御フローや隠れたメモリ割り当てを排したシンプルな設計でありながら、zig ccとしてクロスコンパイル対応のドロップインC/C++コンパイラにもなれるため、C資産と相互運用しながら段階的に導入しやすいのが大きな特徴です