Effect 4.0 منتشر شد: بازنویسی کامل از صفر
خلاصهٔ کاملتر
تیم Effect اعلام کرده نسخهی 4.0 رو منتشر کرده و به گفتهی خودشون این بلندپروازانهترین نسخهای هست که تا حالا دادن. Effect یه کتابخونهی TypeScript هست که یه effect system ارائه میده، یعنی یه مدل برنامهنویسی که خطاها، وابستگیها و منابع رو داخل typeها مدیریت میکنه. تو این نسخه کل کتابخونه از پایه دوباره نوشته شده؛ سریعتره، کسری از حافظهی قبل رو مصرف میکنه و با tree-shaking (یعنی حذف خودکار کدهای استفادهنشده موقع build) باندل خیلی کوچیکتری میده.
یکی از تغییرهای مهم اینه که خیلی از پکیجهایی که قبلاً جدا بودن، حالا داخل خود پکیج effect قرار گرفتن. پکیجهای اطرافش هم همه یه شمارهی نسخهی مشترک دارن و با هم منتشر میشن. پکیج اصلی effect هیچ وابستگی runtime نداره؛ تیم میگه چون همهی کدی که ship میشه دست خودشونه، ریسک حملههای supply chain (یعنی نفوذ از طریق پکیجهای شخص ثالث) خیلی کمتر میشه.
به گفتهی تیم، Effect اول با یه دامنهی کوچیک شروع شد، ولی الان از یه تابع ساده تا یه سیستم توزیعشده رو پوشش میده. پایهاش همون مدل برنامهنویسیه: خطاهای typed، dependency injection، مدیریت منابع، structured concurrency و observability. بعد کتابخونهی استاندارد و یکپارچگی با پلتفرمها اضافه شد و بعدش ابزارهای سطح بالاتر مثل durable workflow و clustering. همهی این لایهها روی همون مدل ساخته شدن، یعنی همون تضمینها تا بالاترین لایه هم برقراره.
از این نسخه به بعد هر ورژن اصلی یه سیاست پشتیبانی بلندمدت (LTS) داره. برای 4.x رفع باگ تا سپتامبر ۲۰۲۹ یا یه سال بعد از انتشار 5.0 ادامه داره، هر کدوم دیرتر باشه. رفع مشکلات امنیتی هم تا سپتامبر ۲۰۲۹ یا دو سال بعد از 5.0 هست. تیم میگه Effect الان تو شرکتهای بزرگ و کوچیک تو production استفاده میشه و پروژههایی مثل Alchemy برای زیرساخت ابری و Foldkit برای فرانتاند روش ساخته شدن.
قدم بعدی تیم پایدار کردن بقیهی اکوسیستمه. بعضی از ماژولهای جدید هنوز برچسب @stability unstable یا @stability experimental دارن، یعنی ممکنه تو نسخههای minor یا patch تغییر کنن. برای مهاجرت هم یه migration guide منتشر شده و تیم میگه اگه اونو به coding agent بدی، بیشتر کارو خودش انجام میده.
نکات کلیدی:
- Effect 4.0 از صفر بازنویسی شده و سریعتر، کممصرفتر و با باندل کوچیکتره.
- پکیج اصلی effect هیچ وابستگی runtime نداره.
- همهی پکیجهای اکوسیستم یه نسخهی مشترک دارن و با هم منتشر میشن.
- رفع باگ 4.x تا سپتامبر ۲۰۲۹ یا یه سال بعد از 5.0 ادامه داره.
- رفع مشکلات امنیتی 4.x تا سپتامبر ۲۰۲۹ یا دو سال بعد از 5.0 هست.
- بعضی ماژولها هنوز unstable یا experimental هستن و ممکنه عوض بشن.




