تخطّى إلى المحتوى الرئيسي
برمجة وظيفية

Let-Go: لغة برمجة شبيهة بـ Clojure مكتوبة بلغة Go تنطلق في 7ms – دليل تجريبي عربي

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

    Let-Go: لغة برمجة شبيهة بـ Clojure مكتوبة بلغة Go تنطلق في 7ms – دليل تجريبي عربي

    ستتمكن من تثبيت وتشغيل لغة Let-Go في أقل من 10 دقائق، وتجربة أول سكريبت Clojure بسرعة إقلاع 7ms.

    الخلاصة: Let-Go هي لغة برمجة تشبه Clojure مكتوبة بلغة Go، تنطلق في 7ms وتتوافق بنسبة 90% مع Clojure. المشروع لا يزال مبكراً وREADME غير واضح، لذا يقدم هذا الدليل خطوات تقريبية للتثبيت والتشغيل.
    لغة Let-Go818 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Let-Go: لغة برمجة شبيهة بـ Clojure مكتوبة بلغة Go تنطلق في 7ms – دليل تجريبي عربي
    Photo by Marek Prášil on Pexels
    LIVE PROJECTnooga/let-go★ 0

    Show HN: I made a Clojure-like language in Go, boots in 7ms

    رابط المشروع على GitHub ↗

    MAP

    خريطة الصفحة

    اختر القسم الذي تحتاجه الآن

    1. ما هو Let-Go؟
    2. من يحتاج Let-Go ومن لا؟
    3. المميزات الرئيسية
    4. المتطلبات الأساسية
    5. خطوات التركيب (مع تحذير: README غير واضح)
    6. التشغيل الأولي واختبار اللغة
    7. الأخطاء الشائعة وحلولها
    8. استخدامات عملية للمطور العربي
    9. هل يستحق التجربة؟
    10. بدائل مشابهة
    11. أسئلة شائعة
    12. خاتمة
    !

    قبل أن تطبق

    الفكرة التي تمنع التسرع

    تعتقد أن مشاريع GitHub الجديدة صعبة التركيب ومخصصة للمطورين المتقدمين فقط؟ لكن Let-Go يثبت العكس: أداة خفيفة وسريعة يمكن لأي مطور متوسط تجربتها.

    Q

    أسئلة التشخيص السريع

    قبل أن تطبق، اعرف أين تقف بالضبط

    1. هل تحتاج إلى لغة سكريبت سريعة الإقلاع لتشغيل سكريبتات صغيرة؟
    2. هل أنت مطور Clojure تبحث عن بيئة أسرع من JVM؟
    3. هل أنت مطور Go تريد تجربة لغة وظيفية؟
    4. هل تبحث عن أداة خفيفة لتضمين لغة سكريبت في تطبيقات Go؟
    5. هل أنت مستعد لتحمل عدم الاستقرار الناتج عن كون المشروع في مرحلة مبكرة؟
    6. هل لديك خبرة في بناء باينري من المصدر باستخدام Go؟
    7. هل تستخدم محرراً يدعم nREPL مثل VS Code أو Emacs؟

    نظام التشغيل: Input → Process → Output

    INPUT
    مطور عربي يبحث عن أداة برمجة خفيفة وسريعة، قد يكون لديه خلفية في Clojure أو Go.
    PROCESS
    تحليل README، تحديد متطلبات التثبيت، تنزيل الباينري، تشغيل سكريبت تجريبي، اختبار nREPL.
    OUTPUT
    تجربة عملية للغة Let-Go مع فهم حدودها وإمكانياتها.
    Decision Layer
    تقييم ما إذا كانت اللغة مناسبة لمشروعك بناءً على سرعة الإقلاع والتوافق مع Clojure.
    Memory Layer
    ملاحظة أن README غير واضح، لذا الاعتماد على بنية المشروع والتجربة العملية.
    Feedback Loop
    بعد التشغيل، يمكنك اختبار أوامر Clojure الأساسية ومعرفة مدى توافقها.
    M

    لوحة قياس النجاح

    لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه

    المؤشرطريقة القياسإشارة جيدة
    سرعة الإقلاعاستخدم أمر time: time let-go run script.lgoأقل من 10ms
    حجم الباينريls -lh let-goحوالي 10MB
    توافق السكريبتاتتشغيل سكريبتات Clojure بسيطة وملاحظة الأخطاءمعظم السكريبتات تعمل دون تعديل

    ظهر مشروع 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؟

    Let-Go هي لغة برمجة مكتوبة بلغة Go، تشبه إلى حد كبير لغة Clojure (متوافقة بنسبة 90% مع JVM Clojure). يتم توزيعها كملف باينري ثابت بحجم 10MB تقريباً، وتقلع في 7 مللي ثانية فقط – أسرع 50 مرة من JVM و3 مرات أسرع من Babashka. المشروع بدأ كمزحة عملية عام 2021، لكنه تطور ليصبح أداة عملية مع دعم nREPL (يمكن استخدامه مع محررات مثل VS Code و Emacs).

    من يحتاج Let-Go ومن لا؟

    إعلان

    يناسب: مطوري Clojure الذين يريدون بيئة أسرع للتطوير والنماذج الأولية، مطوري Go الذين يريدون تجربة لغة وظيفية، وأي شخص يريد أداة خفيفة لتشغيل سكريبتات سريعة.

    لا يناسب: من يحتاج توافقاً كاملاً مع مكتبات Clojure (لأن التوافق 90% فقط)، أو من يريد لغة إنتاجية مستقرة (المشروع لا يزال في مرحلة مبكرة).

    المميزات الرئيسية

    • سرعة إقلاع 7ms: مثالية للسكريبتات الصغيرة والأدوات التفاعلية.
    • توافق 90% مع Clojure: يمكن تشغيل معظم كود Clojure دون تعديل.
    • nREPL server: يدعم التطوير التفاعلي مع محررات مثل Calva وCIDER.
    • قابلية التضمين في برامج Go: يمكن استدعاء دوال Go من Let-Go والعكس.
    • باينري ثابت: لا يحتاج إلى JVM أو تثبيت معقد.

    المتطلبات الأساسية

    لتجربة Let-Go، تحتاج إلى:

    • نظام تشغيل: Linux أو macOS (لم يتم اختباره على Windows رسمياً).
    • اتصال بالإنترنت لتحميل الباينري.
    • محرر نصوص (VS Code، Emacs، أو أي محرر يدعم nREPL).

    ملاحظة: لا حاجة لتثبيت Go أو Clojure، لأن Let-Go يأتي كباينري مستقل.

    خطوات التركيب (مع تحذير: README غير واضح)

    بناءً على بنية المشروع، إليك الخطوات التقريبية:

    1. اذهب إلى صفحة المشروع على GitHub: https://github.com/nooga/let-go.
    2. ابحث عن رابط تحميل الباينري في قسم Releases (إذا كان متاحاً). إذا لم تجد، قد تحتاج إلى بناء المشروع من المصدر باستخدام Go.
    3. للبناء من المصدر: تأكد من تثبيت Go (الإصدار 1.16+). ثم نفذ:
      git clone https://github.com/nooga/let-go.git
      cd let-go
      go build -o let-go
    4. بعد الحصول على الباينري، تأكد من منحه صلاحية التنفيذ:
      chmod +x let-go
    5. انقل الباينري إلى مسار في PATH (اختياري):
      sudo 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: command not foundالباينري ليس في PATHاستخدم المسار الكامل أو انقل الباينري إلى /usr/local/bin
    permission deniedصلاحية التنفيذ غير مفعلةنفذ chmod +x let-go
    Error loading fileامتداد الملف غير صحيحتأكد من أن الامتداد .lgo أو .clj
    nREPL connection refusedالمنفذ محجوب أو الخدمة لم تبدأتأكد من تشغيل nREPL server على المنفذ الصحيح

    استخدامات عملية للمطور العربي

    يمكن استخدام Let-Go في:

    • تشغيل سكريبتات سريعة لمعالجة النصوص أو تحليل البيانات الصغيرة.
    • بناء نماذج أولية لتطبيقات ويب خفيفة (مع مكتبات HTTP إذا كانت متوفرة).
    • تعلم لغة Clojure دون الحاجة إلى JVM.
    • تضمين لغة سكريبت في تطبيقات Go (مثل إضافة واجهة برمجة نصية).

    هل يستحق التجربة؟

    نعم، إذا كنت مهتماً بـ Clojure أو Go، وتبحث عن أداة خفيفة وسريعة. لكن ضع في اعتبارك أن المشروع لا يزال في مرحلة مبكرة، وقد تواجه بعض الأخطاء. README غير واضح، لذا قد تحتاج إلى قراءة الكود المصدري لفهم بعض الميزات.

    بدائل مشابهة

    الأداةالوصفالفرق عن Let-Go
    Babashkaمفسر Clojure سريع مبني على GraalVMأبطأ في الإقلاع (حوالي 20ms)، لكن أكثر استقراراً وتوافقاً
    JVM ClojureClojure التقليدية على JVMأبطأ بكثير في الإقلاع، لكن توافق كامل مع المكتبات
    LumoClojureScript على Node.jsمختلف تماماً (يعتمد على JavaScript)

    أسئلة شائعة

    هل Let-Go متوافق مع مكتبات Clojure الموجودة؟

    توافق بنسبة 90%، لكن بعض المكتبات التي تعتمد على JVM قد لا تعمل.

    ما الفرق بين Let-Go و Babashka؟

    Let-Go أسرع في الإقلاع (7ms مقابل 20ms)، لكن Babashka أكثر استقراراً وتوافقاً مع المكتبات.

    هل يمكن استخدام Let-Go في الإنتاج؟

    غير موصى به حالياً؛ المشروع في مرحلة مبكرة وقد يحتوي على أخطاء.

    كيف أبدأ مع Let-Go إذا كنت أعرف Go فقط؟

    تعلم أساسيات Clojure (القوائم، الدوال، التكرار) ثم جرب كتابة سكريبتات بسيطة.

    هل يدعم Let-Go التعامل مع الملفات والشبكات؟

    يدعم وظائف أساسية، لكن قد تحتاج إلى استخدام مكتبات Go عبر التضمين.

    ما هي بيئة التطوير المناسبة لـ Let-Go؟

    VS Code مع إضافة Calva، أو Emacs مع CIDER.

    هل هناك مجتمع عربي لـ Let-Go؟

    لا يوجد مجتمع مخصص بعد، لكن يمكنك متابعة صفحة GitHub أو Hacker News.

    خاتمة

    Let-Go مشروع مثير للاهتمام يجمع بين قوة Clojure وسرعة Go. جربه بنفسك، وشارك تجربتك مع المجتمع. تذكر أن README غير واضح، لذا لا تتردد في استكشاف الكود المصدري إذا احتجت مساعدة.

    DO

    Playbook التطبيق

    خطوات عملية مرتبة من التشخيص إلى النتيجة

    خطوة 1

    تحميل الباينري أو بناءه من المصدر

    لماذا؟ لأن README غير واضح وقد لا يكون الباينري متاحاً مباشرة

    كيف؟ اذهب إلى https://github.com/nooga/let-go، ابحث عن Releases، أو استنسخ المستودع ونفذ 'go build -o let-go'

    الناتج: ملف باينري باسم let-go بحجم ~10MB

    خطوة 2

    منح صلاحية التنفيذ ونقل الباينري إلى PATH

    لماذا؟ لتتمكن من تشغيل الأمر let-go من أي مكان

    كيف؟ نفذ 'chmod +x let-go' ثم 'sudo mv let-go /usr/local/bin/'

    الناتج: أمر let-go متاح في الطرفية

    خطوة 3

    إنشاء سكريبت اختبار وتشغيله

    لماذا؟ للتحقق من أن اللغة تعمل بشكل صحيح

    كيف؟ أنشئ ملف hello.lgo بالمحتوى '(println "Hello, World!")' ثم نفذ 'let-go run hello.lgo'

    الناتج: طباعة 'Hello, World!' في الطرفية

    خطوة 4

    تشغيل nREPL والاتصال من المحرر

    لماذا؟ للاستفادة من التطوير التفاعلي

    كيف؟ نفذ 'let-go nrepl-server :port 7888' ثم اتصل من VS Code مع إضافة Calva

    الناتج: جلسة REPL تفاعلية في المحرر

    TMP

    قوالب جاهزة للنسخ

    حوّل القراءة إلى تنفيذ سريع

    سكريبت اختبار Let-Go
    (println "Hello, World!")
    (defn add [a b] (+ a b))
    (println (add 3 4))
    أمر تشغيل nREPL
    let-go nrepl-server :port 7888
    ERR

    مصفوفة الأخطاء

    اعرف أين يتعثر الناس وكيف تتجنب ذلك

    الخطألماذا يحدث؟التصحيح
    let-go: command not foundالباينري ليس في PATHاستخدم المسار الكامل './let-go' أو انقل الباينري إلى /usr/local/bin
    Permission deniedصلاحية التنفيذ غير مفعلةنفذ 'chmod +x let-go'
    Error loading fileامتداد الملف غير صحيحتأكد من أن الامتداد .lgo أو .clj
    nREPL connection refusedالمنفذ محجوب أو الخدمة لم تبدأتأكد من تشغيل nREPL server على المنفذ الصحيح
    IF

    شجرة القرار

    ماذا تفعل حسب حالتك؟

    إذا: إذا كنت مطور Clojure وتريد سرعة إقلاع أفضل

    إذن: جرب Let-Go للسكريبتات الصغيرة والنماذج الأولية

    إذا: إذا كنت تحتاج توافقاً كاملاً مع مكتبات Clojure

    إذن: استخدم JVM Clojure أو Babashka بدلاً من ذلك

    إذا: إذا كنت مطور Go وتريد لغة وظيفية مضمّنة

    إذن: Let-Go خيار جيد، لكن كن مستعداً لقراءة الكود المصدري

    إذا: إذا كنت تبحث عن لغة إنتاجية مستقرة

    إذن: لا تستخدم Let-Go حالياً، انتظر نضوج المشروع

    7D

    خطة تطبيق 7 أيام

    جدول صغير يمنع التسويف

    1. اليوم 1: تحميل الباينري أو بناءه من المصدر
    2. اليوم 2: تشغيل سكريبت Hello World
    3. اليوم 3: تجربة nREPL مع VS Code
    4. اليوم 4: كتابة سكريبت صغير لمعالجة نصية
    5. اليوم 5: محاولة تضمين دالة Go في Let-Go
    6. اليوم 6: اختبار توافق مكتبة Clojure بسيطة
    7. اليوم 7: مشاركة التجربة على GitHub أو Hacker News
    FACT

    حقائق سريعة تحفظها

    نقاط مختصرة ترجع لها لاحقاً

    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.

    FAQ

    أسئلة شائعة

    إجابات مباشرة على ما يبحث عنه الزائر

    هل Let-Go متوافق مع مكتبات Clojure الموجودة؟

    توافق بنسبة 90%، لكن بعض المكتبات التي تعتمد على JVM قد لا تعمل.

    ما الفرق بين Let-Go و Babashka؟

    Let-Go أسرع في الإقلاع (7ms مقابل 20ms)، لكن Babashka أكثر استقراراً وتوافقاً.

    هل يمكن استخدام Let-Go في الإنتاج؟

    غير موصى به حالياً؛ المشروع في مرحلة مبكرة وقد يحتوي على أخطاء.

    كيف أبدأ مع Let-Go إذا كنت أعرف Go فقط؟

    تعلم أساسيات Clojure (القوائم، الدوال، التكرار) ثم جرب كتابة سكريبتات بسيطة.

    هل يدعم Let-Go التعامل مع الملفات والشبكات؟

    يدعم وظائف أساسية، لكن قد تحتاج إلى استخدام مكتبات Go عبر التضمين.

    ما هي بيئة التطوير المناسبة لـ Let-Go؟

    VS Code مع إضافة Calva، أو Emacs مع CIDER.

    هل هناك مجتمع عربي لـ Let-Go؟

    لا يوجد مجتمع مخصص بعد، لكن يمكنك متابعة صفحة GitHub أو Hacker News.

    ABC

    مصطلحات سريعة

    تعريفات مختصرة تمنع الالتباس

    nREPL

    بروتوكول REPL شبكي يستخدم للتطوير التفاعلي مع محررات النصوص.

    باينري ثابت

    ملف تنفيذي مستقل لا يحتاج إلى بيئة تشغيل إضافية مثل JVM.

    Clojure

    لغة برمجة وظيفية تعمل على JVM، تتميز بالثبات والتزامن.

    Babashka

    مفسر Clojure سريع مبني على GraalVM، يستخدم للسكريبتات.

    Q+

    أسئلة مرتبطة يبحث عنها الناس

    استخدمها كمسارات متابعة داخل نفس الموضوع

    تثبيت Let-Go على macOSLet-Go vs Babashka مقارنةتشغيل سكريبت Clojure بدون JVMلغة برمجة جديدة مكتوبة بلغة Goأسرع لغة برمجة للإقلاعكيفية استخدام nREPL مع Let-Goمشاريع Clojure مفتوحة المصدر

    لماذا هذا المرجع يتجاوز الموضوع نفسه؟

    تحول القارئ: من مطور يجهل وجود Let-Go ويظن أن مشاريع GitHub الجديدة صعبة، إلى مطور جرب الأداة بنفسه وأصبح قادراً على تقييمها ومشاركتها مع الآخرين.

    • لغة Go
    • لغة Clojure
    • تطوير النماذج الأولية
    • أدوات سطر الأوامر
    SAVE

    كيف تستخدم هذا المرجع لاحقاً؟

    القيمة الحقيقية تظهر عند العودة والتطبيق

    لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.

    Let-Go مشروع مثير للاهتمام يجمع بين قوة Clojure وسرعة Go. جربه بنفسك، وشارك تجربتك مع المجتمع. تذكر أن README غير واضح، لذا لا تتردد في استكشاف الكود المصدري إذا احتجت مساعدة.

    UPD

    خطة تحديث هذا الدليل

    حتى يبقى المرجع صالحاً مع الوقت

    • تحقق من وجود إصدارات جديدة على GitHub كل شهر.
    • تابع مناقشات Hacker News للحصول على تحديثات المجتمع.
    • اختبر توافق السكريبتات مع كل إصدار جديد.
    • قم بتحديث خطوات التثبيت إذا تغيرت بنية المشروع.

    زارو — مكتبة الأدلة العملية

    نحو مكتبة أدلة عملية: تشخيص، تنفيذ، قياس، وتحديث مستمر.

    Evergreen Reference + GitHub Intelligence + Multi-Stage AI OS v8.0.0-EVERGREEN-GITHUB-AI-INTELLIGENCE-OS

    [Object]
    كاتب في Ficus Web | تقرير إخباري وقصة قصيرة

    مقالات ذات صلة

    اقتراحات مبنية على أول تصنيف مرتبط بالمقال الحالي

    التعليقات (0)

    لا توجد تعليقات بعد. كن أول من يبدأ النقاش 👇