After seven years of Rust development, the author decided to reimplement an existing Rust JSONPath library in Zig to get a concrete feel for the language as a potential C successor. The project involved porting the same functionality—parsing and evaluating JSONPath expressions defined in RFC 9535—so that the comparison would be grounded in real code rather than toy examples. The first surprise was the state of IDE support: Zig offered little beyond syntax highlighting and basic autocompletion, prompting a return to command‑line work. This lack of heavyweight IDE tooling turned out to be refreshing, as the author found the plain `zig build test` workflow straightforward and eventually adopted a helix‑based editor setup.

Regarding project layout, Zig’s flat structure nudged the author toward keeping related code in fewer files, contrary to Rust’s tendency to create deep hierarchies of modules. The author noted that while nesting is possible, it introduces import friction and rarely improves readability, leading to a preference for keeping everything in one place unless a project genuinely requires hierarchy. Testing revealed another contrast: Rust’s default inline unit tests are convenient, whereas Zig’s equivalent approach felt verbose in a flat layout, prompting the author to place tests directly in model files after configuring them in build.zig.

Paradigm‑wise, the shift from Rust’s functional‑leaning style—zero‑cost iterators, immutable data, monadic combinators—to Zig’s imperative core was evident. Where Rust favored immutable transformations and combinators over iterators, Zig pushed the author toward in‑place mutation and explicit allocator handling. Manual memory management became a constant concern; every function needed an allocator, and forgetting to deinit or calling it twice produced leaks or corruption that the TestAllocator could help catch, but the discipline remained a noticeable shift from Rust’s automatic drop guarantees. Overall, the author found Zig’s low‑level clarity and speed appealing, while acknowledging that its younger ecosystem still lacks some of the polish and convenience features present in Rust.