كلوجر
كلوجر ( تُلفظ / ˈkloʊʒər / ، مثل كلمة " closure" ) [ 17 ] [ 18 ] هي لهجة ديناميكية ووظيفية من لغة البرمجة ليسب على منصة جافا . [ 19 ] [ 20 ]
كغيرها من لغات ليسب، تعتمد لغة كلوجر في تركيبها على تعابير S التي تُحلل أولاً إلى هياكل بيانات بواسطة قارئ ليسب قبل ترجمتها . [ 21 ] [ 17 ] يدعم قارئ كلوجر الصيغة الحرفية للخرائط والمجموعات والمتجهات ، بالإضافة إلى القوائم، وتُترجم هذه إلى الهياكل المذكورة مباشرةً. [ 21 ] تتعامل كلوجر مع الشيفرة البرمجية كبيانات ، ولديها نظام ماكرو ليسب . [ 22 ] كلوجر هي ليسب-1، وليست مصممة لتكون متوافقة برمجياً مع لهجات ليسب الأخرى، لأنها تستخدم مجموعة هياكل بيانات خاصة بها غير متوافقة مع لغات ليسب الأخرى. [ 22 ]
تُشجع لغة كلوجر على ثبات البيانات وهياكلها ، وتُحفز المبرمجين على توضيح كيفية إدارة الهوية وحالاتها. [ 23 ] يهدف هذا التركيز على البرمجة باستخدام قيم ثابتة وبنى زمنية واضحة إلى تسهيل تطوير برامج أكثر قوة، وخاصةً البرامج المتزامنة ، التي تتميز بالبساطة والسرعة. [ 24 ] [ 25 ] [ 17 ] وبينما نظام أنواعها ديناميكي بالكامل ، فقد سعت الجهود الحديثة أيضًا إلى تطبيق نظام أنواع تابع . [ 26 ]
ابتكر ريتش هيكي هذه اللغة في منتصف العقد الأول من الألفية الثانية، وكانت مخصصة في الأصل لمنصة جافا؛ ومنذ ذلك الحين، تم نقلها إلى منصات أخرى، مثل بيئة تشغيل اللغة المشتركة (.NET). ولا يزال هيكي يقود تطوير اللغة بصفته قائدها المُخلص مدى الحياة .
تاريخ

ريتش هيكي هو مبتكر لغة كلوجر. [ 19 ] قبل كلوجر، طوّر dotLispمشروعًا مشابهًا مبنيًا على منصة .NET ، [ 27 ] وثلاث محاولات سابقة لتوفير التوافق بين لغتي ليسب وجافا : واجهة لغة جافا خارجية للغة كومون ليسب ، jfli[ 28 ] وواجهة كائنات خارجية للغة ليسب (FOIL)، [ 29 ] وواجهة سهلة الاستخدام للغة ليسب لبرامج جافا سيرفلت (Lisplets). [ 30 ]
بدأ هيكي العمل على لغة كلوجر في عام ٢٠٠٥ [ ٣١ ] [ ٣٢ ] ، وقضى نحو عامين ونصف في تطويرها قبل إطلاقها رسميًا في أكتوبر ٢٠٠٧ [ ٣٣ ] ، حيث أمضى معظم ذلك الوقت يعمل حصريًا على كلوجر دون أي تمويل خارجي. وساهمت زوجته، ستيفاني هيكي، في تصميم اللغة من خلال الاستماع الفعال والمشاركة في المناقشات دون كتابة أي سطر برمجي [ ٣٢ ] . وفي نهاية هذه الفترة، أرسل هيكي بريدًا إلكترونيًا يُعلن فيه عن اللغة إلى بعض الأصدقاء في مجتمع لغة كومون ليسب.
بحسب هيكي، فإن اسم كلوجر هو تلاعب لفظي بمفهوم البرمجة " closure " الذي يتضمن الأحرف C و L و J التي ترمز إلى لغات C# و Lisp و Java على التوالي - وهي ثلاث لغات كان لها تأثير كبير على تصميم كلوجر. [ 18 ]
تصميم
قام ريتش هيكي بتطوير لغة كلوجر لأنه أراد لغة ليسب حديثة للبرمجة الوظيفية ، تتكامل بسلاسة مع منصة جافا الراسخة ، ومصممة خصيصًا للتزامن . [ 24 ] [ 25 ] [ 34 ] [ 17 ] [ 32 ] كما أكد على أهمية البساطة في تصميم لغات البرمجة وهندسة البرمجيات، داعيًا إلى الترابط المرن ، وتعدد الأشكال عبر البروتوكولات وفئات الأنواع بدلًا من الوراثة ، واستخدام الدوال عديمة الحالة ذات مساحات الأسماء بدلًا من الطرق ، أو استبدال بناء الجملة بالبيانات . [ 35 ] [ 36 ] [ 31 ]
يتميز نهج كلوجر في التعامل مع الحالة بمفهوم الهويات، [ 23 ] التي تُمثَّل كسلسلة من الحالات الثابتة بمرور الوقت. وبما أن الحالات قيم ثابتة، يمكن لأي عدد من العمليات معالجتها بالتوازي، ويصبح التزامن مسألة إدارة التغييرات من حالة إلى أخرى. ولهذا الغرض، توفر كلوجر عدة أنواع مرجعية قابلة للتغيير ، لكل منها دلالات محددة جيدًا للانتقال بين الحالات. [ 23 ]
يعمل Clojure على منصة Java، وبالتالي يتكامل معها ويدعم استدعاء كود Java من Clojure بشكل كامل، [ 37 ] [ 17 ] كما يمكن استدعاء كود Clojure من Java أيضًا. [ 38 ] يستخدم مجتمع مطوري Clojure أدوات مثل واجهة سطر أوامر Clojure (CLI) [ 39 ] أو Leiningen لأتمتة المشاريع، مما يوفر دعمًا لتكامل Maven . تتولى هذه الأدوات إدارة حزم المشروع والتبعيات، ويتم تكوينها باستخدام صيغة Clojure.
باعتبارها لهجة من لهجات لغة ليسب، تدعم كلوجر الدوال ككائنات من الدرجة الأولى ، وحلقة قراءة-تقييم-طباعة (REPL)، ونظام ماكرو. [ 6 ] يشبه نظام ماكرو ليسب في كلوجر إلى حد كبير نظام ماكرو ليسب الشائع، باستثناء أن نسخة كلوجر من علامة الاقتباس الخلفية (المسماة "اقتباس بناء الجملة") تُؤهل الرموز بمساحة اسمها . يساعد هذا في منع التقاط الأسماء غير المقصود، حيث يُحظر الربط بالأسماء المؤهلة بمساحة الاسم. من الممكن فرض توسيع ماكرو الالتقاط، ولكن يجب القيام بذلك صراحةً. لا تسمح كلوجر بوحدات ماكرو قارئ مُعرّفة من قِبل المستخدم، ولكن القارئ يدعم شكلاً أكثر تقييدًا من التوسيع النحوي. [ 40 ] تدعم كلوجر الأساليب المتعددة [ 41 ] ، وبالنسبة للتجريدات الشبيهة بالواجهات ، لديها نظام تعدد أشكال قائم على البروتوكول [ 42 ] ونظام أنواع بيانات باستخدام السجلات ، [ 43 ] مما يوفر تعدد أشكال عالي الأداء وديناميكي مصمم لتجنب مشكلة التعبير .
Clojure has support for lazy sequences and encourages the principle of immutability and persistent data structures. As a functional language, emphasis is placed on recursion and higher-order functions instead of side-effect-based looping. Automatic tail call optimization is not supported as the JVM does not support it natively;[44][45][46] it is possible to do so explicitly by using the recur keyword.[47] For parallel and concurrent programming Clojure provides software transactional memory,[48] a reactive agent system,[1] and channel-based concurrent programming.[49]
Clojure 1.7 introduced reader conditionals by allowing the embedding of Clojure, ClojureScript and ClojureCLR code in the same namespace.[50][21] Transducers were added as a method for composing transformations. Transducers enable higher-order functions such as map and fold to generalize over any source of input data. While traditionally these functions operate on sequences, transducers allow them to work on channels and let the user define their own models for transduction.[51][52][53]
Extensible Data Notation
Extensible Data Notation, or edn,[54] is a subset of the Clojure language intended as a data transfer format. It can be used to serialize and deserialize Clojure data structures, and Clojure itself uses a superset of edn to represent programs.
edn is used in a similar way to JSON or XML, but has a relatively large list of built-in elements, shown here with examples:
- booleans:
true,false - strings:
"foo bar" - characters:
\c,\tab - symbols:
name - keywords:
:key - integers:
123 - floating point numbers:
3.14 - lists:
(a b 42) - vectors:
[a b 42] - maps:
{:a1,"foo":bar,[123]four} - sets:
#{ab[123]} - nil:
nil(a null-like value)
إضافةً إلى هذه العناصر، يدعم هذا النظام إمكانية التوسعة من خلال استخدام الوسوم ، التي تتكون من حرف #متبوع برمز. عند مصادفة وسم، يمرر القارئ قيمة العنصر التالي إلى المعالج المناسب، الذي يُعيد قيمة بيانات. على سبيل المثال، قد يكون هذا عنصرًا موسومًا: ، والذي يعتمد تفسيره على المعالج المناسب للقارئ.#myapp/Person{:first"Fred":last"Mertz"}
يتجنب هذا التعريف لعناصر الامتداد من حيث العناصر الأخرى الاعتماد على الاصطلاح أو السياق لنقل العناصر غير المدرجة في المجموعة الأساسية.
منصات بديلة
المنصة الأساسية للغة كلوجر هي جافا ، [ 20 ] [ 37 ] ولكن توجد تطبيقات أخرى مستهدفة. أبرزها كلوجر سكريبت، [ 55 ] التي تُترجم إلى ECMAScript 3 [ 56 ] (أو ES5 أو ES5-strict الأحدث، حتى ES-2021، وES-next ممكن) [ 57 ] وكلوجر سي إل آر، [ 58 ] وهي نسخة كاملة على منصة .NET ، قابلة للتشغيل البيني مع نظامها البيئي.
تتضمن التطبيقات الأخرى للغة كلوجر على منصات مختلفة ما يلي:
- باباشكا، [ 59 ] لغة برمجة نصية أصلية من نوع كلوجر تستفيد من صورة GraalVM الأصلية ومفسر كلوجر صغير
- ClojureDart، [ 60 ] توسيع نطاق Clojure ليشمل تطبيقات الجوال وسطح المكتب عن طريق نقل Clojure إلى Dart وFlutter
- Clojerl، [ 61 ] Clojure على BEAM ، الآلة الافتراضية Erlang
- basilisp، [ 62 ] لهجة من لغة Lisp متوافقة (تقريبًا) مع Clojure تستهدف Python 3.8+
- ClojureRS، [ 63 ] Clojure على Rust
- Ferret، [ 64 ] يتم تجميعه إلى C++11 مكتفية ذاتيًا يمكن تشغيلها على المتحكمات الدقيقة.
- jank، [ 65 ] Clojure الأصلي مُستضاف بلغة C++ على JIT قائم على LLVM
- جوكر، [ 66 ] مترجم ومدقق لغوي مكتوب بلغة غو
أدوات
شهدت أدوات تطوير Clojure تحسناً ملحوظاً على مر السنين. فيما يلي قائمة ببعض بيئات التطوير المتكاملة (IDEs) ومحررات النصوص الشائعة المزودة بإضافات تدعم البرمجة بلغة Clojure: [ 67 ]
- Emacs ، مع CIDER [ 68 ]
- IntelliJ IDEA ، مع Cursive [ 69 ] (تتوفر رخصة مجانية للاستخدام غير التجاري )
- Sublime Text ، مع Clojure Sublimed، [ 70 ] أو Tutkain، [ 71 ]
- Vim ، مع firefire.vim، [ 72 ] [ 73 ] vim-elin، [ 74 ] أو Conjure (Neovim فقط) [ 75 ] [ 76 ]
- Visual Studio Code ، مع Calva [ 77 ]
- مستقل عن بيئة التطوير المتكاملة: clojure-lsp [ 78 ] كخادم لغة ؛ clj-kondo [ 79 ] كأداة تدقيق لغوي (يستخدمها أيضًا clojure-lsp)
بالإضافة إلى الأدوات التي يوفرها المجتمع، أصبحت أدوات واجهة سطر الأوامر الرسمية لـ Clojure [ 39 ] متاحة أيضًا على Linux و macOS و Windows منذ Clojure 1.9. [ 80 ]
تطوير
تقتصر عملية التطوير على فريق Clojure الأساسي، مع أن المشكلات متاحة للجميع على صفحة مشروع Clojure في JIRA . [ 81 ] يمكن لأي شخص طرح الأسئلة أو تقديم المشكلات والأفكار على ask.clojure.org. [ 82 ] إذا تقرر أن مشكلة جديدة تستدعي إنشاء تذكرة JIRA، يقوم أحد أعضاء الفريق الأساسي بتقييمها وإضافتها. تتم معالجة مشكلات JIRA بواسطة فريق من المراجعين، ويتم اعتمادها نهائيًا من قبل ريتش هيكي. [ 83 ] [ 84 ]
تأثير
مع استمرار الاهتمام بالبرمجة الوظيفية، ازداد اعتماد لغة كلوجر من قِبل مطوري البرمجيات الذين يستخدمون منصة جافا. [ 85 ] وقد أوصى بهذه اللغة مطورو برمجيات مثل برايان غوتز، [ 86 ] [ 87 ] [ 88 ] وإريك إيفانز، [ 89 ] [ 90 ] وجيمس غوسلينغ ، [ 91 ] وبول غراهام ، [ 92 ] وروبرت سي. مارتن . [ 93 ] [ 94 ] [ 95 ] [ 96 ] وصفت شركة ثوت ووركس ، أثناء تقييمها للغات البرمجة الوظيفية ضمن تقريرها التقني "رادار التكنولوجيا"، [ 97 ] كلوجر بأنها "تطبيق بسيط وأنيق للغة ليسب على آلة جافا الافتراضية" في عام 2010 ، ورفعت تصنيفها إلى "معتمدة" في عام 2012. [ 98 ]
في "تقرير نظام JVM البيئي لعام 2018" (الذي وُصف بأنه "أكبر استطلاع رأي أُجري على الإطلاق لمطوري جافا")، والذي أُعدّ بالتعاون بين Snyk ومجلة جافا، صُنّفت لغة Clojure كثاني أكثر لغات البرمجة استخدامًا على JVM للتطبيقات الرئيسية. [ 99 ] تُستخدم Clojure في الصناعة من قِبل شركات [ 100 ] مثل Apple ، [ 101 ] [ 102 ] Atlassian ، [ 103 ] Funding Circle ، [ 104 ] Netflix ، [ 105 ] Nubank ، [ 106 ] Puppet ، [ 107 ] و Walmart ، [ 108 ] بالإضافة إلى وكالات حكومية مثل NASA . [ 109 ] كما استُخدمت أيضًا في الحوسبة الإبداعية، بما في ذلك الفنون البصرية والموسيقى والألعاب والشعر. [ 110 ]
في استطلاع مطوري Stack Overflow لعام 2023 ، احتلت لغة Clojure المرتبة الرابعة من حيث الإعجاب في فئة لغات البرمجة والنصوص البرمجية، حيث أعرب 68.51% من المشاركين الذين عملوا بها العام الماضي عن رغبتهم في مواصلة استخدامها. أما في فئة اللغات المرغوبة ، فقد اختارها 2.2% فقط من المشاركين، بينما حظيت لغة JavaScript، وهي الأعلى تقييمًا، برغبة 40.15 % من المطورين المشاركين في الاستطلاع. [ 111 ]
سجل الإصدارات
| إصدار | تاريخ الافراج عنه | الميزات الرئيسية والتحسينات |
|---|---|---|
| 17 أكتوبر 2007 ( 2007-10-17 ) [ 33 ] | الإصدار العام الأولي | |
| 1.0 | 4 مايو 2009 ( 2009-05-04 ) [ 112 ] | أول إصدار مستقر |
| 1.1 | 31 ديسمبر 2009 ( 2009-12-31 ) [ 113 ] | العقود الآجلة |
| 1.2 | 19 أغسطس 2010 ( 2010-08-19 ) [ 114 ] | البروتوكولات |
| 1.3 | 23 سبتمبر 2011 ( 2011-09-23 ) [ 115 ] | دعم أساسي مُحسّن |
| 1.4 | 15 أبريل 2012 ( 2012-04-15 ) [ 116 ] | نصوص القارئ الحرفية |
| 1.5 | 1 مارس 2013 ( 2013-03-01 ) [ 117 ] | مخفضات |
| 1.5.1 | 10 مارس 2013 ( 2013-03-10 ) [ 118 ] | إصلاح تسرب الذاكرة |
| 1.6 | 25 مارس 2014 ( 2014-03-25 ) [ 119 ] | واجهة برمجة تطبيقات جافا، خوارزميات تجزئة محسّنة |
| 1.7 | 30 يونيو 2015 ( 2015-06-30 ) [ 50 ] | المحولات، شروط القراءة |
| 1.8 | 19 يناير 2016 ( 2016-01-19 ) [ 120 ] | وظائف إضافية للسلاسل النصية، والربط المباشر، وخادم المقابس |
| 1.9 | 8 ديسمبر 2017 ( 2017-12-08 ) [ 121 ] | التكامل مع المواصفات وأدوات سطر الأوامر |
| 1.10 | 17 ديسمبر 2018 ( 2018-12-17 ) [ 122 ] | تحسين الإبلاغ عن الأخطاء، والتوافق مع لغة جافا |
| 1.10.1 | 6 يونيو 2019 ( 2019-06-06 ) [ 123 ] | العمل على حل مشكلة تراجع أداء جافا وتحسين الإبلاغ عن الأخطاء منclojure.main |
| 1.10.2 | 26 يناير 2021 ( 2021-01-26 ) [ 124 ] | تحسينات في قابلية التشغيل البيني/التوافق مع لغة جافا وإصلاحات لغوية هامة أخرى. |
| 1.10.3 | 4 مارس 2021 ( 2021-03-04 ) [ 125 ] | دعم prepl للشروط الخاصة بالقارئ |
| 1.11.0 | 22 مارس 2022 ( 2022-03-22 ) [ 126 ] | تمت إضافة صيغة جديدة لاستدعاء الوسائط الرئيسية، clojure.mathومساحة اسم جديدة، وإمكانية تسمية مساحات الأسماء بدون تحميل، ووظائف مساعدة جديدة إلىclojure.core |
| 1.11.1 | 5 أبريل 2022 ( 2022-04-05 ) [ 127 ] | التراجع عن التغيير غير المقصود في التسلسل الثنائي للكائنات من الأنواع clojure.lang.Keywordو clojure.lang.ArraySeq. |
| 1.11.2 | 8 مارس 2024 ( 2024-03-08 ) [ 128 ] | إصلاح ثغرة CVE-2024-22871 التي تُسبب حرمانًا من الخدمة |
| 1.12.0 | 5 سبتمبر 2024 ( 2024-09-05 ) [ 129 ] | قيم دوال جافا، وتلميحات أنواع المعاملات، وبنية فئة المصفوفة add-lib،clojure.java.process |
| 1.12.1 | 2 يونيو 2025 ( 2025-06-02 ) [ 130 ] | يتضمن ذلك إصلاحات للأخطاء، وتحسين التوافق بين البرامج، ودعمًا مُحسّنًا للأدوات، وتحديثات للبيانات الوصفية. |
| 1.12.2 | 25 أغسطس 2025 ( 2025-08-25 ) [ 131 ] | إصلاحات للإصدارات CLJ-2914 و CLJ-1798 و CLJ-2916 و CLJ-2917. |
| 1.12.3 | 25 أغسطس 2025 ( 2025-08-25 ) [ 132 ] | إصلاح للمشكلة CLJ-2919. |
| أحدث إصدار: 1.12.4 | 10 ديسمبر 2025 ( 2025-12-10 ) [ 8 ] | إصلاح للمشكلة CLJ-2924. |
أسطورة: غير مدعوم مدعوم أحدث إصدار نسخة معاينة الإصدار المستقبلي | ||
انظر أيضاً
مراجع
- 1 2 "الوكلاء والإجراءات غير المتزامنة" . Clojure.org . تم الاسترجاع في 2019-07-07 .
- ↑ "البرمجة المتزامنة" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ هيكي، ريتش؛ المساهمون. "core.async" . جيت هاب . تم الاسترجاع في 7 يوليو 2019 .
- ↑ "البرمجة الوظيفية" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ نولين، ديفيد؛ هيكي، ريتش. "core.logic" . جيت هاب . تم الاسترجاع في 7 يوليو 2019 .
- 1 2 "وحدات الماكرو" . Clojure.org . تم الاسترجاع في 2019-07-07 .
- ↑ إستيرهازي، باولوس. "دليل وحدات الماكرو المترابطة" . Clojure.org . تم الاسترجاع في 7 يوليو 2019 .
- 1 2 ميلر، أليكس (2025-12-10). "إصدار كلوجور 1.12.4" .
- ↑ فوجوس، مايكل (2011). "أسئلة وأجوبة مع ريتش هيكي" . CodeQuarterly.com . مؤرشف من الأصل بتاريخ 11 يناير 2017.
- ↑ هيكي، ريتش (2011). "البساطة أصبحت سهلة" . يوتيوب .
- ↑ بونير-سيرجنت، أمبروز (2012). نظام نوع اختياري عملي للغة كلوجر (أطروحة). جامعة غرب أستراليا.
- ↑ "برمجة كلوجر" (ملف PDF) . OReilly.com . تم الاطلاع عليه بتاريخ 30 أبريل 2013 .
- ↑ هيكي، ريتش. "رف كتب كلوجور" . Amazon.com . مؤرشف من الأصل بتاريخ 2017-10-03 . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ روز، كالفن؛ المساهمون. "لغة جانيت" . Janet-Lang.org . تم الاسترجاع في 18 فبراير 2023 .
- ↑ بالدريدج، تيموثي. "بيكسي" . جيت هاب . تم الاسترجاع في 2025-02-06 .
- ↑ راماتشاندرا، رامكومار. "الراين" . جيثب . تم الاسترجاع 2019-07-07 .
- 1 2 3 4 5 إدواردز، كاثرين (10 أغسطس 2009). "دليل لغات البرمجة: كلوجر" . Computerworld.com.au . مؤرشف من الأصل بتاريخ 26 أغسطس 2019.
- 1 2 هيكي، ريتش (2009-01-05). "معنى ونطق كلوجر" . Google.com .
- 1 2 كريل، بول (22-03-2012). "مخترع كلوجر، هيكي، يطمح الآن إلى تطوير نظام أندرويد" . InfoWorld.com .
- 1 2 "كلوجر" . Clojure.org . تم الاسترجاع في 2019-07-07 .
- 1 2 3 "القارئ" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- 1 2 "الاختلافات مع لغات Lisp الأخرى" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- 1 2 3 "القيم والتغيير: منهج كلوجر للهوية والحالة" . Clojure.org . تم الاطلاع عليه بتاريخ 7 يوليو 2019 .
- 1 2 هيكي، ريتش. "الأساس المنطقي" . Clojure.org . تم الاسترجاع في 2019-07-07 .
- 1 2 توري، تشارلز (2009-10-06). "من خبير إلى خبير: ريتش هيكي وبرايان بيكمان - نظرة من الداخل على كلوجر" . MSDN.com .
- ↑ "clojure/spec.alpha" . GitHub . 2017-04-26.
- ↑ هيكي، ريتش (16-10-2002). " [ إعلان ] دوت ليسب: لهجة ليسب لـ .نت" . Google.com .
- ↑ هيكي، ريتش (15-04-2013). "jfli" . SourceForge.net .
- ↑ هيكي، ريتش (2013-04-03). "foil: واجهة كائنات خارجية للغة Lisp" . SourceForge.net .
- ↑ هيكي، ريتش (2013-03-07). "ليسبليتس" . SourceForge.net .
- 1 2 "talk-transcripts/Hickey_Rich/EffectivePrograms.md at master · matthiasn/talk-transcripts" . GitHub . تم الاسترجاع في 2024-05-02 .
- 1 2 3 CultRepo (16 أبريل 2026). كيف غيّر مشروعٌ شخصيٌّ لأحد المبرمجين نظرتنا إلى البرمجيات . تم الاطلاع عليه بتاريخ 17 أبريل 2026 عبر يوتيوب.
- 1 2 هيكي، ريتش (2020-06-12). "تاريخ كلوجر" . وقائع مؤتمر ACM حول لغات البرمجة . 4 (HOPL): 1-46 . doi : 10.1145/3386321 . S2CID 219603760 .
- ↑ إلمندورف، ديرك (2010-04-01). "مهووس الحجم الاقتصادي - مقابلة مع ريتش هيكي، مبتكر كلوجر" . LinuxJournal.com .
- ↑ "البساطة أصبحت سهلة" . InfoQ . تم الاطلاع عليه بتاريخ 2024-05-02 .
- ↑ "(أفكار متكررة): مزايا البرمجة الموجهة نحو البيانات" . yogthos.net . تم الاطلاع عليه بتاريخ 2024-05-02 .
- 1 2 "مُستضاف على JVM" . Clojure.org . تم الاسترجاع في 2019-07-07 .
- ↑ "Java Interop" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- 1 2 ميلر، أليكس. "دليل التبعيات وواجهة سطر الأوامر" . Clojure.org . تم الاسترجاع في 2019-07-08 .
- ↑ هيكي، ريتش. "edn" . جيت هاب . تم الاسترجاع في 2019-07-07 .
- ↑ "الأساليب المتعددة والتسلسلات الهرمية" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ "البروتوكولات" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ "أنواع البيانات: deftype و defrecord و reify" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ غوتز، برايان (2014-11-20). "الإدارة الرشيدة: الجوانب المقلقة" . YouTube.com .
- ↑ روز، جون (12-07-2007). "استدعاءات الذيل في الجهاز الظاهري" . Oracle.com .
- ↑ روز، جون (11 فبراير 2009). "بعض اللغات تحتاج إلى القدرة على تنفيذ استدعاءات الذيل" . Java.net .
- ↑ "أشكال خاصة" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ "المراجع والمعاملات" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ هيكي، ريتش (2013-06-28). "قنوات كلوجر الأساسية غير المتزامنة" . Clojure.org .
- 1 2 ميلر، أليكس (30-06-2015). "Clojure 1.7 متوفر الآن" . Clojure.org .
- ↑ هيكي، ريتش (17-09-2014). "محولات الطاقة" . YouTube.com .
- ↑ هيكي، ريتش (2014-08-06). "المحولات قادمة" . Cognitect.com .
- ↑ هيكي، ريتش (2014-11-20). "داخل المحولات" . YouTube.com .
- ↑ "المواصفات الرسمية لـ EDN" . edn-format.org . 2022-04-27.
- ↑ "ClojureScript" . ClojureScript.org . تم الاطلاع عليه بتاريخ 2019-07-06 .
- ↑ "ClojureScript – الأسئلة الشائعة (لمطوري JavaScript)" . ClojureScript.org . تم الاطلاع عليه بتاريخ 4 فبراير 2018 .
- ↑ "خيارات مُصرّف ClojureScript" . clojurescript.org . تم الاطلاع عليه بتاريخ 1 يناير 2026 .
- ↑ "ClojureCLR" . GitHub . تم الاسترجاع في 28-06-2012 .
- ↑ بوركنت، ميشيل. "باباشكا" . موقع باباشكا . تم الاسترجاع 2019-08-19 .
- ↑ "ما هي ClojureDart؟" ، GitHub ، Tensegritics، 16-12-2022 ، تاريخ الاسترجاع 16-12-2022
- ↑ فاكورو، خوان. "كلوجيرل" . جيت هاب . تم الاسترجاع في 2019-07-06 .
- ↑ "basilisp" . GitHub . تم الاسترجاع في 13 مايو 2024 .
- ↑ "ClojureRS" . GitHub . تم الاسترجاع في 17-03-2022 .
- ↑ أكايا، نور الله. "النمس" . النمس-Lang.org . تم الاسترجاع 2019-07-06 .
- ^ ويلكرسون، جياي. "خردة" . يانك-Lang.org . تم الاسترجاع 2022-08-17 .
- ↑ باتايف، رومان. "الجوكر" . Joker-Lang.org . تم الاسترجاع في 2019-07-06 .
- ↑ ميلر، أليكس (2019-02-04). "نتائج "حالة كلوجر 2019" . Clojure.org .
- ↑ باتسوف، بوزيدار؛ المساهمون. "CIDER: بيئة تطوير تفاعلية رائعة للغة كلوجر" . CIDER.mx . تم الاطلاع عليه بتاريخ 5 يوليو 2019 .
- ↑ فليمنج، كولين. "Cursive: يوفر دعمًا كاملاً للغة Clojure و ClojureScript" . JetBrains.com . تم الاطلاع عليه بتاريخ 5 يوليو 2019 .
- ↑ بروكوبوف، نيكيتا. "Clojure سامية" . PackageControl.io . تم الاسترجاع 2023-02-18 .
- ↑ هيلينيوس، إيرو. "توتكين" . فلو ثينج.مي. تم الاسترجاع 2023-02-18 .
- ↑ بوب، تيم. "fireplace.vim: دعم Clojure REPL" . VIM.org . تم الاسترجاع في 2019-07-05 .
- ↑ مونرو، دومينيك (13 ديسمبر 2016). "كلوجر وفيم: نظرة عامة - إنه أمر ممكن للغاية" . JUXT.pro .
- ↑ ماساشي، إيزوكا (29 أبريل 2024). "vim-elin: بيئة تطوير Clojure لـ Vim/Neovim، مكتوبة أساسًا بلغة Babashka" . GitHub . مؤرشف من الأصل في 2 مايو 2024. تم الاطلاع عليه في 2 مايو 2024 .
- ↑ كالدول، أوليفر. "أدوات Neovim Clojure(Script) على prepl" . GitHub . تم الاسترجاع في 2019-11-09 .
- ↑ كالدول ، أوليفر (2019-11-06). "البدء باستخدام Clojure وNeovim وConjure في دقائق" . oli.me.uk.
- ↑ سترومبيرغ، بيتر. "كالفا: البرمجة التفاعلية باستخدام كلوجر وكلوجر سكريبت" . VisualStudio.com . تم الاطلاع عليه بتاريخ 5 يوليو 2019 .
- ↑ "نظرة عامة - Clojure LSP" . clojure-lsp.io . تم الاطلاع عليه بتاريخ 2024-05-02 .
- ^ clj-kondo/clj-kondo ، clj-kondo، 30-04-2024 ، استرجاعها 2024-05-02
- ↑ ميلر، أليكس (2017-12-08). "كلوجر 1.9" . Cognitect.com .
- ↑ "كلوجر" . Atlassian.net . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ "منتدى كلوجر" . clojure.org . تم الاطلاع عليه بتاريخ 20 مارس 2020 .
- ↑ هيكي، ريتش (26-11-2018). "المصدر المفتوح ليس متعلقًا بك" . جيت هاب .
- ↑ "سير العمل" . Clojure.org . تم الاطلاع عليه بتاريخ 2019-07-07 .
- ↑ رينكو، ماريك (18 أكتوبر 2023). "توقعات كلوجر في عام 2024" . فليكسيانا . تاريخ الاسترجاع: 27 مارس 2025 .
- ↑ غوتز، برايان (24 مايو 2020). "لغة جافا المفضلة لدى برايان غوتز (الجزء الأول من ثلاثة أجزاء)" . Twitch.tv .
- ↑ غوتز، برايان (24 مايو 2020). "لغة البرمجة المفضلة لدى برايان غوتز من بين لغات JVM غير جافا (الجزء الثاني من ثلاثة أجزاء)" . Twitch.tv .
- ↑ غوتز، برايان (24 مايو 2020). "لغة البرمجة المفضلة لدى برايان غوتز من بين لغات JVM غير جافا (الجزء 3 من 3)" . Twitch.tv .
- ↑ إيفانز، إريك (14 أغسطس 2018). "نمذجة الوقت: إريك إيفانز: تصميم المجال الموجه في أوروبا 2018" . YouTube.com .
- ↑ إيفانز، إريك (21-11-2014). "إريك إيفانز على تويتر" . Twitter.com .
- ↑ "لقاء جيمس جوسلينج مع مجتمع جافا في لندن" . YouTube.com . 2016-10-11.
- ↑ غراهام، بول (2016-05-06). "بول غراهام على تويتر" . Twitter.com .
- ↑ مارتن، روبرت (22-08-2019). "لماذا كلوجر؟" . CleanCoder.com .
- ↑ مارتن، روبرت (29-11-2018). "الرجل النبيل بوب مارتن على تويتر" . Twitter.com .
- ↑ مارتن، روبرت (2018-08-01). "مقدمة في البرمجة الوظيفية" . CleanCoders.com .
- ↑ مارتن، روبرت (2017-07-11). "البرمجة الوظيفية العملية" . CleanCoder.com .
- ↑ "رادار التكنولوجيا | دليل تحليلي لمشهد التكنولوجيا اليوم" . ثوت ووركس . تم الاطلاع عليه بتاريخ 20 مايو 2024 .
- ↑ "رادار التكنولوجيا: كلوجر" . ThoughtWorks.com . تم الاطلاع عليه بتاريخ 10 فبراير 2019 .
- ↑ مابل، سيمون؛ بينستوك، أندرو (17-10-2018). " تقرير نظام JVM البيئي لعام 2018" . Snyk.io.
- ↑ "قصص النجاح" . Clojure.org . تم الاطلاع عليه بتاريخ 27-10-2018 .
- ↑ ليوتيكوف، رومان (17-12-2017). "رومان ليوتيكوف على تويتر" . Twitter.com .
- ↑ "وظائف في شركة آبل" . Apple.com . تم الاطلاع عليه بتاريخ 2019-07-06 .
- ↑ بورخيس، ليوناردو (2015-07-07). "التعاون في الوقت الفعلي باستخدام كلوجر" . YouTube.com .
- ↑ بيثر، جون (2016-10-04). "كلوجر في لندن: دائرة التمويل - إقراض بعض كلوجر" . JUXT.pro .
- ↑ ويليامز، أليكس (2014-08-03). "صانعو التقنيات الجديدة: أدريان كوكروفت يتحدث عن صن، ونتفليكس، وكلوجر، وجو، ودوكر، والمزيد" . TheNewStack.io .
- ^ "Nubank يستحوذ على شركة Norte-americana de tecnologia Cognitect" . 23 يوليو 2020.
- ↑ برايس، كريس (11 أبريل 2014). "عصر جديد لخدمات التطبيقات في مختبرات بابيت" . Puppet.com . تم الاطلاع عليه بتاريخ 6 أغسطس 2020 .
- ↑ فيليبس، مارك (14 يوليو 2015). "وول مارت تُشغّل كلوجر على نطاق واسع" . Cognitect.com .
- ↑ "مستودع البيانات الوصفية المشترك" . جيت هاب . تم الاسترجاع في 2019-07-06 .
- ↑ ماير، كارين (2015-05-06). "الحوسبة الإبداعية باستخدام كلوجر" . OReilly.com .
- ↑ "استطلاع رأي مطوري ستاك أوفرفلو لعام 2023" . ستاك أوفرفلو . تم الاطلاع عليه بتاريخ 2024-05-02 .
- ↑ هيكي، ريتش (2009-05-04). "كلوجر 1.0" . BlogSpot.com .
- ↑ هيكي، ريتش (31-12-2009). "إصدار كلوجر 1.1" . BlogSpot.com .
- ↑ هيكي، ريتش (19 أغسطس 2010). "إصدار كلوجر 1.2" . Google.com .
- ^ ريدينجر ، كريستوفر (23/09/2011). " [ ANN ] تم إصدار Clojure 1.3" . جوجل.كوم .
- ↑ ديبرت، آلان (17 أبريل 2012). " [ إعلان ] إصدار كلوجر 1.4" . Google.com .
- ↑ هالوواي، ستيوارت (2013-03-01). "إعلان: كلوجر 1.5" . Google.com .
- ↑ هالوواي، ستيوارت (10-03-2013). "كلوجور 1.5.1" . Google.com .
- ↑ ميلر، أليكس (25-03-2014). " [ ANN ] كلوجر 1.6" . Google.com .
- ↑ ميلر، أليكس (19 يناير 2016). "كلوجر 1.8 متوفر الآن" . Clojure.org .
- ↑ ميلر، أليكس (2017-12-08). "كلوجر 1.9 متوفر الآن" . Clojure.org .
- ↑ ميلر، أليكس (17-12-2018). "إصدار Clojure 1.10" . Clojure.org .
- ↑ ميلر، أليكس (2019-06-06). "إصدار Clojure 1.10.1" . Clojure.org .
- ↑ ميلر، أليكس (2021-01-26). "إصدار Clojure 1.10.2" . Clojure.org .
- ↑ ميلر، أليكس (2021-03-04). "إصدار Clojure 1.10.3" . Clojure.org .
- ↑ ميلر، أليكس (22-03-2022). "إصدار Clojure 1.11.0" . Clojure.org .
- ↑ ميلر، أليكس (2022-04-05). "إصدار Clojure 1.11.1" . Clojure.org .
- ↑ ميلر، أليكس (2024-03-08). "إصدار Clojure 1.11.2" . Clojure.org .
- ↑ ميلر، أليكس (2024-09-05). "إصدار Clojure 1.12.0" . Clojure.org .
- ↑ ميلر، أليكس (2025-06-02). "إصدار كلوجور 1.12.1" .
- ↑ ميلر، أليكس (2025-08-25). "إصدار كلوجور 1.12.2" .
- ↑ ميلر، أليكس (2025-09-25). "إصدار كلوجور 1.12.3" .
للمزيد من القراءة
- سوتنيكوف، ديمتري (2020). تطوير مواقع الويب باستخدام كلوجر ( الطبعة الثالثة). براغماتيك بوكشيلف . ISBN 978-1-68050-682-2.
- أولسن، روس (2018). تعلم كلوجر . مكتبة براغماتيك . رقم ISBN 978-1-68050-300-5.
- ميلر، أليكس؛ هالواي، ستيوارت؛ بيدرا، آرون (2018). برمجة كلوجر ( الطبعة الثالثة). مكتبة براغماتيك . رقم ISBN 978-1-68050-246-6.
- ماير، كارين (2015). كلوجر الحية: مقدمة وخطة تدريب للمطورين ( الطبعة الأولى). دار نشر أورايلي ميديا . رقم ISBN 978-1-491-90904-1.
- راثور، أميت؛ أفيلا، فرانسيس (2015). كلوجر في العمل ( الطبعة الثانية). منشورات مانينغ . ISBN 978-1-61729-152-4.
- هيغينبوثام، دانيال (2015). كلوجر للشجعان والصادقين . دار نشر نو ستارش . رقم ISBN 978-1-59327-591-4.
- غامبل، جوليان (2015). وصفات كلوجر . دار نشر بيرسون . رقم ISBN 978-0-32192-773-6.
- فاندغريفت، بن؛ ميلر، أليكس (2015). تطبيقات كلوجر . مكتبة براغماتيك . رقم ISBN 978-1-68050-074-5.
- روتشستر، إريك (2015). كتاب طبخ تحليل البيانات باستخدام كلوجر ( الطبعة الثانية). دار نشر باكت . رقم ISBN 978-1-78439-029-7.
- فوجوس، مايكل؛ هاوزر، كريس (2014). متعة كلوجر ( الطبعة الثانية). منشورات مانينغ . ISBN 978-1-617291-41-8أُرشف من المصدر الأصلي بتاريخ 23 أكتوبر 2018. تم الاطلاع عليه بتاريخ 5 نوفمبر 2018 .
- كيلكر، رايان (2013). كلوجر للغات الخاصة بالمجال . دار نشر باكت . رقم ISBN 978-1-78216-650-4.
- روتشستر، إريك (2014). إتقان تحليل البيانات باستخدام كلوجر . دار نشر باكت . رقم ISBN 978-1-78328-413-9.
- إيمريك، تشاس؛ كاربر، برايان؛ غراند، كريستوف (19 أبريل 2012). برمجة كلوجر . دار نشر أورايلي ميديا . رقم ISBN 978-1-4493-9470-7.
- فاندرهارت، لوك؛ سييرا، ستيوارت (7 يونيو 2010). كلوجر عملي . أبريس . ISBN 978-1-4302-7231-1.
روابط خارجية
| 1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LISP 1، 1.5، LISP 2 (مهجورة) | |||||||||||||||
| ماكليس | |||||||||||||||
| تداخل | |||||||||||||||
| MDL | |||||||||||||||
| آلة التأتأة | |||||||||||||||
| مخطط | R5RS | R6RS | R7RS صغير | ||||||||||||
| لا شيء | |||||||||||||||
| ZIL (لغة تنفيذ Zork) | |||||||||||||||
| فرانز ليسب | |||||||||||||||
| muLisp | |||||||||||||||
| لغة الشفرة الشائعة | معيار ANSI | ||||||||||||||
| لي لِسْب | |||||||||||||||
| مخطط معهد ماساتشوستس للتكنولوجيا | |||||||||||||||
| XLISP | |||||||||||||||
| تي | |||||||||||||||
| شيز سكيم | |||||||||||||||
| إيماكس ليسب | |||||||||||||||
| أوتو ليسب | |||||||||||||||
| PicoLi sp | |||||||||||||||
| غامبيت | |||||||||||||||
| EuLisp | |||||||||||||||
| لغة ISLISP | |||||||||||||||
| أوبن ليسب | |||||||||||||||
| مخطط PLT | مضرب | ||||||||||||||
| لغة نيو ليسب | |||||||||||||||
| جنو غايل | |||||||||||||||
| لغة ليسب المرئية | |||||||||||||||
| كلوجر | |||||||||||||||
| قوس | |||||||||||||||
| LFE | |||||||||||||||
| هي | |||||||||||||||
- برنامج 2007
- برامج مجانية متعددة المنصات
- برامج متعددة المنصات
- لغات البرمجة الديناميكية
- لغات البرمجة ذات الكتابة الديناميكية
- لغات برمجة ذات بنية قابلة للتوسيع
- اللغات الوظيفية
- لغات البرمجة عالية المستوى
- لغات برمجة JVM
- لغة البرمجة ليسب
- عائلة لغات البرمجة ليسب
- لغات البرمجة متعددة الأنماط
- لغات البرمجة
- لغات البرمجة التي تم إنشاؤها في عام 2007
- لغات البرمجة النصية
- برنامج يستخدم رخصة إكليبس العامة
- مترجمات من المصدر إلى المصدر
