أُطلق TypeScript 7 هذا الأسبوع مع إعادة كتابة كاملة بلغة Go، مما أدى إلى تقليص وقت التجميع (compilation) لـ VS Code من 17.5 ثانية إلى أقل من 1.3 ثانية، وخفض استهلاك الذاكرة بنسبة تصل إلى 26% في المشاريع الكبيرة. هذا التعزيز في السرعة يجعل البرمجة اليومية تبدو فورية، وتتراكم هذه المدخرات لتصل إلى ساعات من وقت المطورين عبر كامل بيئة العمل (stack).
لماذا تهم إعادة الكتابة بلغة Go
أعادت Microsoft بناء المترجم (compiler) بلغة Go، مستبدلةً تنفيذ JavaScript/Node الذي استمر لفترة طويلة. واجهت قاعدة الكود الأصلية عقبات مع نمو المشاريع؛ حيث أدى تحليل الكود (parsing) وفحص الأنواع (type-checking) إلى إبطاء مشغلات CI التي تمتلك قدرات محدودة من حيث المعالج (CPU) والذاكرة (RAM). ومن خلال الانتقال إلى لغة مُجمّعة (compiled language) تدعم التزامن (concurrency) المدمج، يقوم المحرك الجديد بتشغيل عمليات التحليل وفحص الأنواع بالتوازي، مما يقلل بشكل كبير من وقت الانتظار حتى ظهور أول خطأ.
مكاسب الأداء في العالم الحقيقي
توضح اختبارات الأداء الأولية (benchmarks) من مجموعة من قواعد الكود الكبرى حجم التأثير:
- VS Code: تجميع أسرع بـ 11.9 مرة، وبصمة ذاكرة أقل بنسبة 18%.
- Sentry, Bluesky, Playwright, Tldraw: تسريع يتراوح من 7.7 إلى 8.9 مرة.
- يشهد Bluesky أيضًا انخفاضًا بنسبة 26% في استخدام الذاكرة.
يلاحظ المطورون الذين يضغطون على "run" أو "watch" عشرات المرات يوميًا سلاسة أكبر في التحرير وأحمالًا أخف على الـ CI.
تمنحك الأعلام (flags) الجديدة التحكم
تأتي إعادة الكتابة مع خيارات سطر الأوامر (command-line options) التي تتيح للفرق الموازنة بين السرعة والذاكرة:
- تطلق
--checkersو--buildersعمال (workers) التحليل وفحص الأنواع جنبًا إلى جنب، مما يستغل المعالجات متعددة الأنوية (multicore CPUs). - تفرض
--singleThreadedتنفيذ جميع العمليات على خيط واحد (one thread)، مما يجعل تصحيح الأخطاء (debugging) قابلاً للتكرار عند ظهور حالة تسابق (race condition). - يتيح التوسع المنفصل لعمال فحص الأنواع مقابل عمال البناء (builder workers) لخطوط أنابيب CI تخصيص الموارد الكافية فقط لكل مرحلة.
- يستخدم وضع
--watchالمطور نسخة من Parcel تعتمد على Go، مما يلغي عملية الاستطلاع (polling) المكلفة لأشجارnode_modulesالضخمة ويحافظ على خفة عملية اكتشاف تغيير الملفات.
من المستفيد، ومن قد يتردد
أطر عمل الواجهة الأمامية (Front-end frameworks) التي تعتمد بشكل كبير على TypeScript — مثل Next.js و Nuxt — ستستفيد من عمليات إعادة بناء أسرع وحلقات ملاحظات (feedback loops) أكثر إحكامًا. كما ستصبح بيئات التطوير المتكاملة (IDEs) مثل VS Code و Cursor أكثر استجابة، مما يشجع المطورين على البقاء في المحرر لفترة أطول بدلاً من الانتقال إلى عمليات البناء عبر الطرفية (terminal).
ما الذي يجب مراقبته لاحقًا
- معدلات الاعتماد بين المشاريع الكبيرة مفتوحة المصدر والمستودعات الموحدة (monorepos) في الشركات.
- ملاحظات المجتمع حول الاستقرار وأي تراجع مفاجئ في الأداء (performance cliffs) غير ظاهر.
- تحديثات Microsoft التي تضيف ميزات للمترجم لتقليل أوقات التجميع بشكل أكبر أو تحسين تشخيص الأخطاء.
