حقائق رئيسية
- قضى المؤلف معظم وقته يعمل بلغة Rust قبل الانتقال إلى Go.
- وُصف تعلم Go على أنه ليس صعباً، لكن التطوير كشف عن لحظات غير سارة.
- تبيّن أن Go يفتقر إلى المرونة مقارنة بـ Rust في مناطق معينة.
- حدد المؤلف طرقاً في Go تؤدي إلى "إرتكاب أخطاء فادحة".
- جاء قرار كتابة المقال بعد ما يقرب من عام ونصف من التطوير الصناعي باستخدام Go.
ملخص سريع
مطور يتمتع بخبرة واسعة في Rust انتقل مؤخراً إلى استخدام Go للتطوير الصناعي. بينما وُصف منحنى التعلم الأولي لـ Go على أنه قابل للإدارة، كشف التطبيق العملي على مدى فترة طويلة عن اختلافات كبيرة. وحدد المؤلف أن Go يفتقر إلى المرونة في مناطق معينة مقارنة بـ Rust ويتيح فرصاً للمطورين لارتكاب أخطاء حرجة.
بعد قضاء ما يقرب من 18 شهراً في العمل الإنتاجي باستخدام Go، قام المؤلف بتجميع قائمة بالشكاوى المحددة. تُطرح هذه الملاحظات كمقارنة للمطورين الذين يفكرون في الانتقال من Rust أو اللغات المشابهة. الحجة الأساسية هي أنه بينما يعد Go عملياً، فقد لا يوفر نفس مستوى الأمان أو التعبير الذي اعتاد عليه مطورو Rust.
الانتقال من Rust إلى Go
كان التحول من Rust إلى Go مدفوعاً بمتطلبات مهنية وليس التفضيل الشخصي. يلاحظ المؤلف أن المعرفة المسبقة بـ Go كانت سطحية على أحسن الأحوال، حيث قضى معظم مسيرته البرمجية في Rust. على الرغم من عدم وجود معرفة عميقة مسبقة، لم يُعتبر عملية تعلم Go صعبة. ومع ذلك، أصبح الانتقال معقداً بمجرد بدء العمل الفعلي في التطوير.
بمجرد أن بدأ الفريق في بناء البرمجيات، بدأت لحظات غير سارة في الظهور. لاحظ المؤلف أن خيارات تصميم اللغة في Go تحد أحياناً من قدرة المطور على التعبير عن المنطق المعقد بالطريقة التي قد يفعلها في Rust. أصبح هذا الافتقار إلى المرونة مصدراً رئيسياً للإحباط خلال دورة التطوير.
تحديات التطوير الصناعي
العمل في بيئة الإنتاج أبرز الاختلافات العملية بين اللغتين. يذكر المؤلف أن Go يحتوي على أنماط أو ميزات محددة تسمح للمطورين بإرتكاب أخطاء فادحة. هذا يشير إلى أن Go يوفر مسارات أمان أقل مقارنة بـ Rust، المعروف بفحصه الصارم في وقت التجميع.
بعد قضاء ما يقرب من عام ونصف في التطوير الصناعي باستخدام Go، شعر المؤلف بضرورة توثيق هذه المشكلات. الهدف هو توفير مورد للآخرين الذين قد يواجهون عقبات مماثلة عند التنقل بين هذين النظامين البرمجيين المتميزين.
تحليل مقارن
تُطرح المقارنة بوضوح حول لغة المؤلف الأساسية، Rust. يخدم المقال كنقد لـ Go من منظور مطور Rust. ينوي المؤلف سرد لحظات أو ميزات محددة في Go تسبب الألم، دون ترتيب صارم للشدة. يسمح هذا النهج بنظرة عامة واسعة على نقاط ضعف اللغة من منظور تقني محدد.
بالتركيز على افتقار المرونة وإمكانية ارتكاب الأخطاء، يسلط المقال الضوء على التبادلات بين اللغتين. يشير إلى أنه بينما قد يكون Go أسهل في التعلم، فقد يتطلب أكثر من الانتباه للحفاظ على معايير الأمان التي يتوقعها المطورون القادمون من خلفية Rust.



