- Dada का लक्ष्य Rust जैसी भाषा बनाना है, लेकिन उसका अनुभव Java या JavaScript जैसा हो और वह C++ की तुलना में कम जटिल हो — यह एक thought experiment है
- यदि हम ऐसी भाषा की कल्पना करें जो kernel या छोटे embedded devices पर चलने के लिए न बनी हो, लेकिन जिसे न्यूनतम runtime की आवश्यकता हो, तो वह कैसी दिखेगी?
- Dada एक ownership-आधारित भाषा है और इसमें Rust से कुछ समानताएँ हैं:
- Rust की तरह Dada को garbage collector की आवश्यकता नहीं होती।
- Rust की तरह Dada memory safety और data race free होने की गारंटी देता है।
- Rust की तरह Dada data structures stack पर allocate होते हैं और flat memory layout का उपयोग करते हैं।
- लेकिन Dada कई मायनों में अलग भी है:
- TypeScript की तरह Dada एक gradually typed भाषा है:
- type annotations के बिना interpreter में Dada का उपयोग करके भाषा के काम करने के तरीके को समझा जा सकता है।
- जब आप परिचित हो जाएँ, तब type annotations जोड़कर Rust जैसी performance देने वाले compiler का उपयोग कर सकते हैं।
- Dada का मुख्य target WebAssembly है:
- Dada के लिए native targets बनाए जा सकते हैं, लेकिन इसका FFI system WebAssembly interface types पर आधारित है।
- Dada object-oriented है, लेकिन पूरी तरह शुद्ध रूप में नहीं:
- Dada OO और pattern matching जैसी अच्छी सुविधाओं को मिलाता है और Scala जैसी भाषाओं से प्रेरणा लेता है।
- Rust की तुलना में Dada की कुछ सीमाएँ भी हैं:
- Dada में एक अनिवार्य runtime है और यह "bare metal systems" या kernel को target नहीं करता।
- Dada inline assembly या मनमाने unsafe code को support नहीं करता।
Dada की वर्तमान स्थिति क्या है?
- इस समय Dada वास्तव में मौजूद नहीं है, बल्कि इसके कुछ experimental prototypes हैं:
- PLT Redex में implement किया गया एक experimental operational semantics
dada-lang/dada-model में पाया जा सकता है।
- Rust में लिखा गया interpreter
dada-lang/dada repository में उपलब्ध है, और Dada playground में इसका WebAssembly-आधारित build आज़माया जा सकता है।
GN⁺ की राय
- Dada आधुनिक programming languages के रुझानों को दर्शाता है। यह Rust की मुख्य खूबियाँ, जैसे memory safety और data race prevention, बनाए रखते हुए gradual typing और object-oriented approach के जरिए एक developer-friendly भाषा बनने की कोशिश करता है।
- WebAssembly को मुख्य target बनाना यह दिखाता है कि web-based application development में Dada की संभावनाएँ हो सकती हैं, और यह browser compatibility तथा platform independence को महत्व देने वाले आधुनिक web development trends के अनुरूप है।
- यदि Dada वास्तव में विकसित होकर व्यापक रूप से इस्तेमाल होने लगे, तो यह मौजूदा Rust developers को उच्च स्तर का abstraction और सुविधा दे सकता है, और Java या JavaScript developers के लिए system programming languages की ओर बढ़ना आसान बना सकता है।
- लेकिन Dada अभी शुरुआती चरण में है और production environments में इसकी performance तथा stability की पुष्टि नहीं हुई है, इसलिए कंपनियों और developers को इसे अपनाने से पहले सावधानी बरतनी होगी।
- Dada जैसे समान लक्ष्यों वाली अन्य भाषाओं में Kotlin और Swift शामिल हैं, जो पहले से व्यापक रूप से उपयोग में हैं और developers के लिए अच्छे विकल्प हो सकते हैं।
1 टिप्पणियां
Hacker News राय
"thought experiment language" की अवधारणा के प्रति लगाव
"Hello, Dada!" उदाहरण पर सवाल
awaitकी चिंता क्यों करनी चाहिए, यह सवाल है.इसके उलट तरह की भाषा की इच्छा
"async/await" पर आपत्ति
Java और JavaScript जैसी feel पर टिप्पणी
GC का न होना Rust को embedded systems में सुखद अनुभव बनाता है
Rust उपयोग अनुभव पर मिले-जुले भाव
type annotations जोड़कर Rust जैसी performance पाने के दावे में रुचि
ट्यूटोरियल के "print_point" method पर भ्रम
asyncऔरawaitके अर्थ पर अधिक विस्तृत व्याख्या चाहिए.async/awaitlazily computed values जैसी भूमिका निभाते हैं, और क्या अलग-अलग संयोजन type errors पैदा करते हैं.नई programming language के syntax उदाहरण खोजने पर असंतोष