У него всё крайне плохо с математической базой. Также есть некоторые очень странные моменты, такие как:
> The Zig Standard Library implements an event loop that multiplexes async functions onto a thread pool for M:N concurrency. Multithreading safety and race detection are areas of active research.
Почему оно в стандартной библиотеке? Не замедлит ли асинхронная среда исполнения другие программы, не нуждающиеся в ней? Почему бы не реализовать это в отдельном крейте, как сделал Rust?
const std = @import("std");
pub fn main() void {
const msg = "hello this is dog";
var it = std.mem.tokenize(msg, " ");
while (it.next()) |item| {
std.debug.warn("{}\n", .{item});
}
}
Почему
std.debug.warn
в стандартной библиотеке? Я считаю, что для этого необходим отдельный крейт, предоставляющий расширяемый фундамет для многих библиотек логирования, как это сделано в Rust.
Также не вижу bottom value (поправьте, если не прав), что несколько усложняет определение категории в Zig.
В целом не понятно почему его создали. Существуют куда более достойные аналоги: Rust,
ATS.