HeadlinesBriefing favicon HeadlinesBriefing.com

تجربة Zig مقابل Rust: إعادة كتابة JSONPath

Hacker News •
×

بعد سبع سنوات كمطور Rust، استكشفت Zig من خلال إعادة تنفيذ مكتبة JSONPath الخاصة بي (jsonpath-rust) باسم zig-jsonpath. كان أول مفاجأة هو دعم IDE: لم يقدم Zig سوى تمييز بناء الجملة، مما أجبرني على العودة إلى أدوات سطر الأوامر. تبين أن هذا منعش؛ يتعامل 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