HeadlinesBriefing favicon HeadlinesBriefing.com

Rust से Zig: JSONPath लाइब्रेरी अनुभव

Hacker News •
×

सात साल तक Rust डेवलपर रहने के बाद, मैंने अपनी JSONPath लाइब्रेरी (jsonpath-rust) को zig-jsonpath के रूप में पुनः लागू करके Zig का पता लगाया। पहला आश्चर्य IDE समर्थन था: Zig ने सिंटैक्स हाइलाइटिंग के अलावा बहुत कम पेशकश की, जिससे मुझे CLI टूलिंग पर वापस जाना पड़ा। यह ताज़ा साबित हुआ; build.zig `zig build test` और `zig build compliance` जैसे कमांड के साथ टेस्टिंग और कम्प्लायंस सूट को खूबसूरती से संभालता है। इस अनुभव ने मुझे एक पूर्ण IDE से helix + alacritty + zellij सेटअप पर स्विच करने के लिए प्रेरित किया।

Zig का फ्लैट स्ट्रक्चर दर्शन Rust के नेस्टेड पदानुक्रमों के विपरीत है। जबकि Rust फ़ाइल विखंडन को प्रोत्साहित करता है, Zig `model_<companion>` जैसे सरल नामकरण सम्मेलनों के साथ बड़े, फ्लैट फ़ाइलों की ओर धकेलता है। यह वास्तविक पदानुक्रम की आवश्यकता से पहले अपेक्षा से आगे तक स्केल करता है। नेस्टिंग से आयात घर्षण गहरे फ़ोल्डर्स को हतोत्साहित करता है, जिससे एकल फ़ाइलों में सेक्शन स्लाइसिंग के माध्यम से नेविगेशन आश्चर्यजनक रूप से प्रभावी होता है।

Rust की फंक्शनल शैली और अभिव्यंजक प्रकारों से आते हुए, मैंने क्रॉस-लैंग्वेज अंतर्ज्ञान पर भरोसा किया, यह स्वीकार करते हुए कि मेरे Zig निर्णय गहरे Zig मुहावरे के बजाय Rust की आदतों से आकार लिए गए थे। RFC 9535 के JSONPath विनिर्देश का उपयोग करके तुलना उचित लगी — एक वास्तविक, उपयोग करने योग्य प्रोजेक्ट न कि एक खिलौना। C उत्तराधिकारी के रूप में Zig का निचले स्तर का, हल्का दृष्टिकोण सम्मोहक साबित होता है, हालांकि सीखने की अवस्था में Rust पैटर्न को भूलना शामिल है।

मुख्य संस्थाएं: कंपनियां: Jet Brains