Reference OS v8 5 دقائق قراءة ١٧ مايو ٢٠٢٦ informational: فهم أداة تقنية جديدة وتقييم فائدتها وطريقة تجربتها Let-Go: لغة برمجة شبيهة بـ Clojure مكتوبة بلغة Go تنطلق في 7ms – دليل تجريبي عربي ستتمكن…

Show HN: I made a Clojure-like language in Go, boots in 7ms
اختر القسم الذي تحتاجه الآن
الفكرة التي تمنع التسرع
تعتقد أن مشاريع GitHub الجديدة صعبة التركيب ومخصصة للمطورين المتقدمين فقط؟ لكن Let-Go يثبت العكس: أداة خفيفة وسريعة يمكن لأي مطور متوسط تجربتها.
قبل أن تطبق، اعرف أين تقف بالضبط
لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه
ظهر مشروع Let-Go على Hacker News تحت عنوان "Show HN: I made a Clojure-like language in Go, boots in 7ms". الفكرة: لغة برمجة جديدة مكتوبة بلغة Go، متوافقة بنسبة 90% مع Clojure، وتقلع أسرع 50 مرة من JVM. هذا الدليل يشرح لك ما هو Let-Go، وكيف تجربه بنفسك، مع تحذير صريح: README المشروع غير واضح، لذا الخطوات هنا تقريبية بناءً على بنية المشروع.
Let-Go هي لغة برمجة مكتوبة بلغة Go، تشبه إلى حد كبير لغة Clojure (متوافقة بنسبة 90% مع JVM Clojure). يتم توزيعها كملف باينري ثابت بحجم 10MB تقريباً، وتقلع في 7 مللي ثانية فقط – أسرع 50 مرة من JVM و3 مرات أسرع من Babashka. المشروع بدأ كمزحة عملية عام 2021، لكنه تطور ليصبح أداة عملية مع دعم nREPL (يمكن استخدامه مع محررات مثل VS Code و Emacs).
يناسب: مطوري Clojure الذين يريدون بيئة أسرع للتطوير والنماذج الأولية، مطوري Go الذين يريدون تجربة لغة وظيفية، وأي شخص يريد أداة خفيفة لتشغيل سكريبتات سريعة.
لا يناسب: من يحتاج توافقاً كاملاً مع مكتبات Clojure (لأن التوافق 90% فقط)، أو من يريد لغة إنتاجية مستقرة (المشروع لا يزال في مرحلة مبكرة).
لتجربة Let-Go، تحتاج إلى:
ملاحظة: لا حاجة لتثبيت Go أو Clojure، لأن Let-Go يأتي كباينري مستقل.
بناءً على بنية المشروع، إليك الخطوات التقريبية:
https://github.com/nooga/let-go.git clone https://github.com/nooga/let-go.git
cd let-go
go build -o let-gochmod +x let-gosudo mv let-go /usr/local/bin/بعد التثبيت، جرب تشغيل سكريبت بسيط. أنشئ ملف hello.lgo بالمحتوى التالي:
(println "Hello, World!")ثم نفذ:
./let-go run hello.lgoيجب أن ترى المخرجات: Hello, World!لتجربة nREPL، شغل:
./let-go nrepl-server :port 7888ثم اتصل من محررك (مثل VS Code مع إضافة Calva).يمكن استخدام Let-Go في:
نعم، إذا كنت مهتماً بـ Clojure أو Go، وتبحث عن أداة خفيفة وسريعة. لكن ضع في اعتبارك أن المشروع لا يزال في مرحلة مبكرة، وقد تواجه بعض الأخطاء. README غير واضح، لذا قد تحتاج إلى قراءة الكود المصدري لفهم بعض الميزات.
توافق بنسبة 90%، لكن بعض المكتبات التي تعتمد على JVM قد لا تعمل.
Let-Go أسرع في الإقلاع (7ms مقابل 20ms)، لكن Babashka أكثر استقراراً وتوافقاً مع المكتبات.
غير موصى به حالياً؛ المشروع في مرحلة مبكرة وقد يحتوي على أخطاء.
تعلم أساسيات Clojure (القوائم، الدوال، التكرار) ثم جرب كتابة سكريبتات بسيطة.
يدعم وظائف أساسية، لكن قد تحتاج إلى استخدام مكتبات Go عبر التضمين.
VS Code مع إضافة Calva، أو Emacs مع CIDER.
لا يوجد مجتمع مخصص بعد، لكن يمكنك متابعة صفحة GitHub أو Hacker News.
Let-Go مشروع مثير للاهتمام يجمع بين قوة Clojure وسرعة Go. جربه بنفسك، وشارك تجربتك مع المجتمع. تذكر أن README غير واضح، لذا لا تتردد في استكشاف الكود المصدري إذا احتجت مساعدة.
خطوات عملية مرتبة من التشخيص إلى النتيجة
لماذا؟ لأن README غير واضح وقد لا يكون الباينري متاحاً مباشرة
كيف؟ اذهب إلى https://github.com/nooga/let-go، ابحث عن Releases، أو استنسخ المستودع ونفذ 'go build -o let-go'
الناتج: ملف باينري باسم let-go بحجم ~10MB
لماذا؟ لتتمكن من تشغيل الأمر let-go من أي مكان
كيف؟ نفذ 'chmod +x let-go' ثم 'sudo mv let-go /usr/local/bin/'
الناتج: أمر let-go متاح في الطرفية
لماذا؟ للتحقق من أن اللغة تعمل بشكل صحيح
كيف؟ أنشئ ملف hello.lgo بالمحتوى '(println "Hello, World!")' ثم نفذ 'let-go run hello.lgo'
الناتج: طباعة 'Hello, World!' في الطرفية
لماذا؟ للاستفادة من التطوير التفاعلي
كيف؟ نفذ 'let-go nrepl-server :port 7888' ثم اتصل من VS Code مع إضافة Calva
الناتج: جلسة REPL تفاعلية في المحرر
حوّل القراءة إلى تنفيذ سريع
(println "Hello, World!") (defn add [a b] (+ a b)) (println (add 3 4))
let-go nrepl-server :port 7888
اعرف أين يتعثر الناس وكيف تتجنب ذلك
ماذا تفعل حسب حالتك؟
إذا: إذا كنت مطور Clojure وتريد سرعة إقلاع أفضل
إذن: جرب Let-Go للسكريبتات الصغيرة والنماذج الأولية
إذا: إذا كنت تحتاج توافقاً كاملاً مع مكتبات Clojure
إذن: استخدم JVM Clojure أو Babashka بدلاً من ذلك
إذا: إذا كنت مطور Go وتريد لغة وظيفية مضمّنة
إذن: Let-Go خيار جيد، لكن كن مستعداً لقراءة الكود المصدري
إذا: إذا كنت تبحث عن لغة إنتاجية مستقرة
إذن: لا تستخدم Let-Go حالياً، انتظر نضوج المشروع
جدول صغير يمنع التسويف
نقاط مختصرة ترجع لها لاحقاً
1. Let-Go مكتوبة بلغة Go وتقلع في 7ms.
2. متوافقة بنسبة 90% مع Clojure على JVM.
3. حجم الباينري حوالي 10MB.
4. تدعم nREPL للتطوير التفاعلي.
5. يمكن تضمينها في برامج Go.
6. المشروع بدأ كمزحة عام 2021.
7. README غير واضح، قد تحتاج لقراءة الكود المصدري.
8. لا ينصح باستخدامها في الإنتاج حالياً.
9. أسرع 50 مرة من JVM Clojure و3 مرات من Babashka.
إجابات مباشرة على ما يبحث عنه الزائر
تعريفات مختصرة تمنع الالتباس
بروتوكول REPL شبكي يستخدم للتطوير التفاعلي مع محررات النصوص.
ملف تنفيذي مستقل لا يحتاج إلى بيئة تشغيل إضافية مثل JVM.
لغة برمجة وظيفية تعمل على JVM، تتميز بالثبات والتزامن.
مفسر Clojure سريع مبني على GraalVM، يستخدم للسكريبتات.
استخدمها كمسارات متابعة داخل نفس الموضوع
تحول القارئ: من مطور يجهل وجود Let-Go ويظن أن مشاريع GitHub الجديدة صعبة، إلى مطور جرب الأداة بنفسه وأصبح قادراً على تقييمها ومشاركتها مع الآخرين.
القيمة الحقيقية تظهر عند العودة والتطبيق
لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.
Let-Go مشروع مثير للاهتمام يجمع بين قوة Clojure وسرعة Go. جربه بنفسك، وشارك تجربتك مع المجتمع. تذكر أن README غير واضح، لذا لا تتردد في استكشاف الكود المصدري إذا احتجت مساعدة.
حتى يبقى المرجع صالحاً مع الوقت
FAQ