Transcript
00:00:00أصدرت تايب سكريبت نسخة تجريبية للإصدار 7، وهذا سيكون الإصدار الذي
00:00:04تصبح فيه تايب سكريبت ليست تايب سكريبت. إذا لم تكن متابعاً، فقد كانوا يعملون على إعادة كتابة
00:00:07مترجم تايب سكريبت من تايب سكريبت نفسها إلى لغة جو، والنتائج أسرع بـ 10 مرات كما يبدو.
00:00:12يتوقعون إصدار تايب سكريبت 7 خلال الشهر القادم، لذا دعونا نستعرض ما تغير فعلياً
00:00:17وكم هي سريعة، وما إذا كانت هناك أي تغييرات جذرية يجب أن تعرفها قبل تثبيتها.
00:00:26إذا فاتتك أخبار نقلها إلى لغة جو، فقد بدؤوا هذا الأمر منذ عام تقريباً
00:00:29والخلاصة هي أنهم أدركوا أن جافا سكريبت لم تُبنى أبداً للعمل المكثف الذي يعتمد على المعالج
00:00:34والذي يقوم به فاحص الأنواع، لذا بدؤوا بإعادة كتابته بلغة جو وحققوا نجاحاً مبكراً كبيراً.
00:00:39لقد بدؤوا بأساس نقل التنفيذ الحالي لتايب سكريبت سطراً بسطر، ليكون منطق
00:00:44فحص الأنواع مطابقاً هيكلياً وله نفس السلوك، ويمكنك حتى رؤية أن بعض
00:00:48الدوال كانت متطابقة تقريباً بصرف النظر عن اللغة. وأنا متأكد أيضاً أن هذا كان قبل
00:00:52أن تتمكن ببساطة من توجيه “كلود” إلى قاعدة الكود الخاصة بك وتقول له “انقلها إلى أي لغة تريد”
00:00:56أنا أنظر إليك يا “بن”. نتائج النقل تتحدث عن نفسها، هنا لدي
00:01:00مستودع “بلايرايت”، وإذا قمت بفحص الأنواع باستخدام الإصدار القديم من تايب سكريبت، نرى هنا أن هذا
00:01:04يستغرق حوالي ست ثوانٍ ليكتمل، وقد مر على 1400 ملف ونصف مليون سطر
00:01:08من الكود. إذا تحولت الآن إلى النسخة التجريبية دون تغيير أي شيء سوى هذا الأمر
00:01:12فقد استغرق الأمر إجمالاً 0.87 ثانية، وهذا تحسن كبير. كما وجد نفس العدد تماماً من
00:01:18الأخطاء، نفس الأخطاء، ومر على نفس الملفات وكل أسطر الكود، لذا فهو يعمل تماماً
00:01:23مثل تايب سكريبت 6. الكود الأصلي للغة جو أسرع بشكل أساسي من جافا سكريبت لمهمة
00:01:27كهذه، لكنه يسمح لهم أيضاً باستخدام التوازي في الذاكرة المشتركة، حيث كان مترجم جافا سكريبت
00:01:32يعمل بخيط معالجة واحد، بينما يمكن للغة جو توزيع فحص الأنواع على عدة أنوية في وقت واحد.
00:01:37في تايب سكريبت 7، يمكنك بالفعل إجباره على العمل بخيط معالجة واحد عبر علم، ربما لإجراء تصحيح
00:01:41للأخطاء أو إذا كنت تعمل على جهاز بموارد محدودة. وإذا قمت بهذا في قاعدة كود “بلايرايت”
00:01:46هنا مع تايب سكريبت 7، نرى أنه عند العمل بخيط واحد يستغرق الأمر حوالي ثانيتين، وهو
00:01:50لا يزال أسرع بثلاث مرات مما كان عليه من قبل. وبالحديث عن العمل بالتوازي، فهم يطرحون أيضاً
00:01:54علماً جديداً للفاحصات يسمح لك فعلياً بتحديد عدد عمال فحص الأنواع الذين يمكنهم العمل بالتوازي
00:01:58وهذا يضبط افتراضياً على أربعة. زيادة هذا الرقم يمكن أن تسرع عمليات البناء في قواعد الكود الكبيرة إذا
00:02:03كان لديك الكثير من أنوية المعالج، لكن ذلك سيأتي على حساب استهلاك إضافي للذاكرة. إذا قمت بضبط الفاحصات
00:02:08على 8 في مستودع “بلايرايت” هذا، وهو ضعف القيمة الافتراضية، يبدو أنه يقلص بالفعل ثلثاً آخر
00:02:12من الوقت. يوجد أيضاً علم جديد للبنائين لموازاة بناء مشاريع المراجع، أي بناء
00:02:16مشاريع متعددة في وقت واحد، وهذا العلم يسمح لك بالتحكم في عدد البنائين المتوازيين الذين يمكنهم
00:02:20العمل في وقت واحد. والجدير بالذكر أنه إذا دمجت هذا مع الفاحصات التي رأيناها للتو، لنقل
00:02:24أن لديك أربعة من كل منهما، فهذا يعني أنه يمكنك الحصول على ما يصل إلى 16 فاحصاً للأنواع يعملون في وقت واحد.
00:02:29بجانب تغييرات الكود الأصلي والتوازي، هناك إعادة كتابة كبيرة أخرى في تايب سكريبت 7 وهي وضع المراقبة.
00:02:34عندما نقلوا إلى لغة جو، كان هذا أكثر تعقيداً قليلاً لأن المكتبة القياسية لا توفر
00:02:38واجهات برمجية مدمجة لمراقبة الملفات، والمكتبات الخارجية التي جربوها كان لديها مشاكل في جوانب مثل
00:02:43الاستقرار والأداء ودعم الأنظمة المتعددة، لذا نظر الفريق بالفعل إلى مراقب ملفات
00:02:47حزمة “بارسل” التي تستخدمها مايكروسوفت قليلاً في “في إس كود”، ولكن بما أنه كان بلغة سي++، فقد اضطروا أيضاً
00:02:53إلى نقل أجزاء منه التي يحتاجونها إلى لغة جو أيضاً. الخبر السار هو أنهم فعلوا
00:02:57كل شيء ويبدو أنه يعمل بسلاسة كبيرة وأفضل من ذي قبل. بعد ذلك، وبما أن هذا
00:03:01تحديث إصدار رئيسي، قد تتوقع الكثير من التغييرات الجذرية خاصة وأن هذه إعادة كتابة كبيرة،
00:03:05لكنني لا أعتقد أن هناك أي منها إذا كنت تنتقل من تايب سكريبت 6 إلى 7. إذا كنت
00:03:10تريد الانتقال من 5 إلى 7، فسيكون هناك عدد لا بأس به، لذا يبدو أنهم يوصون بأن
00:03:14ترتقي إلى 6 أولاً وتجعل كل شيء يعمل ثم يكون تحديث الإصدار إلى 7 بلا مشاكل. بعض
00:03:19التغييرات الكبيرة في تايب سكريبت 6 كانت إزالة استهداف “إي إس 5”، وإزالة “بيس يو آر إل”، وإيقاف دعم أنظمة
00:03:24وحدات “أي إم دي” و”يو إم دي” و”سيستم جي إس”. كما جعلوا “ستريكت” صحيحاً افتراضياً، وجعلوا الوحدات افتراضياً “إي إس نيكست”
00:03:31واستهداف النسخة الافتراضية لإصدار “إيكما سكريبت” المستقر الحالي الذي يسبق “إي إس نيكست” مباشرة. كان الأمر
00:03:36ببساطة الكثير من ترك الماضي خلفنا وتحديث تايب سكريبت وهو ما أحبه حقاً،
00:03:40لأنه أحياناً محاولة دعم المشاريع القديمة في كل إصدار تقوم به يمكن أن تبطئ حقاً
00:03:45تقدم الأداة. بالنظر إلى بقية هذه التدوينة، يبدو فعلياً أن التغيير أو الميزة الجديدة
00:03:49الوحيدة التي تهم لغة تايب سكريبت نفسها هي أن أنواع القوالب الحرفية
00:03:53تحتفظ الآن بنقاط رموز يونيكود. بشكل أساسي، قبل تايب سكريبت 7، كانت تايب سكريبت تقسم فعلياً على وحدات رموز “يو تي إف 16”
00:03:59لذا كانت تنتهي بتقسيم الإيموجي إلى نصفين، وكنت ستنتهي بهذه الأنواع الغريبة للرأس
00:04:04والذيل هنا. في تايب سكريبت 7 ومع ذلك، فهي تقسم فعلياً على نقاط رموز كاملة، أي أحرف كاملة
00:04:09لذا الآن يتم الحفاظ على الإيموجي والتقسيم هو إلى حد كبير كما تتوقع أن يكون. سأكون
00:04:13منبهراً حقاً إذا كان أي منكم قد صادف هذا في وقت استخدامه لتايب سكريبت.
00:04:18بشكل عام، هذه التغييرات يجب أن تجعل أي شيء يستخدم تايب سكريبت يبدو أسرع بكثير مثل تايب سكريبت
00:04:22في محررك خاصة للمشاريع الكبيرة. من المتوقع صدور النسخة المستقرة خلال حوالي شهر
00:04:27لكن واجهة برمجة تطبيقات برمجية مستقرة، أي الشيء الذي يستخدمه مؤلفو الأدوات للبناء فوق المترجم
00:04:32ستصل في الإصدار 7.1. وبسبب هذا، توجد أيضاً حزمة توافق حتى تتمكن من تشغيل
00:04:36تايب سكريبت 6 و 7 جنباً إلى جنب دون الدخول في صراعات. دعوني أعرف رأيكم في كل
00:04:41هذا، وأنا فضولي لمعرفة ما إذا كنت قد شعرت يوماً أن تايب سكريبت كانت بطيئة، دعوني أعرف في
00:04:44التعليقات. بينما أنتم هناك اشتركوا، وكما هو الحال دائماً، أراكم في المرة القادمة.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video