تم إطلاق لغة البرمجة Go 1.18 المرتقبة بشدة كإصدار إنتاجي ، تتميز بقدراتها الرائدة في مجال الأدوية الجنيسة. يمثل هذا التغيير الأكثر أهمية في لغة برمجة Go منذ الإطلاق الأولي لـ Go 1.0 في عام 2012. ويمكن تنزيل Go 1.18 في go.dev اعتبارًا من 15 مارس.
كانت Generics هي الميزة الأكثر طلبًا من قِبل مبرمجي Go ، حيث تقدم دعمًا للرمز العام باستخدام أنواع ذات معلمات. تم تحديد الإصدارات اللاحقة لتوفير مزيد من الدعم لحالات الاستخدام العام الأكثر تعقيدًا. يمكن للمستخدمين الوصول إلى المعلومات حول هذه الميزة من خلال برنامج تعليمي للأدوية العامة وملاحظات الإصدار .
خادم لغة Go ، gopls ، جنبًا إلى جنب مع ملحق Visual Studio Code Go ، يدعم الآن الأدوية الجنيسة. للحصول على إرشادات حول تثبيت gopls مع الأدوية الجنيسة ، راجع الوثائق.
يتتبع إصدار إنتاج Go 1.18 المرحلة التجريبية والإصدار المرشح. كان الإصدار الأولي متوقعًا في فبراير 2022 ولكن تم تأجيله حتى منتصف مارس. كان Go 1.18 Beta 1 ، الذي ظهر لأول مرة في 14 ديسمبر ، هو الإصدار الأول للمعاينة للغة مفتوحة المصدر التي طورتها Google لدعم التعليمات البرمجية العامة باستخدام أنواع ذات معلمات. كان هذا الإصدار التجريبي أيضًا هو الإصدار التجريبي الأكثر تنزيلًا من Go على الإطلاق ، حيث يضم ضعف عدد التنزيلات مثل أي إصدار تجريبي سابق.
البرمجة العامة هي تحسين يسمح بتمثيل الوظائف وهياكل البيانات في شكل عام مع الأنواع التي يتم أخذها في الاعتبار. هذا يسهل مشاركة الكود ويبسط بناء البرامج.
نصح فريق Go بالحذر عند الاقتراب من قدرات الأدوية الجديدة ، حيث يمكن أن تظهر أخطاء جديدة مع أي ميزة جديدة مهمة. علاوة على ذلك ، تم تأجيل دعم الحالات الدقيقة المحددة ، مثل أنواع معينة من الأنواع العامة العودية ، إلى الإصدارات المستقبلية.
على الرغم من هذا التحذير ، ورد أن المستخدمين الأوائل كانوا راضين عن الميزة الجديدة. تم نشر برنامج تعليمي موجز حول بدء استخدام الأدوية الجنيسة هنا . بينما كان Go يحتوي على أنواع واجهات ، وهو شكل من أشكال البرمجة العامة ، إلا أنه يفتقر إلى بعض الجوانب التي يريدها مطورو Go من الأدوية الجنيسة ، كما ورد في منشور مدونة في يوليو 2019. على سبيل المثال ، سعى أنصار Go Genics إلى وظائف مثل Reverse دون القلق بشأن نوع عنصر الشريحة.
الملاحظات التي تم إصدارها لـ Go 1.18 تسلط الضوء أيضًا على ميزاته الرئيسية الأخرى ، مثل:
- دعم مدمج لكتابة الاختبارات المبنية على التشويش لتحديد المدخلات التي تتسبب في تعطل البرنامج أو إرجاع إجابات غير صالحة. هذه الميزة تجريبية في Go 1.18.
- يتيح وضع مساحة العمل Go للمطورين العمل مع وحدات Go متعددة في وقت واحد ، وهو أمر ضروري لمشاريع أكثر شمولاً.
- أمر go version -m محسّن يسجل الآن تفاصيل الإنشاء ، مثل علامات المترجم.
- متغير بيئة GOAMD64 يسمح للمستخدمين بالاختيار من بين أربعة إصدارات من معمارية AMD64.
- تحسينات في أداء وحدة المعالجة المركزية على Apple M1 و ARM64 و PowerPC64 بنسبة تصل إلى 20٪ ، تُعزى إلى Go 1.17 سجل توسعة اصطلاح استدعاء ABI لهذه البنى.
- تدعم منافذ Windows / Arm و Windows / Arm64 الآن الاستباق غير التعاوني ، مما يجعل هذه الإمكانية متاحة لجميع منافذ Windows الأربعة ويحتمل أن تعالج الأخطاء الدقيقة التي تمت مواجهتها عند الاتصال بوظائف Win32 التي تحظر لفترات طويلة.
- يمكن التنبؤ بنفقات جمع القمامة بشكل أكبر عندما تكون المصادر غير المترابطة لعمل GC مهمة ، نظرًا لإدراج هذه المصادر عند تحديد تكرار عمليات جمع البيانات المهملة.
تم إصدار Go 1.17 في أغسطس. تشتهر Go باستخدامها في تطوير نظام حاوية Docker وقد تم تصميمها لتكون لغة برمجة بسيطة وسهلة التعلم مع دعم قوي للتزامن. بالنسبة للمطورين الذين يرغبون في استكشاف حلول no-code ، مثل منصة AppMaster ، لإنشاء تطبيقات الويب والجوّال والخلفية ، يمكن أن يساعد ذلك في تسريع تطوير التطبيقات وتقليل التكاليف مع التخلص من الديون التقنية.