Loading blog posts...
Loading blog posts...
جاري التحميل...

شركة تخلت للتو عن Haskell بعد سبع سنوات في الإنتاج، والسبب ليس متعلقاً باللغة نفسها حقاً. مؤسس شركة Scarf آفي بريس أثار عاصفة من الجدل عندما قال أن أوقات الترجمة البطيئة تحول Haskell إلى "عنق زجاجة في دورة التطوير" الآن بعد أن أصبحت نماذج اللغة الكبيرة قادرة على إنتاج التطبيقات في دقائق. كانت ردود الفعل المعارضة قوية، لكن السؤال الحقيقي أبسط: هل اختيار اللغة مهم بنفس الطريقة بعد الآن؟
أصبحت هجرة Scarf من Haskell إلى Python الجدل الأبرز هذا الأسبوع. غطت مجلة The Register التداعيات، وصفتها بأنها "منشق Haskell يتعرض للهجوم من قبل المتشددين المناهضين للذكاء الاصطناعي". لكن معظم الغضب فاته الهدف الحقيقي.
بريس يتحدث عن حلقات التغذية الراجعة. إذا كان مساعد الذكاء الاصطناعي قادراً على توليد الكود في ثوانٍ، فإن انتظار دقائق للترجمة يقتل الزخم ويجعل التكرار يبدو بطيئاً. دورة Python السريعة للتشغيل والفحص تحافظ على الحلقة مشدودة. بالنسبة لنظام إنتاج صمد في Haskell لسبع سنوات، هذا تبديل مُعبر جداً.
Important
الجدل ليس حول المزايا التقنية لـ Haskell. إنه حول ما إذا كانت ضمانات وقت الترجمة تبرر سرعة تطوير أبطأ في سير عمل مدعوم بالذكاء الاصطناعي.
الحجج المضادة واضحة. نظام الأنواع في Haskell يكتشف أخطاء لن تظهر في Python حتى وقت التشغيل. صرامة المترجم ميزة وليست عيباً. لكن هذا المنطق يفترض النموذج الأقدم: البشر يكتبون معظم الكود ويحتاجون اللغة لتعمل كحاجز أمان. هذا الافتراض بدأ يتزعزع.
شهد r/ProgrammingLanguages على Reddit أكثر من 100 تعليق على "حول مستقبل تصميم لغات البرمجة". الادعاء الأكثر إثارة: "اللغات لم تعد مهمة. نحن في عصر الذكاء الاصطناعي".
هذا خطأ، لكنه خطأ مفيد. اللغات لا تزال مهمة، فقط في أماكن مختلفة. انظر إلى ما تميل مساعدات الذكاء الاصطناعي لأن تكون جيدة فيه:
| المهمة | قدرة الذكاء الاصطناعي | تأثير اللغة |
|---|---|---|
| توليد الكود النمطي | ممتازة | منخفض - أي لغة تعمل |
| تطبيق الخوارزميات | جيدة | متوسط - بعض اللغات تعبر عن الأفكار بطبيعية أكثر |
| قرارات البنية | ضعيفة | عالي - قيود اللغة تشكل التصميم |
| تحسين الأداء | متغيرة | عالي - خصائص وقت تشغيل اللغة تهيمن |
| تصحيح مشاكل الإنتاج | ضعيفة | عالي - الأدوات ورسائل الخطأ مهمة للغاية |
النمط الذي يظهر: اختيار اللغة يهم أكثر في الأطراف - البنية المبكرة وتصحيح الأخطاء المتأخر. الوسط، حيث يعيش معظم كود المنتج، يصبح أكثر استقلالية عن اللغة مما يتوقع كثير من الناس.

Python تواصل تعزيز قبضتها كافتراضي "جيد بما فيه الكفاية لكل شيء تقريباً". إصدار 3.14 يجلب ثلاثة تغييرات تستحق الانتباه.
الخيوط الحرة لم تعد تجريبية. الوضع الاختياري لـ GIL الذي كان يتطور منذ 3.12 أصبح الآن له حالة دعم رسمية. لأحمال العمل المتوازية المرتبطة بالمعالج، هذا يرفع سقف Python بطريقة حقيقية.
pythonimport threading import math def compute_heavy(start, end): return sum(math.factorial(i % 20) for i in range(start, end)) # مع تمكين الخيوط الحرة، هذه تعمل فعلياً بالتوازي threads = [ threading.Thread(target=compute_heavy, args=(i * 1000000, (i + 1) * 1000000)) for i in range(4) ]
الصيغة لم تتغير، لكن سلوك وقت التشغيل تغير. الكود الذي كان يتسلسل تحت تنافس GIL يمكن الآن الحصول على توازي حقيقي. المشكلة عملية: ليست كل امتدادات C آمنة للخيوط بعد، لذا عمليات النشر في الإنتاج لا تزال تحتاج مراجعة دقيقة للتبعيات.
وصلت T-strings. سلاسل القوالب تعطيك بديلاً أكثر أماناً لـ f-strings للمحتوى المواجه للمستخدم:
pythonfrom string import Template # الطريقة القديمة - خطر حقن إذا كان user_input يحتوي على محددات تنسيق message = f"Hello, {user_input}" # T-strings - معالجة قوالب صريحة template = t"Hello, {name}" message = template.substitute(name=user_input)
هذا مهم في أي مكان يظهر فيه إدخال غير موثوق. T-strings تجعل نية "هذا قالب" صريحة، مما يساعد المراجعين وأدوات التحليل الثابت على اكتشاف خطر الحقن مبكراً.
JIT تواجه صعوبات. ملخص Real Python لشهر يوليو يلاحظ أن JIT النسخ واللصق في Python تواجه "تحديات". التسريعات ليست متسقة عبر أحمال العمل، والعبء الإضافي للترجمة يمكن أن يفوق مكسب وقت التشغيل للسكريبتات قصيرة المدى. JIT تتألق أكثر في العمليات طويلة المدى مع حلقات ساخنة، وهو شائع للخوادم لكن ليس للسكريبتات السريعة.
Tip
لأدوات سطر الأوامر والسكريبتات القصيرة، فكر في تعطيل JIT بـ PYTHON_JIT=0. العبء الإضافي للترجمة غالباً ما يتجاوز أي فائدة تنفيذ لأحمال العمل دون الثانية.
حديث أداء الخلفية استقر في أخدود مألوف جداً. تحليل مجتمع DEV يلتقط الإجماع الحالي: Rust للـ 15% التي تحتاج حقاً أداء ذروة، Go للـ 80% من الخدمات السائدة، Zig للمسارات الحرجة للأداء المستهدفة.
وصول Zig إلى 1.0 ينقلها من "تجربة مثيرة للاهتمام" إلى "شيء يمكن للفرق شحنه بشكل معقول". إدارة الذاكرة الصريحة بدون جمع القمامة تناسب شريحة معينة من المطورين: أشخاص يجدون مدقق الاستعارة في Rust مقيداً جداً، لكن أيضاً لا يريدون العيش مع توقفات GC في Go.
معيار متعدد اللغات يدور على Hacker News اختبر معالجة البيانات عبر Rust وGo وSwift وZig وJulia. النتائج أكدت في الغالب ما كان الناس يؤمنون به بالفعل:
| اللغة | الإنتاجية | الذاكرة | وقت الترجمة |
|---|---|---|---|
| Rust | الأعلى | الأقل | الأبطأ |
| Zig | قريب من Rust | منخفض | سريع |
| Go | جيد | متوسط | الأسرع |
| Swift | جيد | متوسط | متوسط |
| Julia | متغير | عالي | عبء JIT |
لأحمال العمل المرتبطة بالإدخال/الإخراج، Rust مقابل Go غالباً ما تهبط في نطاق 10-30% للإنتاجية. للعمل المرتبط بالمعالج، الفجوة يمكن أن تصبح أكبر بكثير، لأن التجريدات صفرية التكلفة في Rust وعدم وجود توقفات GC تميل الكفة.
لمعظم خدمات الويب، ترجمة Go السريعة والنموذج الذهني الأبسط يتفوقان على الأداء الخام لـ Rust. هذا التبديل ينقلب للأنظمة التي تدفع حجم طلبات ضخم أو تعالج مجموعات بيانات كبيرة.

مسودة PEP لتكامل Rust في CPython تستهدف Python 3.16، مع CI مُبلغ عنه أخضر على جميع المنصات. هذا ليس "إعادة كتابة Python بـ Rust". إنه "استبدال Rust حيث C محفوف بالمخاطر وحساس للأداء".
التأثير هنا خفي لكن حقيقي. قاعدة كود C في CPython لديها عقود من إدارة الذاكرة الدقيقة مخبوزة فيها. جلب Rust إلى هذا الخط يعني أن المساهمين يمكنهم كتابة كود سريع منخفض المستوى بدون وراثة العديد من مخاطر C.
rust// نمط امتداد CPython المستقبلي الافتراضي #[pyfunction] fn fast_json_parse(input: &str) -> PyResult<PyObject> { // serde في Rust تتعامل مع التحليل مع ضمانات أمان الذاكرة let value: serde_json:Value = serde_json:from_str(input)?; // تحويل إلى كائن Python Ok(value.into_py(py)) }
هذا النمط موجود بالفعل عبر PyO3 ومaturin. الفرق هو التبني الرسمي لـ CPython، مما يشير إلى التزام طويل المدى ويقلل خطر "هل سيظل هذا مدعوماً؟" للفرق التي تراهن على امتدادات مدعومة بـ Rust.
Show HN شهد إطلاقات متعددة للغات مبنية خصيصاً لتطوير وكلاء الذكاء الاصطناعي. Baml تضع نفسها كـ "لغة البرمجة للوكلاء"، وZero تأخذ زاوية مشابهة. Wado تذهب أبعد، تدعي أنها بُنيت "100% مع وكلاء الترميز"، وهو إثبات مفهوم تكراري لطيف إذا صمد.
الفكرة المشتركة: هذه اللغات تركز على وصف سلوك الوكيل بشكل تصريحي بدلاً من تطبيق كل شيء بشكل إجرائي. اللغات التقليدية مضبوطة للمنطق المكتوب بشرياً. لغات الوكلاء مضبوطة للأهداف والقيود والوصول للأدوات.
text# صيغة لغة وكيل افتراضية (توضيحية) agent CustomerSupport: tools: [database_lookup, email_send, ticket_create] constraints: - never reveal internal system details - escalate after 3 failed resolution attempts goal: resolve customer inquiry with minimal back-and-forth
ما إذا كانت هذه الفئة ستلتصق يعتمد على ما إذا كانت سير عمل الوكلاء ستتوقف عن التحرك تحت أقدام الجميع. أطر عمل الوكلاء لا تزال تتحرك بسرعة. لغة متخصصة يمكن أن تشيخ بسرعة إذا تغير النموذج الأساسي.
Note
اللغات الموجهة للوكلاء تمثل رهاناً على نموذج تطوير محدد. الفرق التي تفكر فيها يجب أن تقيم كم قد تتغير بنية الوكيل لديها في الـ 12-18 شهراً القادمة.

الإشارة الأكثر تشجيعاً هذا الأسبوع: الناس لا يزالون يبنون لغات جديدة للمتعة والفضول والاحتياجات المحددة جداً.
لغة أنظمة ذاتية الاستضافة لشاب عمره 16 عاماً ظهرت على Show HN. Flint جذبت 69 تعليقاً على r/ProgrammingLanguages، مع المجتمع يحفر في تصميمها بنمط ECS. Plato وLean أيضاً أُطلقتا لجماهير منخرطة.
هذا مهم لأن ابتكار اللغات نادراً ما يبدأ باللجان. عادة يبدأ بشخص يحك حكة. معظم اللغات التجريبية لن تصبح سائدة، لكنها لا تزال توسع مساحة التصميم وتزرع أفكاراً قد تظهر بعد سنوات.
خيط Flint مثال جيد على ديناميكيات مجتمع صحية. الانتقادات استهدفت خيارات تصميم ملموسة بدلاً من الهجوم على المشروع. نهج نمط ECS جذب مقارنات بالنماذج الموجودة، مع اقتراحات محددة حول ما يجب شده.
ترتيب TikTok لـ "5 أسوأ لغات برمجة" حصل على 34,473 مشاهدة و2,259 إعجاب. شارح Instagram يسأل "هل C++ أفضل؟" وصل إلى 6,467 مشاهدة. هذا تفاعل أكثر بكثير مما تحصل عليه معظم المناقشات التقنية الجدية.
المحتوى نفسه عادة رقيق. لكن الشعبية تقول الكثير عن كيف تتشكل آراء اللغات فعلياً. معظم المطورين لا يقرؤون مواصفات اللغات أو أوراق المعايير. يلتقطون إشارات من المحتوى قصير الشكل ونصائح زملاء العمل وما يظهر في إعلانات الوظائف.
هذا ينشئ حلقة تعزز نفسها. اللغات المرئية كـ "ساخنة" تجذب منشورات أكثر، مما يعزز الرؤية، مما يجلب مطورين أكثر، مما يؤدي إلى طلب توظيف أكثر. منحنيات التبني غالباً ما تتبع الزخم الاجتماعي على الأقل بقدر الجدارة التقنية.
Warning
اختيار لغة بناءً على شعبية وسائل التواصل الاجتماعي يحسن للتوظيف، وليس الإنتاجية. "أفضل" لغة لمشروع تعتمد على قيود المشروع المحددة، وليس حجم المجتمع.
عبر المناقشات الأكثر جدية، نفس الموضوع يظل يظهر: لا توجد لغة "أفضل" واحدة. السياق يقود الاختيار الصحيح:
التطوير المدعوم بالذكاء الاصطناعي لا يمحو هذا الإطار. يغير الأوزان. أوقات الترجمة تهم أكثر إذا كنت تكرر بسرعة على اقتراحات الذكاء الاصطناعي. أنظمة الأنواع يمكن أن تهم قليلاً أقل إذا كان المساعد ينتج كود صحيح الأنواع بشكل موثوق. نضج النظام البيئي يهم أكثر لأن أدوات الذكاء الاصطناعي مدربة بكثافة على ما هو شائع.
للسياق الأعمق حول دور Rust المتنامي في هذا المشهد، دليلنا لمسار Rust 2026 يغطي زوايا الأمان والأداء بالتفصيل.
ابدأ هنا (خطوتك الأولى)
قم بتجربة 30 دقيقة: خذ مهمة صغيرة عادة تكتبها بلغتك الأساسية ونفذها بمساعدة الذكاء الاصطناعي بلغة أقل ألفة لك. تتبع أين يحمل الذكاء الاصطناعي العبء وأين طلاقة اللغة لا تزال مهمة.
مكاسب سريعة (تأثير فوري)
غوص عميق (لمن يريد المزيد)
هذا الأسبوع جعل تحولاً يبدو رسمياً. اختيار اللغة يصبح أقل حول ذوق الصيغة وأكثر حول تحسين حلقة التطوير. هجرة Scarf وحجج عصر الذكاء الاصطناعي وموضع Rust-Go-Zig الثابت كلها تشير لنفس الاتجاه: البراغماتية تتفوق على النقاء.
الفرق التي تؤدي جيداً في هذه البيئة عادة لا ترتبط بلغة واحدة إلى الأبد. تصبح جيدة في تقييم المقايضات بسرعة والتبديل بين السياقات بدون دراما والتعرف على متى حدود أداة تبرر ألم الانتقال.
قبلية اللغات تتلاشى. التعدد اللغوي الاستراتيجي هو ما يحل محلها.