مؤخرا تم الإعلان عن إطلاق النسخة الجديدة من لغة البرمجة «Go 1.19»، إصدار يعمل على تحسين الإصدار السابق من خلال إضافة تحسينات متنوعة ، وقبل كل شيء ، إصلاحات الأخطاء. ومن بين المستجدات التي يمكننا إبرازها ، التحسينات في إدارة الذاكرة ، وتحسينات الأمان ، من بين أشياء أخرى.
بالنسبة لأولئك الجدد ، يجب أن تعلم أن هذه لغة برمجة تم تطويرها بمشاركة المجتمع كحل هجين يجمع بين الأداء العالي للغات المترجمة مع مزايا مثل لغات البرمجة النصية مثل سهولة كتابة الكود.تطوير وحماية الشوائب.
يعتمد بناء جملة Go على العناصر المعتادة للغة C. مع بعض الاقتراضات من لغة بايثون. اللغة مختصرة تمامًا ، لكن الشفرة سهلة القراءة والفهم.
يتم تجميع كود Go في ملفات ثنائية منفصلة قابلة للتنفيذ يتم تشغيلها محليًا ، دون استخدام جهاز افتراضي (تم تضمين التنميط وتصحيح الأخطاء والأنظمة الفرعية الأخرى لتحرّي الخلل وإصلاحه في وقت التشغيل كمكونات وقت التشغيل).
الميزات الرئيسية الجديدة لـ Go 1.19
في هذا الإصدار الجديد من Go 1.19 الذي تم تقديمه ، تم تمييز ذلك تم العمل على تحسين الدعم للوظائف والأنواع العامة تمت إضافته في الإصدار الأخير ، والذي يمكن للمطور من خلاله تحديد واستخدام الوظائف المصممة للعمل مع عدة أنواع في وقت واحد ، بالإضافة إلى زيادة تحسين أداء بعض البرامج التي تستخدم الأدوية الجنيسة بنسبة 20٪.
تغيير آخر يبرز من الإصدار الجديد هو ذلك إضافة دعم للروابط والقوائم وبناء جملة أبسط لتحديد الرؤوس في تعليقات المستند. توفر الأداة المساعدة gofmt التنسيق مع مراعاة الميزات المتقدمة للتعليقات مع وثائق API.
بالإضافة إلى أنه نموذج ذاكرة Go المنقح للتوافق مع C و C ++ و Java و JavaScript و Rust و Swift التي لا تعترف بقيم ذرية متسقة تسلسليًا. تم إدخال أنواع جديدة مثل atomic.Int64 و atomic.Pointer [T] في الحزمة المتزامنة / الذرية لتسهيل استخدام القيم الذرية.
من ناحية أخرى ، تم ذكر ذلك أيضًا جامع القمامة لديه الآن القدرة على تحديد الحدود الناعمة، والتي يتم فرضها عن طريق الحد من حجم الكومة وإعادة الذاكرة إلى النظام بشكل أكثر قوة ، أي أنه لا يمكن ضمان أن يكون الاستهلاك ضمن الحدود المحددة في جميع الظروف. يمكن أن تكون الحدود الناعمة مفيدة لتحسين البرامج التي تعمل في حاويات ذاكرة ثابتة.
كما تم تسليط الضوء على ذلك في أنظمة Unix ، يتم تمكين واصفات الملفات الإضافية تلقائيًا (زيادة حد RLIMIT_NOFILE) ، لتسريع تعبيرات التغيير الكبيرة في أنظمة x86-64 و ARM64 ، يتم استخدام جداول الانتقال ، والتي تسمح بمعالجة تعبيرات التغيير الكبيرة بشكل أسرع بنسبة تصل إلى 20٪.
في أنظمة riscv64 ، تم تنفيذ تمرير وسيطات الوظيفة عبر مسجلات وحدة المعالجة المركزية ، مما سمح بزيادة الأداء بنحو 10٪.
من التغييرات الأخرى التي تتميز عن هذا الإصدار الجديد:
- تم تنفيذ العديد من تحسينات الأداء.
- تمت إضافة دعم لتعيين حجم مكدس الروتين ديناميكيًا لتقليل حجم البيانات المنسوخة
- تمت إضافة الدعم التجريبي لبيئات Linux على الأنظمة التي تحتوي على معالجات Loongson استنادًا إلى بنية LoongArch ذات 64 بت (GOARCH = loong64).
- لم يؤثر تغيير نموذج الذاكرة على التوافق مع التعليمات البرمجية المكتوبة مسبقًا.
- تمت إضافة قيود إنشاء "unix" جديدة يمكن استخدامها في خطوط "go: build" لتصفية الأنظمة المشابهة لـ Unix (aix و android و darwin و dragonfly و freebsd و hurd و illumos و ios و linux و netbsd و openbsd و solaris ).
- لتحسين الأمان ، تتجاهل الوحدة النمطية os / exec الآن المسارات النسبية عند توسيع متغير بيئة PATH (على سبيل المثال ، عند تحديد مسار ملف قابل للتنفيذ ، لم يعد الدليل الحالي محددًا).
أخيرًا ، إذا كنت مهتمًا بمعرفة المزيد عن هذا الإصدار الجديد ، فيمكنك التحقق من التفاصيل على الرابط التالي.
كن أول من يعلق