Clojure की आधिकारिक डॉक्यूमेंट्री
(clojure.org)- Clojure के वैश्विक fintech कंपनियों की infrastructure language के रूप में बढ़ने की यात्रा पर आधारित 1 घंटे की आधिकारिक डॉक्यूमेंट्री वीडियो जारी
- Clojure की अनोखी उत्पत्ति, मूल्य-केंद्रित community, और software सोच पर उसके प्रभाव को ट्रेस करते हुए परिचय कराया गया है
- YouTube लिंक: एक प्रोग्रामर के pet project ने software के बारे में हमारी सोच को कैसे बदल दिया
- शो नोट्स में Clojure की नींव बने मुख्य papers, किताबें, talks, और company case studies व्यवस्थित रूप से संकलित हैं
- Clojure, ClojureScript, ClojureCLR जैसे runtime और Babashka, Jank, ClojureDart जैसे extension projects भी साथ में पेश किए गए हैं
- आधिकारिक पेज AI tools, data science, editor integration, और community channels तक फैले Clojure ecosystem के लिए एक समग्र hub की भूमिका निभाता है
डॉक्यूमेंट्री का परिचय
- Clojure डॉक्यूमेंट्री बताती है कि कैसे Rich Hickey के 2 साल के sabbatical और एक जिद्दी विचार से शुरू हुई यह यात्रा दुनिया की सबसे बड़ी fintech कंपनियों में से एक के engineering stack को चलाने तक पहुँची
- इसमें Rich Hickey, Alex Miller, Stuart Halloway जैसे प्रमुख लोग शामिल हैं, और Clojure की गैर-पारंपरिक उत्पत्ति, मूल्य-केंद्रित community, तथा software सोच पर उसके प्रभाव की पड़ताल की गई है
- यह डॉक्यूमेंट्री Nubank के sponsorship से बनाई गई है
शो नोट्स
-
बुनियादी शोध-पत्र
- Out of the Tarpit (2006) — Ben Moseley & Peter Marks, यह बताता है कि software में mutable state आकस्मिक जटिलता का प्रमुख कारण है
- Ideal Hash Trees — Phil Bagwell, Hash Array Mapped Tries (HAMTs) पर शोध जिसने Clojure की persistent data structures को सीधे प्रेरित किया
- Composable Memory Transactions (2005) — Tim Harris आदि, Software Transactional Memory (STM) की अवधारणा प्रस्तुत करता है, जिसने Clojure के concurrency model को प्रभावित किया
- Paper Bibliography — Clojure विकसित करते समय Rich Hickey ने जिन papers का संदर्भ लिया, उनकी सूची, Michael Fogus द्वारा संकलित
-
प्रभावशाली पुस्तकें
- On Lisp — Paul Graham, advanced Lisp techniques पर एक प्रमुख पुस्तक, ऑनलाइन मुफ्त उपलब्ध
- Programming Clojure (4th ed.) — Alex Miller, Stuart Halloway, Aaron Bedra की सह-लिखित पुस्तक, पहला संस्करण Clojure 1.0 के साथ प्रकाशित हुआ था
- The Joy of Clojure — Michael Fogus & Chris Houser द्वारा लिखित
-
Rich Hickey के प्रमुख talks
- Simple Made Easy (2011) — "simple" और "easy" के अंतर को परिभाषित करने वाला प्रतिनिधि talk
- Clojure at LispNYC (2007) — Clojure की पहली सार्वजनिक प्रस्तुति
- Are We There Yet? (2009) — Clojure के state model और programming में time की अवधारणा का विश्लेषण
- Hammock Driven Development (2010) — code लिखने से पहले समस्या पर गहराई से सोचने वाले approach पर जोर
- The Value of Values (2012) — immutable values के महत्व पर जोर
- Writing Datomic in Clojure (2012) — Datomic को Clojure में लिखने के कारणों की व्याख्या
- Effective Programs - 10 Years of Clojure (2017) — Clojure के 10 साल के विकास और वास्तविक समस्याओं के समाधान पर केंद्रित feature prioritization की समीक्षा
- Talk Transcripts — Rich Hickey और community talks का archive
- Rich Hickey Talks — Rich के talk videos की playlist
-
Paul Graham के essays
- Beating the Averages, Revenge of the Nerds, और अन्य essay collection
-
प्रमुख कंपनियाँ और projects
- Cognitect — लंबे समय तक Clojure का रखरखाव करने वाली consulting company
- Nubank — दुनिया का सबसे बड़ा स्वतंत्र digital bank, जो Clojure और Datomic से core infrastructure चलाता है, और 2020 में Cognitect के अधिग्रहण के बाद Clojure development का नेतृत्व कर रहा है
- Datomic — immutable facts पर आधारित distributed database, जिसे Rich Hickey और Cognitect ने design किया
-
community और archive सामग्री
- Java.next Blog Series (2008) — JVM language trends पर Stuart Halloway की blog series
- Clojure IRC Log Archive — शुरुआती Clojure IRC channel के संरक्षित logs
- Clojure Etiquette — Rich की mailing list posts से निकली community etiquette guide
Clojure की dialects और runtimes
-
core
- Clojure — JVM पर चलता है, आधिकारिक getting started guide और मुफ्त शुरुआती पुस्तक Brave Clojure उपलब्ध
- ClojureScript — JavaScript में compile होता है और Reagent, Re-frame जैसी frontend libraries को support करता है
- ClojureCLR — .NET CLR पर चलने वाला Clojure
-
extensions
- Babashka — JVM startup time के बिना तेज scripting को support करता है
- Jank — LLVM को target करने वाला native compiler
- ClojureDart — Flutter आधारित mobile app development के लिए
- Squint / Cherry — ES modules में compile होने वाले ClojureScript variants
- Other Clojure-like projects — अन्य समान projects की सूची उपलब्ध
-
data science
- libpython-clj — Clojure से NumPy, pandas, scikit-learn जैसी Python libraries को सीधे call करता है
- Noj — SciCloj द्वारा विकसित Clojure-native data science toolkit, जो dataframe, visualization, और machine learning को एकीकृत करता है
- Tablecloth — Python integration और Clojure dataframe का संयोजन
-
Clojure और AI
- ECA (Editor Code Assistant) — code editing के लिए सहायक tool
- Backseat Driver — Copilot के लिए Clojure tool
- ClojureMCP — Claude, Codex, Gemini जैसे AI assistants को REPL से जोड़ने वाला MCP server
- MCP-nREPL — Babashka आधारित minimal MCP server, जो coding agents को nREPL access देता है
- clojure-mcp-light — LLM coding assistants के लिए lightweight CLI tool
- #ai-assisted-coding (Clojurians Slack) — AI और Clojure development से जुड़ा सक्रिय community channel
शुरुआत करना
- पूरा अनुभव — macOS, Linux, Windows के लिए installation videos सहित आधिकारिक guide उपलब्ध, VS Code में Calva का उपयोग
- सबसे तेज रास्ता — Babashka इंस्टॉल करने के बाद तुरंत scripting शुरू की जा सकती है, JVM setup की जरूरत नहीं
- वेब/frontend — ClojureScript + Shadow CLJS से शुरुआत करें
- mobile apps — ClojureDart से Flutter apps विकसित करें
- Python users — libpython-clj के जरिए Python libraries को सीधे call करें
- editor — Calva VS Code में REPL, structural editing, और AI integration (Backseat Driver) को support करता है, editor guide देखें
शब्दावली
- Lisp — भाषाओं का वह परिवार जो code को parentheses से घिरी nested lists के रूप में व्यक्त करता है; Clojure, Lisp की एक dialect है
- REPL — Read-Eval-Print Loop, एक interactive session जो expressions को पढ़ता है, evaluate करता है और परिणाम दिखाता है
- functional programming — programming की वह शैली जो mutable state और side effects को न्यूनतम रखती है और functions-केंद्रित होती है
- Value — ऐसा data जो बनने के बाद बदला नहीं जाता; Clojure डिफ़ॉल्ट रूप से immutable values का उपयोग करता है
- Persistent Data Structure — ऐसा collection जो संशोधन के समय पुराने versions को सुरक्षित रखता है; यहाँ "persistent" का अर्थ version preservation है
- Accidental Complexity — ऐसी जटिलता जो समस्या से नहीं बल्कि tools या design choices से पैदा होती है
- STM (Software Transactional Memory) — locks की जगह transactions से shared state changes को coordinate करने वाला concurrency model
- Hosted Language — ऐसी language जो अपने runtime की जगह किसी मौजूदा platform पर चलती है; Clojure JVM पर, ClojureScript JS पर, और ClojureCLR .NET पर चलता है
Clojure को follow करें और community
- YouTube, Reddit, Slack, LinkedIn आदि पर आधिकारिक channels संचालित हैं
- Clojure/Conj Conference 2026 — 30 सितंबर 2026 से 2 अक्टूबर 2026 तक Charlotte, North Carolina, USA में आयोजित होने वाली है
6 टिप्पणियां
Clojure आए काफी समय हो गया है, फिर अब Clojure की बात दोबारा क्यों उठ रही है, यह सोचकर जिज्ञासा होती है.
Clojure के शुरुआती दिनों में मुझे उस पर आई एक किताब की समीक्षा करने का अनुभव हुआ था. बाद में मैंने कुछ कंपनियों को इसे अपनाने की कोशिश करते देखा, लेकिन निष्कर्ष यही था कि कंपनियों में इसका इस्तेमाल करना आसान नहीं है. फिर लगा था कि यह शायद दबकर रह जाएगा, लेकिन अब फिर इसकी चर्चा क्यों हो रही है, यही सोचता हूँ.
मैंने Java को शुरुआती दौर से बहुत लंबे समय तक इस्तेमाल किया है, लेकिन JVM आज भी इसलिए बहुत इस्तेमाल होती है क्योंकि बड़ी कंपनियों में पहले से विकसित बहुत-सा software Java में है, (अमेरिका के मामले में) भारतीय workforce का बड़ा हिस्सा Java जानता है, और हाई स्कूल से लेकर विश्वविद्यालय तक Java पढ़ाई जाती है, वगैरह-वगैरह. फिर भी मेरी राय में यह अब इस दौर के लिए उपयुक्त नहीं रह गई है. मुझे Lisp पसंद है, लेकिन इतना niche language और ढलान पर जाती JVM शैली AI युग में फिर से क्यों चर्चा में आ रही है, इसका कौन-सा फायदा फिर से उभरकर सामने आया है, यह ऊपर के लेख में मुझे नहीं मिला.
मैंने functional programming language को ठीक से कभी नहीं सीखा है, इसलिए सोच रहा हूँ कि Clojure से शुरू करूँ। मुझे कैसे सीखना चाहिए? डेवलपर साथियों से बहुत-सी सलाह की अपेक्षा है।
मेरे अनुभव और कई लोगों के निष्कर्ष के अनुसार, functional language को pure functional language के रूप में पढ़ना ही मानक तरीका माना जाता था.
यह बात उस समय की है जब functional language उभर रही थीं और फिर काफ़ी ध्यान पा रही थीं, और मैं भी इससे सहमत था। मैंने Erlang के शुरुआती दौर में उसी से सीखा था, और उस समय वह काफ़ी झकझोर देने वाला और हैरान कर देने वाला अनुभव था।
तो फिर, आपने शुद्ध functional programming language को कैसे सीखा? मैंने अब तक programming languages (C, Go, Python, etc.) को development books + side projects के जरिए सीखा है, क्या functional programming language के लिए भी यही learning approach अपनाना ठीक रहेगा?
यह व्यक्ति-दर-व्यक्ति अलग हो सकता है, लेकिन मुझे लगता है कि कंप्यूटर से जुड़ी पढ़ाई ज़्यादातर लोग आपके बताए तरीके से ही करते हैं। आजकल वीडियो के ज़रिए पढ़ाई करने का विकल्प भी है, इसलिए अपने लिए उपयुक्त सीखने के तरीके को अपनाना चाहिए।
Hacker News टिप्पणियाँ
Clojure मेरे करियर में हुई सबसे अच्छी चीज़ थी
इस भाषा की वजह से मेरी सैलरी दोगुनी हो गई, और मैं एक ज़्यादा स्थिर इंडस्ट्री में जा सका
Heart of Clojure कॉन्फ़्रेंस का समावेशी माहौल वाकई शानदार था। आज भी कम्युनिटी सक्रिय है, और खासकर low-level काम के लिए Clojure dialect बनाने वाली Jank community का जुनून प्रभावशाली है
समस्या यह है कि ज़्यादातर कंपनियाँ भाषा की स्थिरता या प्रामाणिकता से ज़्यादा डेवलपर को आसानी से बदल पाने को महत्व देती हैं। नतीजतन क्वालिटी गिरती है, और AI से लोगों को बदलने की कोशिश में वे खुद अपनी कंपनी बर्बाद करने का दुष्चक्र बनाती हैं
Clojure को commercial तौर पर इस्तेमाल करते हुए मुझे यह देखकर हैरानी हुई कि बहुत से डेवलपर भाषा की philosophy, Rich Hickey के talks, या REPL के इस्तेमाल तक के बारे में नहीं जानते। फिर भी वे Clojure codebase मैनेज करने की पोज़िशन में थे, यह बात मुझे अजीब लगी
मैं Clojure पर इसलिए आया था क्योंकि इसका feedback loop छोटा था, और अगर उसका इस्तेमाल ही नहीं करना है तो फिर यह भाषा क्यों इस्तेमाल कर रहे हैं, समझ नहीं आता
Clojure की वजह से मैं पिछले 10 सालों से solo founder के तौर पर एक टिकाऊ बिज़नेस चला पाया
client और server ज़्यादातर business logic शेयर करते थे, इसलिए जटिल codebase भी मैनेज करना आसान था
सबसे बढ़कर, यह भाषा और इसका environment स्थिरता-केंद्रित है, इसलिए दूसरी भाषाओं की तरह हर कुछ साल में पैरों तले ज़मीन खिसकने जैसा अनुभव नहीं होता
Clojure नई या चमकदार भाषा नहीं है, लेकिन लंबे समय तक भरोसा करने लायक साथी है
पहले मैं हर दिन Clojure में कोड लिखता था, और Clojure/Conj में Rich Hickey के साथ डिनर करने की याद भी है
मेरा पहला startup भी पूरी तरह Clojure में बना था, और AWS के पास जब बहुत कम services थीं तब मैं Clojure को JS में compile करके Lambda पर चलाने वाला शुरुआती प्रयोगकर्ता था
अब भी इससे जुड़े वीडियो देखने का सोचकर उत्साह होता है
मैं 2013 से Clojure इस्तेमाल कर रहा हूँ, और यह मेरी ज़िंदगी पर बहुत सकारात्मक असर डालने वाली भाषा रही है
मैं थोड़ा गैर-पारंपरिक उपयोगकर्ता हूँ, और मेरी ज़्यादातर art projects Clojure में बनी हैं
startup चलाते समय भी Clojure की वजह से मैं burnout से बच सका
कम्युनिटी में भाग लेना भी मेरे लिए बहुत खुशी की बात रही, और इतने लोगों की प्रतिबद्धता के लिए मैं आभारी हूँ
Clojure एक शानदार भाषा और ecosystem है
शुरुआती दिनों में मैंने Rich के प्रोजेक्ट को donate किया था, और कुछ साल Clojure development से पैसे भी कमाए
अब मैं इसे अक्सर इस्तेमाल नहीं करता, लेकिन दो घंटे पहले भी अपनी पुरानी Clojure किताब के examples अपडेट करते हुए मज़ा आया
और क्या आपको लगता है कि Clojure ML/AI applications के लिए उपयुक्त है? Python के साथ interop अच्छा होने के बावजूद यह ज़्यादा व्यापक क्यों नहीं हुआ, यह भी जानना चाहूँगा
JVM पर Clojure मेरी पसंदीदा alternative language है
यह Lisp की परंपरा को आगे बढ़ाते हुए भी JVM को फिर से बनाने जैसी अव्यावहारिक बातों के बजाय host platform को अपनाने की philosophy रखता है, और यही बात आकर्षक लगती है
Zig भी कुछ ऐसा ही करता है, और मुझे लगता है कि इस तरह की integration philosophy adoption और practicality बढ़ाने का अहम बिंदु है
वाकई शानदार। बस borkdude का शामिल न होना अफ़सोसजनक है
jwr का “stable long-term companion” वाला अभिव्यक्ति मन में रह गया
जिन कंपनियों में मैंने काम किया, उनमें जो सिर्फ़ नई चीज़ों के पीछे भागती थीं, वे आखिरकार migration पर ज़्यादा समय खर्च करती थीं
स्थिरता सुनने में उबाऊ लग सकती है, लेकिन छोटे teams के लंबे समय तक टिके रहने का यही एकमात्र तरीका है
मुझे Clojure इस्तेमाल करना पसंद था, लेकिन मेरा ज़्यादातर काम C language के साथ interaction माँगता है, इसलिए इसे मुख्य भाषा बनाना मुश्किल था
मुझे पता नहीं था कि Datomic अब license-free है। पहले इसकी लागत बहुत ज़्यादा थी, इसलिए इस्तेमाल नहीं किया, लेकिन अब दिलचस्प लग रहा है
उदाहरण: Datalevin, Datahike, Asami
XTDB भी है, लेकिन उसने Datalog छोड़कर दूसरी दिशा ले ली
तुलना के लिए एक साइट भी है: Clojurelog (थोड़ी पुरानी है)