عقد من الشكاوى حول Go: لماذا لا يزال هذا المبرمج يكره Go

2025-08-22

تُبرز انتقادات مبرمج دامت عشر سنوات على لغة Go العديد من العيوب المحبطة. تشمل المشاكل: نطاق متغير خطأ غير منطقي يؤدي إلى مشاكل في القراءة والأخطاء؛ نوعان من nil يزيدان التعقيد؛ قابلية نقل ضعيفة مع تجميع مشروط غير بارع؛ سلوك غير متوقع لوظيفة الإلحاق؛ تعليمات تأجيل غير مرنة لإدارة الموارد؛ مكتبة قياسية تبتلع الاستثناءات؛ دعم غير كافٍ للترميزات بخلاف UTF-8؛ وإدارة ذاكرة غير فعالة. يجادل الكاتب بأن هذه ليست تحديات تقنية، بل عيوب تصميم أساسية، مدعياً أن Go كان يمكن أن يكون أفضل بكثير.

اقرأ المزيد
التطوير تطوير برمجيات

صفر مكالمات نظامية: بناء خادم ويب عالي الأداء باستخدام io_uring

2025-08-22

تتناول هذه المقالة تطور بناء خوادم الويب عالية الأداء، من مرحلة pre-forking المبكرة إلى select/poll، ثم epoll، وأخيرًا تحقيق صفر مكالمات نظامية باستخدام io_uring. قام الكاتب بتطوير خادم ويب تجريبي يسمى tarweb يستخدم io_uring لإضافة جميع العمليات بشكل غير متزامن إلى قائمة انتظار kernel، وبالتالي تجنب تكلفة المكالمات النظامية المتكررة. بالإضافة إلى ذلك، تم تحقيق المزيد من تحسينات الأداء باستخدام kTLS والملفات بدون واصفات. على الرغم من وجود تحديات متبقية، مثل إدارة الذاكرة ومخاوف أمان io_uring، إلا أن المشروع يُظهر إمكانية تحقيق مكاسب أداء كبيرة في سيناريوهات التزامن العالي.

اقرأ المزيد