नमस्ते, मैं 8 साल के अनुभव वाला एक फ्रंटएंड डेवलपर हूँ.
AI की मदद से DSL compiler डिज़ाइन करने और arXiv पर पेपर तक
अपलोड करने के अपने अनुभव को मैंने इस लेख में संजोया है.
- कई SaaS बनाते हुए मुझे यह एहसास हुआ कि "हर domain में वही संरचना बार-बार दोहराई जाती है" — यहीं से यह यात्रा शुरू हुई
- मैंने AI को सिर्फ coding assistant की तरह नहीं, बल्कि अलग-अलग क्षेत्रों के विशेषज्ञों की सोच उधार लेने वाले tool की तरह इस्तेमाल किया
- असफलता की लागत संरचनात्मक रूप से कम हो जाने से, architecture को चार बार पूरी तरह बदलने के बाद भी मैं project को आगे बढ़ा सका
- साथ ही, उस बाकी 20% की अहमियत भी गहराई से महसूस हुई जिसे AI भर नहीं सकता — यह intuition कि "अभी आप गलत सवाल पूछ रहे हैं"
यह AI के उपयोग की संभावनाओं और सीमाओं, दोनों को एक साथ महसूस कराने वाला एक ईमानदार अनुभव-वृत्तांत है.
11 टिप्पणियां
मुझे यह नहीं पता कि formal language क्या है, लेकिन
state,computedवेरिएबल लगते हैं औरactionफ़ंक्शन जैसा दिखता है—तो इनमें फर्क क्या है? लेख को पढ़ते हुए कभी लगता है कि शायद state diagram बनाया गया है, लेकिन फिर यह समझ नहीं आता कि domain के दोहराए जाने वाली बात का उससे क्या संबंध है। लेख में आए शब्द ऐसे नहीं हैं जिन्हें मैं नहीं जानता, फिर भी यह ठीक से पढ़ा नहीं जा रहा है।उदाहरण के लिए, मान लीजिए हम एक signup form बना रहे हैं.
मान लें कि signup form में हम नाम, लिंग, उम्र, और military discharge status — ये 4 चीज़ें लेते हैं.
और यह भी मान लें कि एक अतिरिक्त शर्त आती है:
"अगर लिंग पुरुष हो, तो select box दिखाया जाए और military discharge status पूछा जाए"
और अगर एक submit button भी है, तो उसे हम आम तौर पर signup के domain model के रूप में देख सकते हैं.
तो इस समय नाम, लिंग, उम्र, और military discharge — ये 4 चीज़ें domain की state कहलाती हैं,
military discharge पूछने वाले select box की visibility, लिंग से निकला हुआ computed है,
और signup button पर action map होता है.
शायद मेरी लिखने की शैली बहुत अच्छी नहीं है, इसलिए मैं इसे आसानी से पढ़े जाने लायक तरीके से नहीं लिख पाया.
कृपया अवधारणा को मोटे तौर पर वैसा ही समझें जैसा ऊपर समझाया गया है.
शायद मैं इसे पूरी तरह ठीक-ठीक समझ नहीं पाया, लेकिन मोटे तौर पर यह कैसा एहसास है, इतना समझ आ रहा है.
धन्यवाद.
अच्छा लगा पढ़कर। आपने ब्लॉग में जो लिखा, वह भी। पता नहीं यह उपमा ठीक बैठती है या नहीं, लेकिन मुझे लगता है कि भाषाओं का सबसे पहला tutorial
Hello World!होने की वजह, और पहले जब web development सीखते समय हम bulletin board और shopping mall बनाते हुए सीखते थे, वह आखिरकार आपकी बात से मिलती-जुलती ही है। पहले मैं ऐसा सोचता था कि अगर आपके पास bulletin board और shopping mall बना सकने लायक technique है, तो ज़्यादातर web को implement किया जा सकता है। और आखिरकार, अंततः programming में बस Input और Output ही होते हैं।मुझे लगता है यह उपमा उपयुक्त है। मेरा प्रोजेक्ट भी वस्तुतः केवल दो चीज़ों—मनुष्य के Intent और Snapshot—से ही बना है.
आखिरकार, मैं यह सोच रहा था कि मेरे प्रोजेक्ट को आगे जिस दिशा में जाना चाहिए, वह यह है कि इंसानी इरादे (eg. key input, mouse click) की गणना कैसे की जाए और उन्हें किस तरह अर्थ दिया जाए।
संक्षेप में, क्या इसका मतलब है कि state diagram बनाने के लिए एक mini language बनाई गई है?
नहीं, जो
state diagramमैंने दिखाया था, वह Manifesto के अंदर होने वाले state transitions को visualize करने के तरीकों में से एक है.हमने deterministic state machine को एक framework के रूप में बनाया है.
Manifesto Core के अंदर की calculations को इस तरह design किया गया है कि एक ही state और command पर हमेशा वही एक जैसा result निकले.
लगता है आपने एक DSL बनाया है, यह तो समझ में आया, लेकिन deterministic state machine से आपका क्या मतलब है, यह ठीक से समझ नहीं आया। यह भी सोच रहा था कि क्या non-deterministic state machine भी होता है... खैर, अच्छी तरह पढ़ा। आशा है आप इसे आगे भी अच्छे से विकसित करते रहेंगे।
आह, सर, आपकी आपत्ति सही है। state machine अपने-आप में deterministic ही होती है। मैंने manifesto में जो शामिल किया है, वह non-Turing-complete आधार है, इसलिए DSL के अंदर loop मौजूद नहीं हैं। इसकी वजह से program चलाने से पहले ही यह गणना करना संभव है कि program कैसे काम करेगा, और यह भी समझाया जा सकता है कि ऐसा परिणाम क्यों आया।
आपकी टिप्पणी के लिए धन्यवाद!
दिलचस्प लगा पढ़कर। काफी बातें जुड़ाव पैदा करने वाली लगीं। उत्साह भी है, और डर भी।
दिलचस्पी से पढ़ने के लिए धन्यवाद।
इन दिनों यह सोचने की बहुत चिंता होती है कि आगे तेज़ी से बदलते समय के प्रवाह में हमें कैसे जीना चाहिए।