3 دقیقه
یک مخزن بزرگ تایپاسکریپت را باز کنید و احتمالا همان لحظه متوجه تغییر میشوید: کندیای که زمانی ویرایشگرها را آزار میداد، رو به محو شدن است. فایلها سریع باز میشوند. خطاها تقریبا بیدرنگ ظاهر میشوند. این تغییر یک اصلاح کوچک نیست. یک بازنویسی کامل است.
زیر پوسته: گو، پردازش موازی و غافلگیریهای کمتر
مایکروسافت نسخه نهایی تایپاسکریپت ۷ را پس از بازسازی هسته کامپایلر با زبان گو منتشر کرده است. نتیجه شبیه روایتی کوتاه از حذف اصطکاک در فرایند توسعه نرمافزار است: زمان کامپایل کل پروژه در بسیاری از سناریوها ۸ تا ۱۲ برابر سریعتر گزارش شده است. اندازهگیریهای واقعی نیز این ادعا را تایید میکنند. برای نمونه، در ویاس کد، زمان نمایش نخستین خطای گزارششده در یک پروژه بزرگ از حدود ۱۷.۵ ثانیه به کمتر از ۱.۳ ثانیه رسیده است، یعنی افزایشی بیش از ۱۳ برابر در سرعت.
سرعت تنها بخش ماجرا نیست. نسخه جدید، مراحل کلیدی زنجیره ابزار را موازیسازی میکند: تجزیه کد، بررسی نوعها و تولید خروجی اکنون هرجا ممکن باشد همزمان اجرا میشوند. این تغییر مهم است، چون پایگاههای کد مدرن به همان اندازه که عمیق هستند، گسترده نیز شدهاند. پردازش موازی معادله را عوض میکند. تیمها میتوانند این رفتار را با پرچمهای تازه تنظیم کنند: --checkers و --builders تعداد کارگرهای موازی در حال اجرا را کنترل میکنند، در حالی که --singleThreaded به توسعهدهندگان اجازه میدهد برای اشکالزدایی یا محیطهای کمتوان، اجرای تکریسمانی را اجباری کنند.

تایپاسکریپت ۷ فقط در محیط آزمایشگاهی عرضه نشده است. اسلک، کنوا، گوگل، بلومبرگ، فیگما، نوشن و چند تیم از مایکروسافت از جمله تیمز، آفیس و ایکسباکس در فرایند آزمایش آن مشارکت داشتند. کامپایلر جدید تعداد خطاهای سرور زبان را بیش از ۸۰ درصد کاهش داد و خرابیهای سرور را نیز بیش از ۶۰ درصد کمتر کرد. این اعداد در عمل یعنی زمان انتظار کمتر و وقفههای ناگهانی کمتر برای توسعهدهندگان.
شواهد در خط لوله یکپارچهسازی مداوم بسیار قانعکننده است. اسلک از کاهش ۴۰ درصدی زمان انتظار در صف ادغام خبر میدهد و میگوید بررسی نوعها در خط لوله یکپارچهسازی مداوم از حدود ۷.۵ دقیقه به ۱.۲۵ دقیقه کاهش یافته است. سرویسهای خبری مایکروسافت برآورد میکند که پس از مهاجرت به تایپاسکریپت ۷، به دلیل کاهش زمان انتظار در یکپارچهسازی مداوم، ماهانه حدود ۴۰۰ ساعت صرفهجویی شده است. این دقیقهها وقتی میان تعداد زیادی توسعهدهنده توزیع شوند، خیلی سریع به عددی چشمگیر تبدیل میشوند.
البته همه چیز بهصورت خودکار فعال نمیشود. ابزارها و یکپارچهسازیهای اکوسیستم هنوز به زمان نیاز دارند. مایکروسافت هنوز رابط برنامهنویسی ابزارها را برای زمان اجرای جدید پایدار نکرده است؛ انتظار میرود این کار در نسخه ۷.۱ انجام شود. تا آن زمان، برخی چارچوبها و ابزارها نمیتوانند بهطور کامل از سازوکارهای داخلی جدید بهره ببرند. ویو، اسولت، آسترو، امدیاکس و انگولار از جمله پروژههایی هستند که ممکن است پیش از استفاده کامل از این مزایا، به بهروزرسانی نیاز داشته باشند.

برای سادهتر شدن مهاجرت، مایکروسافت یک بسته سازگاری با نام typescript/typescript6@ منتشر کرده است تا تیمها بتوانند نسخههای ۶ و ۷ را همزمان اجرا کنند و در این فاصله ابزارهای ساخت و افزونهها را بهروزرسانی کنند. این تصمیم عملگرایانه، ریسک را برای سازمانهای بزرگی که نمیتوانند یکشبه کامپایلر خود را تغییر دهند، کاهش میدهد.
جمعبندی: تایپاسکریپت ۷ وعده تجربهای بهمراتب سریعتر برای توسعهدهندگان میدهد، اما اکوسیستم به یک دوره کوتاه برای هماهنگ شدن نیاز دارد تا همه بتوانند از مزیت کامل آن بهرهمند شوند.
پس تیمهای توسعه اکنون باید چه کنند؟ تایپاسکریپت ۷ را در یک شاخه جداگانه امتحان کنند، سرعت واکنش خط لوله یکپارچهسازی مداوم و ویرایشگر را بسنجند و برای بهروزرسانی افزونهها در چند ماه آینده برنامهریزی کنند. افزایش سرعت واقعی است، اما این گذار یک حرکت دو مرحلهای است: کامپایلری سریعتر و اکوسیستمی که خود را با ضربآهنگ تازه آن هماهنگ میکند.




.avif)
نظر بگذارید
نظرات (3)
احساس میکنم کمی اغراق شده؛ اعداد واقعاً قانعکنندهان اما اکوسیستم همیشه کندتر از کامپایلر خودش رو وفق میده. تست در شاخه جدا، منطقیه.
این آمار خیلی چشمگیره اما یه سوال؛ ابزارهای بزرگ مثل ویو و انگولار کی هماهنگ میشن؟ چون تا اون موقع ما گیر میفتیم، یا باید جدا شاخه تست بزنیم؟
وای، واقعاً؟ اگر این سرعت ها واقعی باشه، ویرایشگر انگار نفسش آزاد شد! ولی امیدوارم ابزارها زود آپدیت شن، وگرنه چندماهی خرابی سازگاری میبینیم...