👀 خبر در یک نگاه:
مایکروسافت نسخه آزمایشی بومی کامپایلر TypeScript با زبان Go معرفی کرد که تا ۱۰ برابر سریعتر است. این نسخه زمان بیلد و مصرف حافظه را کاهش میدهد و تجربه توسعهدهنده را بهبود میبخشد. پروژه آزمایشی است و بهزودی به عنوان TypeScript 7.0 منتشر میشود. |
تیم TypeScript مایکروسافت از نسخه بومی آزمایشی کامپایلر TypeScript (tsc) با نام tsc-go رونمایی کرده است. هدف این پروژه، بهبود ۱۰ برابری زمان بیلد، کاهش چشمگیر زمان راهاندازی اولیه ویرایشگر و بهینهسازی قابلتوجه مصرف حافظه است. در این رویکرد، کامپایلر که به زبان Go نوشته شده، بدون بار اضافی زمان اجرای Node.js اجرا میشود.
آندرس هایلسبرگ (Anders Hejlsberg)، معمار ارشد پروژه TypeScript، انگیزه پشت این پورت را اینگونه توضیح داد:
«ارزش اصلی TypeScript، ارائه تجربهای عالی برای توسعهدهنده است. اما با بزرگتر شدن کدبیس، در بسیاری از موارد TypeScript نتوانسته با بزرگترین کدبیسها مقیاسپذیر باقی بماند. توسعهدهندگانی که روی پروژههای بزرگ کار میکنند، باید بین زمان راهاندازی معقول ویرایشگر یا داشتن دید کامل نسبت به کل کد منبع یکی را انتخاب کنند. تجربههای جدیدی که توسط هوش مصنوعی تقویت میشوند، نیاز به دسترسی به حجم بالایی از اطلاعات معنایی با تأخیر کمتر دارند. همچنین ما به بیلدهای سریع از طریق خط فرمان نیاز داریم تا بتوانیم از سلامت کلی کدبیس اطمینان حاصل کنیم.»
جزئیات فنی پروژه
💡 کامپایلر استاندارد TypeScript روی Node.js زمان راهاندازی بالایی دارد، مخصوصا برای پروژههای بزرگ. نسخه بومی جدید با Go تا ۱۰ برابر سریعتر است و زمان بارگذاری و بررسی نوع کد پروژههای بزرگ مثل VS Code و Playwright را به شکل چشمگیری کاهش داده است. نسخه آزمایشی هنوز کامل نیست و قرار است به عنوان TypeScript 7.0 منتشر شود. |
کامپایلر استاندارد tsc که روی Node.js اجرا میشود، بهویژه در اجرای اولیه، برای پروژههای بزرگ یا بیلدهای مکرر و کوچک، زمان راهاندازی قابلتوجهی دارد. کامپایلر آزمایشی جدید TypeScript با زبان Go نوشته شده و به کد بومی کامپایل میشود که بدون بار اضافی زمان اجرای Node.js اجرا خواهد شد.
در بلاگ مایکروسافت اعلام شده که زمان بررسی نوع کد پروژه VS Code با یک میلیون خط کد، از ۷۷ ثانیه به ۷.۵ ثانیه کاهش یافته، یعنی بهبود ۱۰ برابری. نسبت مشابهی در کدبیس Playwright با ۳۵۶ هزار خط کد دیده شده که زمان از ۱۱ ثانیه به ۱ ثانیه رسیده است. مایکروسافت همچنین گزارش داده که این نسبت در کدبیسهای کوچکتر هم حفظ شده؛ برای مثال RxJS با ۲۱۰۰ خط کد، زمان بررسی نوع از ۱.۱ ثانیه به ۰.۱ ثانیه کاهش یافته است. در این پست بلاگ، ارقام بهبود بیلدهای افزایشی ارائه نشده است.
تیم TypeScript همچنین از بهبود ۸ برابری زمان بارگذاری پروژه در ویرایشگر برای کدبیس Visual Studio خبر داده و انتظار دارد همین نسبت در سایر کدبیسها هم ثابت بماند. تجربه توسعهدهنده بهبود مییابد چون فاصله زمانی بین باز کردن ویرایشگر کد و آماده شدن برای تایپ در کدبیس کاملا بارگذاری شده، به طور قابلتوجهی کاهش مییابد.
نسخه بومی (با نام رمز Corsa) هنوز آزمایشی محسوب میشود و بسیاری از ویژگیها از جمله بیلدهای افزایشی (Incremental) را ندارد. در بلاگ مایکروسافت اعلام شده وقتی کدبیس بومی به برابری کافی با نسخه فعلی TypeScript برسد، بهعنوان TypeScript 7.0 منتشر خواهد شد و مسیر مهاجرتی هوشمندانه به نسخههای قبلی ارائه میشود.
ما همچنان کدبیس جاوااسکریپت را در شاخه ۶.x نگه میداریم تا وقتی که نسخه TypeScript 7 به بلوغ و پذیرش کافی برسد.
واکنش توسعهدهندهها
واکنش توسعهدهندهها در پلتفرمهایی مثل Reddit و Hacker News درباره دلیل انتخاب Go به جای Rust سوال کرد. رایان کاواناف، رهبر تیم توسعه TypeScript، پاسخ مفصلی داده که توسعهدهندهها دعوت شدهاند آن را بررسی کنند. بخشی از پاسخ را اینطور نقل کرد:
«در نهایت دو گزینه داشتیم: یا بازنویسی کامل از صفر در Rust که ممکن بود سالها طول بکشد و نسخهای ناسازگار از TypeScript بهوجود آورد که عملا کسی نمیتوانست استفاده کند، یا فقط پورت کردن در Go که در حدود یک سال چیزی قابل استفاده تولید کند و از نظر معنایی بسیار سازگار و از نظر عملکرد بسیار رقابتی باشد.»
علاوهبر پست بلاگ، توسعهدهندهها تشویق میشوند ویدیوی یوتیوبی که هایلسبرگ در آن جزئیات پروژه پورت TypeScript را توضیح میدهد، مشاهده کنند. همچنین میتوانند به مخزن GitHub توسعه نسخه بومی TypeScript مراجعه کنند. یک نسخه پیشنمایش در npm با نام @typescript/native-preview موجود است و افزونه پیشنمایش VS Code هم در بازارچه VS Code قابل دسترسی است.
این پروژه تحت مجوز Apache License 2.0 منتشر شده و از مشارکتها و پیشنهادات استقبال میکند. برای جزئیات به Contributor License Agreements مراجعه کنید. پروژه از قوانین رفتار کد باز مایکروسافت پیروی میکند؛ برای اطلاعات بیشتر به Code of Conduct FAQ مراجعه کنید.
➕ نکته اضافه: خلاصهای از چارچوب رفتار حرفهای Microsoft Open Source:
کد رفتاری مایکروسافت برای پروژههای متنباز، استانداردهای رفتار حرفهای، احترام و همکاری را در جامعه توسعهدهندگان تعریف میکند. هدف اصلی این کد، ایجاد محیطی دوستانه، حمایتکننده و بدون تبعیض است تا همه اعضا بتوانند بدون نگرانی در پروژهها مشارکت کنند.
این کد رفتار شامل تعهد به احترام متقابل، جلوگیری از آزار و تبعیض، گزارشدهی مشکلات و همکاری سازنده است. همه مشارکتکنندگان باید این اصول را رعایت کنند و مایکروسافت هم متعهد به حمایت و پیگیری مسائل مرتبط با نقض این قوانین است.
جزییات بیشتر در opensource.microsoft.com
➕ نکته اضافه:
در صفحه سوالات متداول کد رفتار مایکروسافت برای پروژههای متنباز، نکات مهمی وجود دارد که در این خبر چند مورد را بهصورت خلاصه مطرح میکنیم:
- رفتار قابلقبول و غیرقابلقبول: توسعهدهندگان باید از رفتارهایی مانند همدلی، احترام به نظرات مختلف و پذیرش بازخورد سازنده حمایت کنند. رفتارهای غیرقابلقبول شامل آزار، توهین، تهاجم شخصی و انتشار اطلاعات خصوصی بدون اجازه میشود.
- گزارشدهی و پیگیری: در صورت مشاهده رفتار نامناسب، میتوان آن را به رهبران جامعه یا از طریق ایمیل opencode@microsoft.com گزارش داد. تمامی گزارشها با حفظ حریم خصوصی بررسی میشوند.
- دامنه اجرایی: این کد رفتار در تمامی فضاهای جامعه و همچنین زمانی که فرد بهطور رسمی نماینده جامعه در فضاهای عمومی است، اعمال میشود.
- اقدامات انضباطی: رهبران جامعه مسئول روشنسازی و اجرای استانداردهای رفتار قابلقبول هستند و در صورت لزوم، اقدامات اصلاحی مناسب را انجام میدهند.
- حمایت از تنوع و شمول: هدف این کد ایجاد محیطی دوستانه، حمایتکننده و بدون تبعیض است تا همه اعضا بتوانند بدون نگرانی در پروژهها مشارکت کنند.
برای اطلاعات بیشتر، میتوانید به صفحه سوالات متداول کد رفتار مایکروسافت مراجعه کنید.
منبع: infoq.com
دیدگاهتان را بنویسید