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