Wren की खास बातों के बारे में जानिए।
Wren एक छोटी, तेज़, क्लास आधारित कॉनकरेंट स्क्रिप्टिंग भाषा है। सोचिए, Lua के आकार के एक पैकेज में Smalltalk, ऊपर से Erlang की एक झलक, और वह भी परिचित, आधुनिक सिंटैक्स में लिपटी हुई।
छोटा। VM पढ़ने योग्य और प्यार से टिप्पणी किए गए C के 4,000 से भी कम सेमीकोलन में है।
तेज़। एक समझदार, सिंगल-पास कंपाइलर कसा हुआ और कुशल बाइटकोड बनाता है।
क्लास आधारित। क्लास और ऑब्जेक्ट सबके केंद्र में हैं।
कॉनकरेंट। हल्के फाइबर भाषा में ही बने हुए हैं।
स्क्रिप्टिंग। एम्बेड करने योग्य, कोई डिपेंडेंसी नहीं, एक छोटी स्टैंडर्ड लाइब्रेरी, और इस्तेमाल में आसान C API.
Wren का दिल VM है। Wren वर्चुअल मशीन भाषा का मूल है और सारे Wren सोर्स कोड को चलाती है। VM सिर्फ एक लाइब्रेरी है, कोई अलग से चलने वाला एप्लिकेशन नहीं। इसे इस तरह बनाया गया है कि किसी बड़े होस्ट एप्लिकेशन के अंदर एम्बेड किया जा सके।
आप Wren को इन जैसी परियोजनाओं में एम्बेड किया हुआ पा सकते हैं:
आप Wren को अपनी परियोजनाओं के अंदर भी एम्बेड कर सकते हैं। Exercism के लिए हम जिस होस्ट एप्लिकेशन का उपयोग करेंगे वह Wren Console है - जिससे हम टर्मिनल से अपनी Wren स्क्रिप्ट चला और जाँच सकते हैं।
Wren को शुरू में Bob Nystrom ने बनाया था, जो Crafting Interpreters की वजह से जाने जाते हैं। उन्होंने कई भाषाएँ बनाई हैं, लेकिन Wren बनाने के पीछे की वजह उन्होंने खुद साफ़-साफ़ बताई है:
एप्लिकेशन में एम्बेड करने के लिए कुछ स्क्रिप्टिंग भाषाएँ हैं। इनमें Lua सबसे बड़ी है। पहले TCL हुआ करती थी। Guile भी है, JavaScript का इस्तेमाल बढ़ता जा रहा है, और कुछ एप्लिकेशन Python को भी एम्बेड करते हैं। मैं पहले गेम डेवलपर था, इसलिए जब मैं "स्क्रिप्टिंग" सोचता हूँ तो मेरा मतलब आम तौर पर "गेम स्क्रिप्टिंग" होता है।
Lua अच्छी है: छोटी, सरल और तेज़। लेकिन, और मैं यह आलोचना के तौर पर नहीं कह रहा, अगर आप C++ और Java जैसी भाषाओं के आदी हैं तो यह अजीब भी लगती है। इसका सिंटैक्स अलग है। इसका अर्थ, खासकर ऑब्जेक्ट मॉडल, असामान्य है। 1 से शुरू होने वाले इंडेक्स की आदत किसी को भी लग सकती है, लेकिन मेटाटेबल जैसी चीज़ें साफ़ बताती हैं कि ऑब्जेक्ट बाद में Lua पर बाहर से जोड़ दिए गए थे।
मेरा मानना है कि Lua जितनी सरल भाषा के लिए जगह है, बस ऐसी भाषा जो OOP का अनुभव रखने वाले व्यक्ति को स्वाभाविक लगे। Wren मेरी उसी दिशा में एक कोशिश है।
आप अपने वेब ब्राउज़र में इसे एक बार आज़मा सकते हैं (कुछ भी इंस्टॉल किए बिना)। अगर आप Wren को एक बढ़िया UI में लिपटा हुआ आज़माना चाहते हैं, तो Wren Playground पर एक नज़र डालिए।