HeadlinesBriefing favicon HeadlinesBriefing.com

Опыт перехода с Rust на Zig: JSONPath

Hacker News •
×

После семи лет работы разработчиком Rust, я изучил Zig, перереализовав свою библиотеку JSONPath (jsonpath-rust) как zig-jsonpath. Первым удивлением стала поддержка IDE: Zig предлагал малое, кроме подсветки синтаксиса, заставляя меня вернуться к CLI-инструментам. Это оказалось освежающим; build.zig элегантно обрабатывает тестирование и наборы соответствия с помощью команд вроде `zig build test` и `zig build compliance`. Этот опыт стал катализатором моего перехода с полноценной IDE на настройку helix + alacritty + zellij.

Философия плоской структуры Zig контрастирует с вложенными иерархиями Rust. В то время как Rust поощряет фрагментацию файлов, Zig подталкивает к более крупным, плоским файлам с простыми соглашениями об именовании вроде `model_<companion>`. Это масштабируется дальше, чем ожидалось, прежде чем потребуется настоящая иерархия. Трение импорта из-за вложенности отбивает охоту использовать глубокие папки, делая навигацию через срезы разделов в отдельных файлах удивительно эффективной.

Пришедший из функционального стиля и выразительных типов Rust, я опирался на межъязыковую интуицию, признавая, что мои решения в Zig формировались привычками Rust, а не глубокой идиомой Zig. Сравнение показалось справедливым с использованием спецификации JSONPath RFC 9535 — реального, пригодного проекта, а не игрушки. Низкоуровневый, легковесный подход Zig как преемника C оказывается убедительным, хотя кривая обучения включает отучение от паттернов Rust.

Ключевые сущности: Компании: Jet Brains