HeadlinesBriefing favicon HeadlinesBriefing.com

Bend 2 और वाइब-कोडिंग फंसाने की व्याख्या

Hacker News •
×

18 सितंबर, 2026 Bend मेरे वाइब-कोडिंग के सामान्य बिंदु के लिए एक उपयोगी उदाहरण के रूप में काम करता है, क्योंकि यह हाल का, उच्च-प्रोफ़ाइल है, और इसमें ऐसे पहलू हैं जो इसे उदाहरण के रूप में उपयोग करने में आसान बनाते हैं। मुझे लेखक के भाषा डिजाइनिंग में इतिहास के बारे में कुछ भी नहीं पता है, या यदि उन्होंने वास्तव में नीचे दिए गए ट्रेडऑफ पर विचार किया और मुझे लगता है कि एक खराब विकल्प चुना है। आप नीचे “लेखक” को “एक काल्पनिक लेखक” से बदल सकते हैं जिसने उसी चीज़ को बनाया हो सकता है। स्पष्ट रूप से, मुझे Bend में लिए गए डिज़ाइन निर्णय पसंद नहीं हैं, और मैं उन्हें प्रस्तुत करना चाहता था, हालांकि इसे मेरे द्वारा नीचे बताए जा रहे मुख्य बिंदु के साथ अत्यधिक मिला दिया गया है। मैं अब इसे संपादित नहीं करना चाहता और ऐसा दिखाना नहीं चाहता कि कोई भी मौजूदा टिप्पणी अत्यधिक कठोर हो रही है, इसलिए मुझे लगता है कि सबसे अच्छा समाधान यह है कि मैं बताऊं कि जब मैं इसे लिख रहा था तो मेरे मन में लेखक का मानसिक मॉडल कैसा था। यहाँ Bend के लेखक द्वारा एक टिप्पणी दी गई है। Bend 2 को AI कोडिंग युग के लिए एक भाषा के रूप में पेश किया जा रहा है: मनुष्य “कानून” लिखते हैं, AI कार्यान्वयन और प्रमाण लिखता है, और कंपाइलर जांचता है कि प्रमाण सही हैं। यह सब काफी प्रभावशाली लगता है, और मैं समझ सकता हूं कि क्यों कोई ऐसा भाषा चाहता होगा जो ऐसा करे। हालाँकि, इस विचार में कुछ प्रमुख समस्याएं हैं; हालाँकि, यही इस लेख का विषय नहीं है। इसके बजाय, मैं बताना चाहता हूं कि Bend खुद कैसे एक सामान्य वाइब-कोडिंग फंसाने में फंस गया है जिसका बहुत कम उल्लेख किया जाता है। आइए आधार से शुरू करते हैं कि Bend अपने होम पेज डेमो के लिए डेवलपर को क्या लिखने की आवश्यकता है:https://github.com/bendlang/bend/blob/main/demos/app_win_is_bug_2d/LAWS.bend मैं इसे यहाँ नहीं दोहराऊंगा क्योंकि कोड बहुत महत्वपूर्ण नहीं है। इस लेख के लिए महत्वपूर्ण बात यह है कि यह बहुत अधिक कोड है। बस यह कहने के लिए कि खिलाड़ी कभी भी ध्वज को नहीं छू सकता या खेल नहीं जीत सकता, 58 लाइनों कोड की आवश्यकता होती है। इसके अलावा, अन्य समस्याएँ हैं कि LLM Game सबप्रोग्राम को फिर से परिभाषित करके कुछ भी कर सकता है; हालाँकि, यह फिर से लेख का बिंदु नहीं है। अगला, आइए देखें कि इस प्रोग्राम के लिए कोड लिखने वाले LLM को “कानून” साबित करने के लिए क्या लिखने की आवश्यकता है:https://github.com/bendlang/bend/blob/main/demos/app_win_is_bug_2d/PROOF.bend यह बहुत अधिक है। उन सरल गुणों को साबित करने के लिए 442 लाइनों कोड की आवश्यकता होती है। तो मेरी इस समस्या क्या है? मैं इसे वाइब-कोडिंग फंसाने क्यों कह रहा हूँ? समस्या यह है कि वाइब-कोडिंग इसे संभव बनाता है कि कोई समस्या के बारे में पर्याप्त ज्ञान प्राप्त करने से पहले कि एक बहुत बेहतर समाधान मौजूद है, एक बड़ी समाधान बनाया जा सके। एक डेवलपर एक पूरी भाषा और कंपाइलर बना सकता है जबकि वह उस क्षेत्र के परिचयात्मक सर्वेक्षण द्वारा सीधे उनके सामने रखे गए दृष्टिकोण को छोड़ देता है। जिस क्षेत्र की बात हो रही है वह औपचारिक सत्यापन है। यह उल्लेखनीय है कि इन दो शब्दों — “औपचारिक सत्यापन” — Bend के वेबपेज या इसके कोडबेस में कहीं भी नहीं दिखते हैं। डेवलपर ने एक ऐसा क्षेत्र के चारों ओर एक पूरी भाषा बना दी है, जबकि उन्हें एहसास नहीं हुआ कि ऐसा क्षेत्र वास्तव में मौजूद है। इस समस्या को स्पष्ट रूप से दिखाने के लिए कि क्यों यह एक समस्या है, आइए Bend द्वारा अपने डेमो के रूप में उपयोग किए जाने वाले उसी कार्यक्रम को SPARK में फिर से बनाएं, जो औपचारिक सत्यापन के लिए एक ओपन-सोर्स भाषा और कंपाइलर है। Bend के साथ न्याय करने के लिए, मैंने खुद इसको वाइब-कोड किया है — मैंने बस एक LLM से कहा कि वह SPARK में इस डेमो को फिर से बनाए, कोई अतिरिक्त मार्गदर्शन दिए बिना:package Game with SPARK_Mode issubtype Column is Integer range 0 .. 11;subtype Row is Integer range 0 .. 7;type State is record X : Column; Y : Row; Won : Boolean;end record; Start : constant State := (8, 5, False);function Wall (X : Column; Y : Row) return Boolean is(((X = 3 or X = 11) and Y <= 3)or ((Y = 3 or Y = 7) and X <= 3));function Cell (X : Column; Y : Row) return Character is(if Wall (X, Y) then '#' elsif X = 1 and Y = 1 then 'F' else '.');-- Inductive invariant: outside the sealed room, off walls, not won.function Safe (G : State) return Boolean is((G. X > 2 or G. Y > 2) and not Wall (G.

X, G. Y) and not G. Won)with Ghost;procedure Step (G : in out State; Key : Character)with Post => (if Safe (G'Old) then Safe (G));-- Both Bend laws, including the actual cell drawn by the terminal.function Replay (Keys : St...