PHP 3.0 থেকে Python, Perl ও Django টেমপ্লেট পর্যন্ত কয়েক দশকের ওয়েব অভিজ্ঞতা থাকা একজন ডেভেলপার সম্প্রতি Zig ব্যবহার করে ওয়েব ডেভেলপমেন্টে ফিরে এসেছেন। zio ও Dusty দিয়ে ব্যাকএন্ড তৈরি করে তাঁর বিশ্বাস জন্মেছে যে arena allocator ও Zig-এর comptime ওয়েব কাজকে বাস্তবসম্মত করে তোলে, এবং htmx বা Datastar JavaScript বা TypeScript ছোঁয়া ছাড়াই SPA তৈরির সুযোগ দেয়।
যা অনুপস্থিত ছিল তা হলো চারটি প্রয়োজন পূরণকারী একটি টেমপ্লেটিং সিস্টেম: কম্পাইল-টাইম টাইপ নিরাপত্তা, বরাদ্দ ছাড়া দ্রুত গতি এবং std.Io.Writer-এ সরাসরি লেখা, XSS ঠেকাতে ডিফল্টভাবে সব ইনপুটের এস্কেপিং, এবং এমন সিনট্যাক্স যা এখনও HTML লেখার মতো মনে হয়। কোনো বিদ্যমান বিকল্পই সবগুলো পূরণ করেনি। Ziex, তার JSX-অনুপ্রাণিত পদ্ধতি নিয়ে, কার্যকর ধারণা দিয়েছিল, কিন্তু সেটি WASM-কে লক্ষ্য করে, যা লেখকের প্রয়োজনের সাথে মেলেনি। Go-এর Templ সবচেয়ে স্পষ্ট মডেল দিয়েছিল।
ফলাফল হলো zt, Templ-এর একটি Zig রূপান্তর। টেমপ্লেট zig build-এর সময় পার্স হয়ে Zig-এ ট্রান্সপাইল হয়, তাই এগুলো অ্যাপ কোড ইমপোর্ট করতে পারে এবং অ্যাপ কোড এগুলো ইমপোর্ট করতে পারে। প্যারামিটার সম্পূর্ণ টাইপযুক্ত, এবং রেন্ডারিং ত্রুটি কম্পাইল-টাইমে ধরা পড়ে। তৈরি কোড কেবল একটি std.Io.Writer-এ লেখে, তা সকেট হোক বা বাফার।
ব্যবহার সহজ। টেমপ্লেট templ কীওয়ার্ড দিয়ে ঘোষণা করা হয়, @children-এর মাধ্যমে কম্পোনেন্ট নেস্ট করা যায়, এবং ঐচ্ছিক ব্যবহারকারী রেকর্ডের মতো টাইপযুক্ত প্যারামিটার গ্রহণ করে। HTML রেসপন্সের জন্য রেন্ডারিং সরাসরি বা Dusty-এর render হেল্পারের মাধ্যমে কল করা যায়।
উৎস: Hacker News · সারাংশ: HeadlinesBriefing