پرش به محتوای اصلی
پرش به محتوای مقاله

درون تغییرات TypeScript 7؛ جایگزینی موتور اجرایی برای تحول در CI

·۱۷ تیر ۱۴۰۵۱۸ دقیقه مطالعه
لوگوی TypeScript 7.0: اعلام نسخه جدید با قابلیت‌های پیشرفته تایپ و عملکرد بهبودیافته.
لوگوی TypeScript 7.0: اعلام نسخه جدید با قابلیت‌های پیشرفته تایپ و عملکرد بهبودیافته.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

بازنویسی کامل هسته کامپایلر تایپ‌اسکریپت از جاوا‌اسکریپت به زبان Go برای دستیابی به موازی‌سازی واقعی و کاهش تا ۱۲ برابری زمان ساخت.

اگر امروز از تایپ‌اسکریپت برای پروژه‌های حجیم استفاده می‌کنید، زمان انتظار برای بررسی انواع (Type-checking) در محیط ویرایشگر یا خط لوله CI به‌طور ملموسی کاهش می‌یابد. در کدبیس VS Code، زمان ساخت کامل از ۱۲۵.۷ ثانیه به ۱۰.۶ ثانیه رسید که به معنای ۱۱.۹ برابر سرعت بیشتر است.

این جهش خیره‌کننده نتیجه انتشار تایپ‌اسکریپت ۷ (TypeScript 7) است. مایکروسافت برای رسیدن به این عدد، تصمیم گرفت کل پروژه را به زبان Go منتقل کند تا از تمام توان سخت‌افزارهای مدرن، به‌ویژه چندرشته‌ای بودن (Multithreading) و سرعت اجرای کد نیتیو استفاده کند. تایپ‌اسکریپت از ابتدای ظهور، وعده داد که جاوا‌اسکریپتی در مقیاس بزرگ ارائه دهد و با معرفی بررسی دقیق انواع و ابزارهای غنی، امکان ساخت اپلیکیشن‌های باکیفیت در تمامی پلتفرم‌ها را فراهم کرد. اکنون این انتشار، نقطه culmination یا اوج مأموریتی است که هدف آن، سریع‌تر کردن هر بخش از مجموعه ابزارها به میزان یک مرتبه بزرگی (Order of Magnitude) بود.

سال‌ها بود که توسعه‌دهندگان با محدودیت‌های مقیاس‌پذیری کامپایلر اصلی تایپ‌اسکریپت دست‌وپنجه نرم می‌کردند. در پروژه‌هایی که به میلیون‌ها خط کد می‌رسند، زمان انتظار برای تایپ-چکینگ در ادیتور یا خط لوله‌های CI به گلوگاه اصلی در چرخه توسعه تبدیل می‌شود. تصور کنید دنیایی را که در آن بررسی انواع کل یک پروژه به‌جای چندین دقیقه، تنها در چند ثانیه انجام شود؛ این همان تغییر بنیادینی است که این به‌روزرسانی به اکوسیستم می‌آورد. همان‌طور که در تحلیل قبلی ما درباره امنیت مدل‌های بازمتن اشاره کردیم، بهینه‌سازی زیرساختی همواره پیش‌نیاز پذیرش ابزارهای پیچیده‌تر در مقیاس صنعتی است.

معماری پورت نیتیو

به نقل از وبلاگ مهندسی مایکروسافت (Microsoft)، تیم توسعه یک «پورت وفادار» (Faithful Port) از کدبیس اصلی به زبان Go انجام داده است. آن‌ها ساختار و منطق کامپایلر موجود را حفظ کردند تا تضمین شود که نتایج بین دو نسخه، سازگار و یکسان باقی می‌ماند. سود اصلی از رهایی از یک محیط اجرای مبتنی بر جاوا‌اسکریپت و انتقال به کد نیتیو حاصل شده است.

این زیربنای جدید چندین بهینه‌سازی فنی حیاتی را معرفی می‌کند:

  • چندرشته‌ای بودن با حافظه مشترک (Shared Memory Multithreading): کامپایلر اکنون می‌تواند از چندین هسته CPU به‌طور مؤثرتر استفاده کند.
  • جریان‌های کاری موازی: فرآیندهای تجزیه (Parsing)، بررسی انواع (Type-checking) و تولید کد (Emitting) اکنون به‌صورت موازی انجام می‌شوند.
  • یکپارچگی LSP: پروتکل سرور زبان (LSP) جدید اجازه می‌دهد ویرایشگرها درخواست‌های هم‌زمان را بدون مسدود شدن (Blocking) پاسخ دهند.

لوگوی TypeScript در کنار عنوان «معرفی TypeScript 7.0»

دستاوردهای عددی در عملکرد

بر اساس بنچمارک‌های دنیای واقعی روی پروژه‌های بزرگ متن‌باز، تأثیر این تغییرات کاملاً ملموس است. فراتر از VS Code، کدبیس Sentry شاهد کاهش زمان ساخت از ۱۳۹.۸ ثانیه به ۱۵.۷ ثانیه (۸.۹ برابر) بود. پروژه‌های دیگری مانند Bluesky و Playwright سرعت ۸.۷ برابر و پروژه tldraw بهبود ۷.۷ برابری را تجربه کردند (کاهش از ۱۱.۲ ثانیه به ۱.۴۶ ثانیه).

بهره‌وری حافظه نیز به‌طور قابل‌توجهی بهبود یافته است. کامپایلر TypeScript 7 در طول یک بازه ساخت، به حافظه کلی کمتری نیاز دارد. برای مثال:

  • VS Code: اثر حافظه ۱۸ درصد کاهش یافت (از ۵.۲ گیگابایت به ۴.۲ گیگابایت).
  • Bluesky: شاهد کاهش ۲۶ درصدی بود (از ۱.۸ گیگابایت به ۱.۳ گیگابایت).
  • Playwright: کاهش ۱۱ درصدی را تجربه کرد (از ۱.۰ گیگابایت به ۰.۹ گیگابایت).
  • tldraw: کاهش ۱۵ درصدی داشت (از ۰.۶ گیگابایت به ۰.۵ گیگابایت).
  • Sentry: کاهش ۶ درصدی را مشاهده کرد (از ۴.۹ گیگابایت به ۴.۶ گیگابایت).

لوگوی TypeScript 7.0 با رنگ‌های آبی و زرد روی پس‌زمینه تیره

تأثیر بر تجربه توسعه‌دهنده

بیشترین تغییر در محیط ویرایشگر حس می‌شود. در کدبیس VS Code، باز کردن فایلی که دارای خطا بود، پیش‌تر ۱۷.۵ ثانیه طول می‌کشید تا اولین «خط قرمز» (Squiggle) نمایش داده شود؛ اکنون این زمان به کمتر از ۱.۳ ثانیه رسیده است (۱۳ برابر سریع‌تر). این تجربه روان در بخش‌های «یافتن تمام ارجاعات»، تکمیل خودکار (Auto-completion) و تشخیص خطاها (Diagnostics) نیز تکرار شده است که اکنون تنها بخشی از زمان قبلی را می‌گیرند. برای توسعه‌دهندگانی که از حالت --watch استفاده می‌کنند، چرخه بازخورد (Feedback Loop) اکنون تنگ‌تر و سریع‌تر از هر زمان دیگری است.

شرکت‌هایی که در مقیاس بزرگ از این ابزار استفاده می‌کنند، گزارش‌های خیره‌کننده‌ای داده‌اند. مهندسان Slack اعلام کردند که این به‌روزرسانی ۴۰ درصد از زمان صف ادغام (Merge Queue) آن‌ها را حذف کرد و بررسی انواع در CI را از ۷.۵ دقیقه به ۱.۲۵ دقیقه رساند. پیش از این، توسعه محلی به‌دلیل فشار روی سرور تقریباً «غیرقابل استفاده» بود و مهندسان مجبور بودند برای بررسی کامل به CI تکیه کنند؛ اما اکنون همان کدبیس در چند ثانیه بارگذاری می‌شود.

تیم خدمات خبری مایکروسافت، صرفه‌جویی ۴۰۰ ساعته در ماه در زمان انتظار CI را گزارش کرد. مهندسان PowerBI تجربه ویرایشگر را «نجات‌بخش» توصیف کردند و حتی پیش از آنکه قابلیت تغییر نام (Rename) در VS Code پشتیبانی شود، آن را به عنوان پیش‌فرض پذیرفتند. توسعه‌دهندگان Loop که روی مونوریپوی این پروژه کار می‌کردند و پیش‌تر تجربه را غیرقابل استفاده می‌دیدند، اکنون آن را «شگفت‌آور» می‌نامند.

توسعه‌دهندگان Canva نیز گزارش دادند زمان مشاهده اولین خطا در ویرایشگرهایشان از ۵۸ ثانیه به حدود ۴.۸ ثانیه رسیده است. سایر شرکای تست شامل شرکت‌های Bloomberg، Figma، Google، Lattice، Linear، Miro، Notion، Vanta و VoidZero بودند.

آمادگی برای تولید و تست

برای تضمین پایداری، تیم توسعه از ده‌ها هزار تست که طی بیش از یک دهه ساخته شده بود، بهره برد. این تست‌ها روی هر کامیت در شاخه اصلی (Main Branch) اجرا می‌شوند. فراتر از مجموعه تست‌های اصلی، تیم طی سال گذشته با تیم‌های بزرگ داخلی و خارجی همکاری کرد تا پایداری را روی کدبیس‌های واقعی بسنجد.

تست‌های داخلی مایکروسافت تیم‌های زیر را شامل می‌شد:

  • Loop
  • Office
  • PowerBI
  • Teams
  • Xbox

جزئیات زیرساخت تست

تیم توسعه بخش بزرگی از زیرساخت‌های تست گسترده‌تر خود را بازسازی کرد تا روی نسخه ۷ اجرا شوند. این تلاش تضمین کرد که پورت نیتیو جدید می‌تواند پیچیدگی‌های کدهای دنیای واقعی را مدیریت کند.

  • تست رگرسیون GitHub: تست‌های خودکار و بر حسب تقاضا (On-demand) برای پروژه‌های تایپ‌اسکریپت و جاوا‌اسکریپت در GitHub بازگردانده شد تا پس‌گرایی‌ها (Regressions) در کامپایلر و سرویس زبان شناسایی شوند.
  • ردیابی گزارش‌های کرش: تیم بازخوردهای صریح کاربران را با گزارش‌های خودکار کرش و تست‌های تهاجمی ترکیب کرد.
  • معیارهای قابلیت اطمینان: تحلیل داده‌ها نشان می‌دهد که سرور زبان TypeScript 7.0 دستورات شکست‌خورده را بیش از ۸۰ درصد و کرش‌های سرور را بیش از ۶۰ درصد نسبت به نسخه ۶.۰ کاهش داده است.

تنظیمات موازی‌سازی

برای مدیریت موازنه بین سرعت و مصرف رم، TypeScript 7.0 پرچم‌های (Flags) آزمایشی جدیدی معرفی کرده است:

  • --checkers: تعداد کارگران (Workers) بررسی انواع را کنترل می‌کند (پیش‌فرض ۴). این پرچم تعداد ثابتی از کارگران را ایجاد می‌کند که هرکدام نمای خاص خود از جهان کد را دارند تا از تکرار بیهوده عملیات جلوگیری شود، در حالی که با حفظ ترتیب یکسان فایل‌ها، نتایجی یکسان تولید می‌کنند. افزایش این عدد به ۸ در ماشین‌های با تعداد هسته زیاد، می‌تواند سرعت VS Code را تا ۱۶.۷ برابر (۷.۵۱ ثانیه) و Sentry را تا ۱۱.۶ برابر (۱۲.۰۸ ثانیه) ارتقا دهد.
  • --builders: مدیریت سازنده‌های ارجاع پروژه در حالت --build است که برای مونوریپوها حیاتی است. توجه داشته باشید که افزایش هم‌زمان --checkers و --builders اثر ضرب‌در دارد (مثلاً ۴ چکر و ۴ بیلدر به معنای امکان فعال‌سازی تا ۱۶ بررسی‌کننده است).
  • --singleThreaded: تمام موازی‌سازی‌ها را برای عیب‌یابی یا محیط‌های کم‌منابع غیرفعال می‌کند. این کار تعداد کارگران بررسی انواع را به ۱ محدود کرده و تضمین می‌کند که تجزیه و تولید کد را به‌صورت تک‌رشته‌ای انجام دهد.

مکانیزم‌های موازی‌سازی بررسی انواع

بررسی انواع نسبت به تجزیه یا تولید کد، وابستگی‌های پیچیده‌تری بین فایل‌ها دارد. چون اکثر فایل‌ها به اطلاعات نوع مشترک از اسکوپ‌های جهانی و وابستگی‌ها نیاز دارند، اجرای کاملاً مستقل کارگران باعث اتلاف شدید محاسبات و حافظه می‌شد.

  • قطعی بودن (Determinism): برای تضمین نتایج سازگار، بررسی انواع از ابتدا (Scratch) باید همیشه فایل‌ها را با ترتیبی دقیقاً یکسان بررسی کند.
  • استراتژی کارگر: نسخه ۷.۰ از تعداد ثابتی کارگر استفاده می‌کند. اگرچه آن‌ها ممکن است برخی کارهای مشترک را تکرار کنند، اما فایل‌های ورودی را به‌طور یکسان تقسیم می‌کنند تا ثبات خروجی تضمین شود.
  • موازنه منابع: در ماشین‌هایی با هسته‌های CPU کمتر (مانند Runnerهای CI)، توسعه‌دهندگان می‌توانند --checkers 1 را تنظیم کنند تا تکرار کارها حذف و سربار (Overhead) کاهش یابد.

حالت جدید --watch

تیم توسعه حالت --watch را به‌طور کامل بازسازی کرد. آن‌ها سیستم رصد فایل (File-watcher) باندلر Parcel را از C++ به Go منتقل کردند و از شیم‌های (Shims) اسمبلی حداقلی برای حذف وابستگی به زنجیره ابزار (Toolchain) C++ استفاده نمودند.

این اقدام به‌دلیل نبود API داخلی برای رصد فایل در کتابخانه استاندارد Go ضروری بود. کتابخانه‌های شخص ثالث قبلی از مشکلاتی در زمینه پایداری یا عملکرد رنج می‌بردند. راهکارهای مبتنی بر Polling (پرس‌وجوی مداوم) برای مقیاس‌های بزرگ پروژه، به‌ویژه در پوشه node_modules بسیار هزینه‌بر بودند. رصدگر جدید مبتنی بر Go، قابلیت‌های پایدار و به‌صرفه را در پلتفرم‌های مختلف فراهم می‌کند. تیم توسعه به‌طور صریح از Devon Govett برای کارهای انجام شده در Parcel که به این پورت کمک کرد، تشکر کرد.

تغییرات ساختاری و سازگاری

تایپ‌اسکریپت ۷ پیش‌فرض‌های نسخه ۶.۰ را پذیرفته و هشدارهای منسوخ‌شده قبلی را به خطاهای سخت (Hard Errors) تبدیل کرده است. تغییرات مهم در پیکربندی پیش‌فرض عبارتند از:

  • strict اکنون به‌صورت پیش‌فرض true است.
  • module روی esnext تنظیم شده است.
  • target روی آخرین نسخه پایدار ECMAScript که بلافاصله پیش از esnext است، قرار دارد.
  • noUncheckedSideEffectImports به‌صورت پیش‌فرض true است.
  • libReplacement به‌صورت پیش‌فرض false است.
  • stableTypeOrdering به‌صورت پیش‌فرض true است و نمی‌توان آن را غیرفعال کرد.
  • rootDir اکنون پیش‌فرض ./ دارد (دایرکتوری‌های منبع داخلی باید صراحتاً تنظیم شوند).
  • types اکنون پیش‌فرض [] دارد (که می‌تواند به ["*"] بازگردانده شود).

ویژگی‌های منسوخ شده به عنوان خطای سخت

چندین ساختار که در نسخه ۶.۰ منسوخ شده بودند، اکنون به خطاهای سخت با رفتار no-op تبدیل شده‌اند:

  • هدف/تکرار: target: es5 و downlevelIteration دیگر پشتیبانی نمی‌شوند.
  • تفکیک ماژول: moduleResolution: classic و node/node10 پشتیبانی نمی‌شوند. استفاده از nodenext و bundler توصیه می‌شود.
  • انواع ماژول: module: amd, umd, systemjs, none پشتیبانی نمی‌شوند؛ از esnext یا preserve همراه با یک باندلر استفاده کنید.
  • مسیرها: baseUrl دیگر پشتیبانی نمی‌شود؛ مسیرها باید نسبت به ریشه پروژه (Project Root) باشند.
  • سنتکس: کلمه کلیدی module در اعلان‌های namespace ممنوع شد. کلمه کلیدی asserts در ایمپورت‌ها برای هم‌سویی با ECMAScript با with جایگزین شد.
  • سایر موارد: alwaysStrict اکنون پیش‌فرض true است؛ esModuleInterop و allowSyntheticDefaultImports را نمی‌توان روی false تنظیم کرد. همچنین /// <reference no-default-lib /> تحت skipDefaultLibCheck نادیده گرفته می‌شود. مسیرهای فایل را نمی‌توان از طریق CLI پاس داد اگر tsconfig.json وجود داشته باشد، مگر با استفاده از --ignoreConfig.

ابزارهای زبانی پیشرفته

یک تغییر اساسی در نحوه مدیریت یونیکد توسط کامپایلر رخ داده است. انواع Template Literal اکنون نقاط کد (Code Points) یونیکد را به‌طور طبیعی حفظ می‌کنند. برای مثال، ایموجی «😀» به‌جای دو جفت جایگزین UTF-16 (\ud83d و \ude00)، به عنوان یک واحد واحد شناخته می‌شود. اگرچه این تغییر برخی ابزارهای اندازه‌گیری طول رشته را که بر اساس UTF-16 مدل شده بودند می‌شکند، اما با رفتار for...of یا عملگر گسترش ([...str]) در جاوا‌اسکریپت کاملاً هم‌راستا است.

بازنگری در پشتیبانی از جاوا‌اسکریپت

پشتیبانی از جاوا‌اسکریپت برای سازگاری بیشتر با فایل‌های .ts بازسازی شد. الگوهای زیر دیگر پشتیبانی نمی‌شوند:

  • مقادیر در برابر انواع: مقادیر (Values) نمی‌توانند در جایی که نوع (Type) انتظار می‌رود استفاده شوند (در این موارد از typeof someValue استفاده کنید).
  • Enumها: تگ @enum حذف شد؛ به‌جای آن از @typedef روی (typeof YourEnumDeclaration)[keyof typeof YourEnumDeclaration] استفاده کنید.
  • انواع: علامت ? مستقل دیگر قابل استفاده نیست؛ به‌جای آن از any استفاده کنید. نام‌های نوع باید در تگ @typedef باشند، نه فقط در مجاورت یک شناسه.
  • کلاس‌ها: تگ @class دیگر یک تابع را به سازنده تبدیل نمی‌کند؛ باید از اعلان‌های کلاس (Class Declarations) استفاده شود.
  • سنتکس: علامت ! پسوند (Postfix) پشتیبانی نمی‌شود (از T استفاده کنید). سینتکس تابعی مدل Closure (مانند function(string): void) پشتیبانی نمی‌شود؛ از (s: string) => void استفاده کنید.
  • سایر موارد: نام‌های مستعار (Aliasing) برای this و تخصیص مجدد کل پروتوتایپ یک تابع دیگر به‌طور خاص پردازش نمی‌شوند.

تجربه ویرایشگر و LSP

تایپ‌اسکریپت ۷ از پروتکل سرور زبان (LSP) برای پاسخ به درخواست‌های هم‌زمان در چندین رشته استفاده می‌کند. اگرچه نسخه بتا شکاف‌هایی داشت، اما انتشار نهایی شامل ویژگی‌های حیاتی است:

  • ابزارهای اصلی: وارد کردن خودکار (Auto-imports)، نمایش‌های بازشونده (Expandable hovers) و راهنمایهای داخلی (Inlay hints).
  • ناوبری پیشرفته: Code lenses، رفتن به تعریف منبع (Go-to-source-definition) و ویرایش لینک‌شده در JSX.
  • بازسازی (Refactoring): تکمیل تگ‌ها، هایلایت معنایی، مرتب‌سازی ایمپورت‌ها و حذف ایمپورت‌های بدون استفاده.

استراتژی انتقال

از آنجا که نسخه ۷ هنوز API برنامه‌نویسی (Programmatic API) پایداری را عرضه نکرده است، نمی‌تواند فعلاً در ابزارهایی که کامپایلرهای خاص خود را دارند جاسازی شود. این یعنی گردش‌های کاری در Vue، MDX، Astro، Svelte و قالب‌های Angular احتمالاً فعلاً از نسخه ۶.۰ استفاده خواهند کرد.

پروژه‌های Angular می‌توانند از رویکرد ترکیبی استفاده کنند: نسخه ۷ برای تشخیص خطای CLI از طریق tsc و نسخه ۶.۰ برای پشتیبانی در ویرایشگر. در VS Code، کاربران می‌توانند با اجرای دستور «Disable TypeScript 7 Language Server» به نسخه ۶ بازگردند.

برای تسهیل انتقال، مایکروسافت بسته سازگاری @typescript/typescript6 را منتشر کرد. این به توسعه‌دهندگان اجازه می‌دهد tsc6 (نسخه ۶) و tsc (نسخه ۷) را به‌صورت هم‌زمان با استفاده از نام‌های مستعار (Aliases) در npm اجرا کنند. برای ابزارهایی مانند typescript-eslint که به وابستگی‌های peer نسخه ۶ نیاز دارند، پیکربندی زیر در package.json توصیه می‌شود:

{
  "devDependencies": {
    "typescript": "npm:@typescript/typescript6@^6.0.2",
    "typescript-7": "npm:typescript@^7.0.2"
  }
}

تحلیل: تغییر به سمت ابزارهای نیتیو

این حرکت نشان‌دهنده یک روند گسترده‌تر است: دوران «جاوا‌اسکریپت برای همه چیز» در حال رسیدن به سقف توان خود است. در حالی که جاوا‌اسکریپت زبان وب است، ابزارهایی که آن را می‌سازند به‌طور فزاینده‌ای به زبان‌های نیتیو (Go, Rust) منتقل می‌شوند تا از سربار ذاتی موتور V8 اجتناب کنند.

برای توسعه‌دهنده فردی، این بدان معناست که چرخه بازخورد دیگر یک منبع اصطکاک نیست. وقتی تایپ-چکینگ «لحظه‌ای» شود، توسعه‌دهندگان بیشتر تمایل پیدا می‌کنند تا به جای استفاده از any برای دور زدن کامپایلر کند، به تایپ‌های سخت (Strict Typing) تکیه کنند. این امر احتمالاً منجر به ارتقای کیفیت کلی کد در سراسر اکوسیستم می‌شود، زیرا «مالیات» یا هزینه زمانی تایپ‌گذاری دقیق حذف شده است.

گام بعدی شما

توسعه‌دهندگان می‌توانند نسخه جدید را از طریق npm install -D typescript نصب کنند. برای کسانی که از بسته @typescript/native-preview (که ۸.۵ میلیون دانلود هفتگی داشت) استفاده می‌کردند، بیلد‌های شبانه اکنون تحت بسته استاندارد typescript با تگ next بازمی‌گردند: npm install -D typescript@next.

مستندات ویرایشگر خود را برای افزونه اختصاصی تایپ‌اسکریپت ۷ بررسی کنید. در VS Code، کاربران می‌توانند تجربه جدید را از طریق دستورات Enable/Disable سرور زبان تست کنند. کاربران Visual Studio این قابلیت را به‌صورت خودکار بر اساس فضای کاری (Workspace) خود فعال خواهند دید. همچنین منتظر انتشار نسخه TypeScript 7.1 باشید که انتظار می‌رود API پایدار جدید را برای یکپارچگی ابزارهای اکوسیستم معرفی کند. تیم توسعه قصد دارد به چرخه انتشار استاندارد (نسخه‌های دارای ویژگی هر ۳ تا ۴ ماه یکبار) بازگردد.

اما این جهش سرعت تنها بخشی از یک تغییر بزرگتر در ابزارهای توسعه است؛ برای درک اینکه چرا Rust و Go در حال بلعیدن سهم بازار ابزارهای JS هستند، به تحلیل ما درباره تولکیت‌های نیتیو مراجعه کنید.

چرا این موضوع مهم است؟

این به‌روزرسانی با حذف گلوگاه‌های زمانی در پروژه‌های عظیم، بهره‌وری تیم‌های مهندسی را به‌طور مستقیم افزایش می‌دهد. استفاده از زبان Go تخصص مایکروسافت در بهینه‌سازی زیرساختی را به رخ می‌کشد و استانداردی جدید برای ابزارهای توسعه تعریف می‌کند.

تأثیر برای ایران

برنامه‌نویسان ایرانی که در پروژه‌های بزرگ Open Source یا شرکت‌های نرم‌افزاری فعالیت می‌کنند، می‌توانند با نصب این نسخه، سرعت توسعه و کاهش زمان انتظار در CI را تجربه کنند. دسترسی به این ابزار از طریق npm آزاد است.

·نگاه ما
تحریریه دات‌هوش

انتقال تایپ‌اسکریپت به Go نشان می‌دهد که عصر «جاوااسکریپت برای همه چیز» به سقف توانایی‌های خود رسیده است. وقتی هزینه استنتاج و بررسی انواع به نزدیکی صفر می‌رسد، توسعه‌دهندگان دیگر برای فرار از کندی کامپایلر به `any` پناه نمی‌برند و این موضوع به‌طور مستقیم کیفیت کلی کدهای تولید شده در جهان را بالا می‌برد. این یک چرخش راهبردی است؛ ابزارهای زبان باید سریع‌تر از خودِ زبان باشند تا مانع خلاقیت نشوند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.