C、C++でもRustでもなく「Zig」に期待できるのはなぜかプログラミング言語「Zig」とは【中編】

「Zig」はシステム開発における開発者の幾つかの悩みを解消し得る、新たなプログラミング言語だ。どのようなアプローチを採用しているのか。そのメリットとは。

2024年09月11日 05時00分 公開
[Nilo StolteTechTarget]

関連キーワード

プログラマー | プログラミング


 企業で主流のシステムプログラミング言語としては「C」「C++」、近年では「Rust」などが存在する一方、新たな言語として「Zig」が頭角を現し始めた。ZigはC/C++の代替を目指しつつ、モダンな機能を備えている。本稿はZigの5つのメリットのうち、2つのメリットを取り上げる。

「Zig」に期待できるのはなぜか

メリット3.ビルドが容易

 可能な限り最適化された実行可能ファイルをZigで作成するには、以下のシンプルなコマンドを実行する。

zig build-exe -O ReleaseFast prog_name.zig

 ここで「-O ReleaseFast」は最適化レベルを指定するオプション、「prog_name.zig」はソースコードのファイル名を表す。複数のファイルをソースにして実行可能ファイルを生成することも可能だ。

メリット4.テストが容易

 Zigの特徴の一つがテストブロックだ。Zigでは、任意のソースコードファイル内に記述したテストブロックを独立して実行できる。この仕組みによって、実行可能ファイルをビルドせずに任意のテストを実施したり、簡単で迅速なプロトタイピング(試作品を用いた事前検証)をしたりすることが可能になる。

 ビルドコマンド「zig test」を使うと、実行可能ファイルを生成することなく、ソースコードファイル内のテストブロックをコンパイルして実行できる。以下は「module.zig」というファイル内のテストブロックをコンパイルして実行するコマンドの例だ。

zig test module.zig

 例として、以下のテストブロックを含むファイル「test.zig」を考えてみよう。

const std = @import("std");
test " => testing integer div built-in" {
    std.debug.print("\n" ++
      "0 div 3 {}\n" ++
      "1 div 3 {}\n" ++
      "2 div 3 {}\n" ++
      "3 div 3 {}\n" ++
      "4 div 3 {}\n" ++
      "5 div 3 {}\n" ++
      "6 div 3 {}\n" ++
      "7 div 3 {}\n" ++
      "8 div 3 {}\n",
      .{ @divTrunc(0, 3), 
         @divTrunc(1, 3),
         @divTrunc(2, 3),
         @divTrunc(3, 3), 
         @divTrunc(4, 3),
         @divTrunc(5, 3),
         @divTrunc(6, 3),
         @divTrunc(7, 3),
         @divTrunc(8, 3)
       }
    );
}

 これは、Zigの組み込み関数「@divTrunc」を使って、0~8の整数を3で除算した結果を標準出力に表示するテストブロックだ。1行目の「const std = @import("std");」は、標準ライブラリ(プログラム部品群)を呼び出している。その後、計算式の表示とそれに対応する計算結果を整形して出力するために「std.debug.print」関数を用いている。

 このテストブロックをzig testコマンドでコンパイルし、実行した結果は以下の通りだ(画面)。

画面 画面 整数除算のテスト

 次回は、5つ目のメリットを解説する

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

譁ー逹€繝帙Ρ繧、繝医�繝シ繝代�

市場調査・トレンド アイティメディア広告企画

主要ノーコードWebデータベースを比較、最適な製品をどう選ぶ?【2025年春版】

専門知識が不要で従来のデータベースの操作から管理まで行えるノーコードWebデータベース。製品の多様化が進む中、自社に最適な製品をどう選べばよいのか。ユーザーレビューから主要製品を比較し、選定のポイントを探る。

事例 Twilio Japan合同会社

物流DX支援企業に学ぶ、「現場の声」をプロダクト開発に随時反映する秘訣

物流向けアプリケーションの開発を行うMeeTruckでは、アジャイル開発でPDCAをスピーディーに回すことで、業界での支持を拡大している。そんな同社の躍進を支えているのが、豊富なAPIを誇るコミュニケーションプラットフォームだ。

事例 Twilio Japan合同会社

SMS認証機能を2日程度で実現、事例に学ぶスピード実装の秘訣

斬新なアイデアで人気を博すレシート買い取りアプリ「ONE」を提供するWEDでは、認証機能の開発工数を削減すべく、あるクラウドコミュニケーションAPIを導入した。SMS認証機能の実装をわずか2日程度で実現した同ツールの実力を紹介する。

製品レビュー アステリア株式会社

建設現場のDXを促進、 IT人材不足でも現場でのアプリ開発で業務効率向上

アナログで非効率な業務が多く残る建設現場では、デジタル化によるプロセス改善が、喫緊の課題となっている。現場DXを推進する具体的な方法を提案するとともに、ノーコードツールの導入で大きな成果を収めた事例を紹介する。

事例 アステリア株式会社

「DXへの意識が低い」中小企業が現場DXを推進、事例に学ぶノーコード活用の秘訣

ビルメンテナンス事業を展開する裕生では、全社的にDXへの意識が低く、従業員の意識改革に課題を抱えていた。そこで、取り組みの契機とすべくノーコードツールを導入。業務アプリの活用により現場の業務はどのように変化したのだろうか。

From Informa TechTarget

いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは

いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。

ITmedia マーケティング新着記事

news025.png

「マーケティングオートメーション」 国内売れ筋TOP10(2025年5月)
今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。

news014.png

「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年4月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。

news046.png

「ECプラットフォーム」売れ筋TOP10(2025年4月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。