Racket v9.0
(blog.racket-lang.org)- Racket 9.0 एक प्रमुख रिलीज़ है, जिसमें Parallel Threads पेश किए गए हैं; यह मौजूदा green threads, futures और places सपोर्ट का विस्तार है
- नए threads को
#:poolargument के साथ बनाया जा सकता है, और#:keep 'resultsसेट करने परthread-waitसे बाद में परिणाम देखे जा सकते हैं black-boxwrapper ऑप्टिमाइज़िंग compiler को कुछ operations हटाने से रोकता है, जिससे benchmark की सटीकता बेहतर होती हैdecompile-linkletfunction linklet को फिर से S-expression में बदल सकता है, औरprocessor-countअब parallelism की संख्या लौटाता है- AArch64 के लिए “natipkg” package, Weibull distribution जोड़ी गई, और documentation improvements सहित कई अपडेट शामिल हैं
Racket 9.0 के प्रमुख बदलाव
-
इस रिलीज़ में Parallel Threads फीचर नया जोड़ा गया है
- Racket पहले से green threads, futures, और places को सपोर्ट करता था, लेकिन Parallel Threads एक प्रमुख विस्तार के रूप में जोड़े गए हैं
- Parallel Threads को
#:poolargument के जरिए बनाया जा सकता है, और#:keep 'resultsसेट होने परthread-waitके जरिए बाद में परिणाम प्राप्त किए जा सकते हैं
-
black-boxwrapper ऑप्टिमाइज़िंग compiler को कुछ गणनाओं को पूरी तरह हटाने से रोकता है- benchmark चलाते समय सटीक performance measurement सुनिश्चित करने में यह उपयोगी है
-
decompile-linkletfunction linklet को फिर से S-expression में मैप कर सकता है- code analysis और debugging के दौरान internal representation को पुनर्स्थापित करने की सुविधा देता है
-
BC Racket में
processor-countfunction को इस तरह बदला गया है कि वह हमेशा parallel processors की संख्या लौटाए- parallel execution environment में processor count को एकसमान तरीके से जांचा जा सकता है
-
AArch64 के लिए “natipkg” package नया जारी किया गया है, जिसे package build और test infrastructure में उपयोग किया जा सकता है
अतिरिक्त सुधार
- Check Syntax फीचर अब syntax objects के “origin” field के भीतर और गहराई में nested identifiers को ट्रैक कर सकता है
mathlibrary में Weibull distribution जोड़ी गई है- कई bug fixes और documentation improvements शामिल हैं
कम्युनिटी और भागीदारी
- इस रिलीज़ में Alexander Shopov, Bogdan Popa, Matthew Flatt, Matthias Felleisen सहित कई developers ने योगदान दिया
- Racket एक community-driven open source project है, और नए contributors का स्वागत करता है
- भाग लेने का तरीका racket/README.md में देखा जा सकता है
फ़ीडबैक और प्रचार अनुरोध
- सवाल और चर्चा Racket Discourse या Discord कम्युनिटी में की जा सकती है
- उपयोगकर्ताओं और platform-specific package managers के साथ रिलीज़ की खबर साझा करने के लिए प्रोत्साहित किया गया है
- आधिकारिक डाउनलोड: https://download.racket-lang.org
- रिलीज़ घोषणा: https://blog.racket-lang.org/2025/11/racket-v9-0.html
1 टिप्पणियां
Hacker News की राय
इस खबर का मुख्य बिंदु यह है कि Racket अब parallel threads को support करता है
पहले भी
placesजैसी parallelization methods थीं, लेकिन यह तरीका कहीं ज़्यादा हल्का और परिचित लगता हैमुझे Racket में चीज़ें बनाना पसंद है, इसलिए इससे Racket के उपयोग का दायरा बढ़ेगा, यह देखकर खुशी होती है
placesज़्यादा flexible नहीं थे। lambda को आसानी से pass नहीं किया जा सकता था, औरserializable-lambdaका व्यवहार इतना contagious था कि runtime पर function नहीं बल्कि सिर्फ data भेजा जा सकता थाइसलिए कई
placeमें काम बाँटने वाली संरचना बनाना मुश्किल थाउम्मीद है कि इस नई concurrency feature से यह संभव हो जाएगा
अब तक मैं इसी वजह से Racket की जगह GNU Guile इस्तेमाल करता रहा हूँ। Guile में
futuresयाfibersके जरिए multicore उपयोग कहीं ज़्यादा भरोसेमंद थामैंने भी
futuresका इस्तेमाल करके parallel decision-tree model बनाया था और लगभग linear speedup मिला थामैं Clojure developer हूँ, इसलिए Lisp परिवार की भाषाएँ पसंद हैं। Racket में लोग क्या बनाते हैं, यह जानने की जिज्ञासा है
इस वीडियो से लगता है कि Racket, अगर यह आपकी पहली भाषा नहीं है, तो कठिन महसूस हो सकती है, लेकिन बच्चों के सीखने लायक आसान भी है
मुझे Racket सचमुच बहुत पसंद है
मज़े के लिए मैंने Racket पर एक किताब लिखी थी, जिसे ऑनलाइन मुफ्त में पढ़ा जा सकता है
Scheme परिवार की भाषाओं में मैं Racket और Gerbil की सिफारिश करूँगा
Racket beginners के लिए अच्छा है क्योंकि इसका IDE अच्छा है और standard तथा third-party libraries भरपूर हैं, जबकि Gerbil system programming या network utilities के लिए अच्छा है
Racket वाकई एक शानदार भाषा है
यह सीखने के लिए अच्छी Lisp family की भाषा है, और DrRacket IDE में assignments करने की यादें आज भी हैं
मैंने 80 के दशक के मध्य में पहली बार Lisp के साथ प्रयोग किया था, और उसके बाद भी नई सोच और programming techniques सीखने के लिए बीच-बीच में लौटता रहा हूँ
मैंने Racket भी कई बार आज़माई, लेकिन किसी न किसी तरह यह software मुझसे मेल नहीं खाता था
हो सकता है लगातार इस्तेमाल करने पर यह ठीक लगे, लेकिन बड़े project को Racket में लिखना अभी भी मेरी कल्पना से बाहर है
यह Python से भी धीमी थी; Chez Scheme में rewrite होने के बाद शायद सुधार हुआ हो, लेकिन अभी मैं तेज़ और हल्की Common Lisp इस्तेमाल करता हूँ
मुझे Racket के बारे में तब पता चला जब देखा कि John Carmack ने 10 साल पहले Oculus से जुड़ा काम Racket में किया था
संबंधित वीडियो
Arc wiki article
Lisp अपने आप में एक meta-language है, और Racket उससे भी ज़्यादा meta है
इसे लगभग एक language creation kit कहा जा सकता है
जब मैंने PL class पढ़ाते समय Racket इस्तेमाल किया, तो छात्र Java या Python के अभ्यस्त थे, इसलिए उन्हें Lisp syntax में दिक्कत हुई
इस वजह से मुझे ठीक-ठीक समझ नहीं आता कि Racket आखिर किसके लिए बनी भाषा है
Bogdan Popa के ब्लॉग(defn.io) पर Racket के बारे में काफी दिलचस्प जानकारी है
नई threading feature को खुद आज़माने का इंतज़ार है
मैंने Racket कुछ बार आज़माई, लेकिन उसका IDE बहुत non-intuitive और awkward लगा
पता नहीं यह जानबूझकर ऐसा design है, या बस इसलिए कि इससे बेहतर विकल्प नहीं था
Racket को VSCode(Magic Racket, Langserver), Emacs(Racket Mode), Vim आदि में भी अच्छा support मिलता है
official docs और Langserver repository देख सकते हैं
DrRacket में macro stepper जैसी ऐसी features हैं जो दूसरी IDEs में नहीं मिलतीं, इसलिए वह अब भी उपयोगी है
Racket एक मज़ेदार भाषा है
हमारे विश्वविद्यालय में first-year CS class में Racket का educational version इस्तेमाल होता है
कुछ छात्रों को यह नापसंद है, लेकिन कुछ लोग चुपचाप इसे पसंद भी करते हैं