كل المقالات برمجة لماذا أعادة مايكروسوفت كتابة كومبيلر تايبسكربت بلغة جو ؟

لماذا أعادة مايكروسوفت كتابة كومبيلر تايبسكربت بلغة جو ؟

· 640 كلمة · 4 دقيقة قراءة

في يوم 11 مارس 2025 أندرز هيجلزبيرج (Anders Hejlsberg) المبرمج في شركة مايكروسوفت أعلن عن بدء إعادة كتابة كومبيلر تايبسكربت (Typescript Compiler) بلغة جو (Go).

لماذا الإنتقال إلى لغة أخرى ؟ لماذا البعد عن الـ self-hosting ؟ 🔗

الـ Self-hosting هو كتابة كومبيلر اللغة باللغة نفسها. الـ TSC هو self-hosted حالياً ، ولكن الفريق يريد إعادة كتابته بلغة جو.

فريق تطوير تايبسكريبت لاحظ زيادة في بطء الكومبيلر مع زيادة حجم الكود داخل شركة مايكروسوفت، لذلك فكروا في إحتياج الـ tsc إلى أن يكون أسرع ومناسب للكود الكبير (scalable). الـ typescript compiler يحتاج أن يعمل بشكل متوازي ومتتالي (concurrently) ويستغل كل إمكانيات الجهاز ليستطيع التعامل مع أحجام كبيرة وضخمة من المشاريع البرمجية. يحتاج أن يصبح native لنظام التشغيل الذي يعمل عليه والهاردوير المثبت عليه لكي يحصل على أعلى أداء ممكن.

اللغات التي تم وضعها في الحسبان ومقارنتها هي لغة جو ، راست ، سي شارب ، .. وغيرها من اللغات.

لماذا لغة جو ؟ 🔗

أندرز قال أن لغة جو مشابهة تماماً للغة تايبسكريبت في طريقة الكتابة (syntax) لذا الـ tsc يمكن إعادة كتابته بشكل حرفي (ported) دون الحاجة إلى إعادة التفكير في كل تفاصيل إعادة الكتابة وكيفية تمثيل بنية البيانات في اللغة الأخرى .. لغة جو جعلت الأمر كالترجمة تماماً.

أحد عضو من أعضاء فريق تطوير لغة تايبسكريبت يستطيع تعلم لغة جو في أسبوع تقريباً ؛ ﻷن لغة جو بسيطة وسهلة التعلم.

لماذا لم يتم اختيار لغة سي شارب C# ؟ 🔗

مشروع الـ Typescript Compiler يعتمد بشكل كبير على الـ functions والـ structs وليس البرمجة شيئية التوجه (OOP) لذا من السهل إعادة كتابة (ترجمة) المشروع إلى لغة جو مقارنة بلغة سي شارب ﻷن لغة سي شارب تعتمد على البرمجة شيئية التوجه مما يجعل إعادة الكتابة تحتاج إلى تخطيط أكثر وتفكير أكثر ووقت أطول.

لماذا لم يقع الإختيار على لغة راست Rust ؟ 🔗

لغة راست (Rust) مختلفة جداً عن لغة تايبسكريبت ، لذا إعادة الكتابة ستحتاج إلى تخطيط وتفكير ومراجعات كثيرة للكود وفهمه وكيفية إعادة تمثيله بلغة راست بالطريقة المناسبة للغة راست والـ borrow checker وهذا يستغرض سنوات مع كثير من التعقيدات والمناقشات.

يحتاج أعضاء فريق تايبسكريت إلى شهور ليتعلموا لغة راست ﻷنها لغة قوية ولكنها معقدة جداً.

كود الـ tsc مكتوب بطريقة تعتمد على الـ garbage collector. إن بدأنا في إعادة كتابته بلغة راست سيكون شكل وتخطيط الكود مختلف تماماً. سيكون من المستحيل إتمام إعادة الكتابة في وقت قريب.

المكاسب من إعادة كتابة tsc بلغة جو Go 🔗

  • الحصول على 10 أضعاف السرعة
  • استهلاك الرامات قلّ للنصف
  • المشروع قادر على التعامل مع المشاريع الكبيرة والضخمة (scalable) نظراً للإستفادة من Go concurrency الذي جعلت الكود يستغل كل إمكانيات الهاردوير

رأيي في إعادة كتابة tsc بلغة جو Go 🔗

أرى أنه قرار ناضج وحكيم ﻷن المزايا التي يحصل عليها البروجت قوية جداً وتساعد في الوصول إلى أداء وسرعة أفضل مع سهولة التعامل مع الكود مستقبلاً.

عمل كومبايل بلغة جو عملية سريعة جداً مما يحافظ على أداء المبرمجين الذين يعملون على تطوير وكتابة الكود دون تشتت وأوقات انتظار طويلة. وهذا يجعل لغة جو مناسبة للمبرمجين القادمين من لغات interpreted أو JITed ﻷن لغة جو compiled ولكن وقت الكومبايل سريع جداً.

التوافق مع كل أنظمة التشغيل هي ميزة ممتازة للغة جو مما جعلها الإختيار الأفضل لـ tsc ﻷن المشروع مطلوب أن يعمل على ويندوز (طبعاً) و لينكس و ماك أو إس.

كما قال أندرز في إنترفيو له على قناة Michigan Typescript على يوتيوب : “Go is the lowest level language we can get to and still have automatic garbage collector, it’s the most native-first language we can get to and still have automatic GC”. (في الوقت 19:29 من الفيديو).

الترجمة: “لغة جو هي أقرب لغة برمجة للهاردوير مع إمكانية الحصول على إدارة تلقائياً للذاكرة”.

أتمنى أن تكون قد استفدت من الموضوع ، إن كنت تعرف أي شخص يُمكنه الإستفادة من هذه المعلومات، ارسل له رابط هذا المقال. إن أردت معرفة الموضوعات الجديدة بعد نشرها مباشرةً على موقع أبانوب حنا ، تابعني على يوتيوب و تيليجرام ، و فيسبوك ، و واتساب .

التصنيفات: برمجة
مشاركة:
الترجمات:  English (Why Microsoft is porting Typescript Compiler into Go ?)