داشتم یه مقالهای رو از Ryan Carniato (خالق فریمورک SolidJS) میخوندم با عنوان «هیچکس برای استک شما استدلالی نیاورد» (Nobody Argued For Your Stack) که واقعاً ذهنم رو درگیر کرد. این مقاله دست گذاشته روی یه موضوع خیلی عمیق و خطری که هوش مصنوعی داره برای آینده مهندسی نرمافزار ایجاد میکنه.
قضیه از جایی شروع شد که رایان متوجه شد توی داکیومنتهای رسمی Anthropic (سازنده هوش مصنوعی Claude)، دستور نمونه برای قابلیت «مهاجرت کد در مقیاس بزرگ»، دقیقاً مثالِ مهاجرت از SolidJS به React هست! اونم درست توی همون هفتهای که تیم رایان بزرگترین آپدیت تاریخ پروژهشون یعنی نسخه Solid 2.0 RC رو منتشر کرده بودن.
چطور همهچیز از یه خط داکیومنت شروع شد؟
رایان میگه اولش واقعاً دلم شکست، چون حاصل سالها کارم شده بود مثالِ کلاسیکِ «چیزی که باید ازش مهاجرت کنی!». اما وقتی رفتم توی Internet Archive چک کردم، دیدم این مثال از آوریل ۲۰۲۶ توی داکیومنتهای آنتروپیک بوده؛ یعنی حدود ۴ ماه قبل از اینکه خبر مهاجرت Cursor رسانهای بشه!
داستان این بود که ادیتور Cursor حدود ۷ ماه پیش بیسروصدا از Solid رفته بود روی React و فقط توی یه پست وبلاگ توی ماه ژانویه به عنوان یه «آزمایش» بهش اشاره کرده بود؛ بدون هیچ بنچمارک، عدد و رقم یا استدلال فنی.
نکته ترسناک مقاله دقیقاً همینجاست: یا نویسنده داکیومنت Anthropic اون یه خطِ گمشده رو توی وبلاگ Cursor دیده، یا اصلاً بدون هیچ منبعی، خودش دیفالت رو بر این گذاشته که "همه دارن از Solid کوچ میکنند روی React"! یعنی صنعت ما به جایی رسیده که به جای انتقال «استدلالها و بحثهای فنی»، داره فقط «نتیجهگیریها و حکمهای صادرشده» رو پخش میکنه.
چرا الان این موضوع بیشتر از قبل خطرسازه؟
رایان میگه قدیما هم تقلید کورکورانه وجود داشت (اینکه چون فیسبوک یا نتفلیکس از یه چیزی استفاده میکردن بقیه هم تقلید میکردن)، اما اون موقع تغییر استک هزینه انسانی و زمان زیادی میخواست، برای همین منطق و استدلال میتونست جلوی جوگیری و مدگرایی رو بگیره. ولی الان هزینه اجرا (Execution Cost) به لطف هوش مصنوعی تقریباً به صفر رسیده!
چند تا مثال فنی خیلی جالب توی مقاله میزنه:
بازنویسی Bun: پروژه Bun حدود ۱ میلیون خط کدش رو از زبان Zig به Rust بازنویسی کرد؛ اونم کلاً توی چند روز و به کمک ایجنتهای Claude!
مهاجرت Cognition (سازنده Devin): شرکت Cognition سایت مارکتینگش رو از Astro برد روی Next.js. اونم سایتی که محتواییه و زمین بازی و قلمروی اصلی Astro به حساب میاد! این مهاجرت رو خود ایجنت Devin انجام داد و به عنوان یه کیساستدی (Case Study) منتشرش کردن؛ بدون ارائه ریپازیتوری، بدون بنچمارک قبل و بعد، و بدون هیچ عدد و رقمی! خروجی این کار اصلاً «سایت» نبود، «داستان و نمایشی» بود که برای قدرت ایجنتشون ساختن.
الان مهاجرت دادن کدها شده ژانر نمایشی (Demo Genre) برای صنعت ایجنتهای هوش مصنوعی. ایجنتها هم طبیعتاً کدهایی رو بینقصتر مهاجرت میدن که به سمت تکنولوژیهای غالب (که بیشترین دیتای آموزشی رو ازشون دارن) باشه.
استدلال فنی واقعی چه شکلیه؟
رایان میگه استدلال فنی داره توی صنعت ما کمیاب میشه، در حالی که قبلاً اساس رشد ما بوده. چند تا نمونه از استدلال واقعی:
بازنویسی Bun: وقتی Bun از Zig رفت روی Rust، جرد سامنر (Jarred Sumner) اومد با سند و مدرک توی دنیای واقعی در مورد کلاسِ باگها و مشکلات مدیریت مموری صحبت کرد و استدلال آورد. چیزی که بشه باهاش چالش کرد، ردش کرد یا قبولش کرد.
تیم TanStack: وقتی اونا React Server Components (RSC) رو روی سایت tanstack.com تست کردن، اول با بنچمارک رفتن سمتش و بعد که دیدن توی کیس خاص اونا تریدآفها (Trade-offs) جواب نمیده، با یه پست تحلیلی و بدون جنجال برگشتن روی حالت قبلی و علتش رو باز کردن.
شکست jQuery: فریمورک jQuery به React نباخت چون دیتای آموزشی هوش مصنوعی اینطوری میگفت؛ توی یه رقابت چندساله و بر اساس شایستگی فنی مبارزه رو واگذار کرد.
تحلیل پشت پرده تصمیم Cursor (حجم دیتا vs تأییدپذیری)
رایان میاد تصمیمی که Cursor برای مهاجرت گرفته بود و خودشون بازش نکرده بودن رو کالبدشکافی میکنه:
تیم Cursor توی پستشون گفتن ایجنتها توی نوشتن کد Solid بد بودن و سیگنالها (Signals) باعث «تلههای پرفورمنسی» و «پخش شدن تصادفی وضعیتها» میشدن و برای حلش رفتن سراغ React Compiler.
رایان میگه علت اصلی اینه که ایجنتی که مدل ذهنی React رو حفظ کرده، کد Solid رو هم مثل React مینویسه (و کد Solidای که مثل React نوشته بشه فاجعهست!). وقتی ایجنت موقع نوشتن React اشتباه میکنه، دیتای آموزشیِ عظیم (Volume) دستش رو میگیره. ولی موقع Solid دیتای آموزشی کمتره و ایجنت گیج میشه.
اما نکته جالبتر اینجاست: Cursor همزمان از Tailwind کوچ کرده روی StyleX! با اینکه حجم دیتای StyleX توی اینترنت خیلی کمه، چرا این کار رو کردن؟
چون StyleX قابلیت تأییدپذیری (Verification) بالایی داره؛ استایلها تایپشدهن و اگه ایجنت کلاسی رو توهم بزنه (Hallucinate)، موقع بیلد ارور میده!
رایان میگه برای کمهزینه کردن خطاهای ایجنت هوش مصنوعی دو تا محور داریم: حجم دیتا (Volume) و تأییدپذیری (Verification).
React
به لطف حجم بالای دیتای آموزشیش برنده میشه.
StyleX
به لطف قابلیت تأییدپذیری و تایپینگش برنده میشه.
اتفاقاً تمام تمرکز طراحی توی نسخه Solid 2.0 هم دقیقاً رفته سمت بالا بردن همین بخش Verification تا ایجنتها نتونن توش اشتباه کنن.
خطری به نام «تککشتی شدن» دنیای برنامهنویسی
رایان هشدار میده که اگه این روند ادامه پیدا کنه، دنیای برنامهنویسی تبدیل میشه به یه محیط «تککشتی» (Monoculture)؛ فرانتاند کلاً قفل میشه روی React، سیستمها روی Rust، اسکریپتها روی Python و همه سایتها روی Next.js. چرا؟ چون سیستمهای هوش مصنوعی نمیتونن فرق بین «فراوان بودن توی دیتای آموزشی» و «واقعاً بهتر بودن» رو تشخیص بدن!
حتی اگه طرفدار سرسخت React هستید هم باید نگران باشید. React به این دلیل انقدر خوب شد که رقیب داشت؛ ویژگیهایی مثل Hooks یا همین React Compiler دقیقاً در جواب به فشار فریمورکهای جدیدتر و سیگنالی به وجود اومدن. اگه رقابت نابود بشه، اکوسیستم درجا میزنه.
ایده بزرگ بعدی قراره از کجا بیاد؟
خود React سال ۲۰۱۳ وقتی اومد، به خاطر JSX توسط کل جامعه برنامهنویسی مسخره شد که "چرا مارکآپ رو آوردی توی جاوااسکریپت؟! پس جداسازی دغدغهها چی میشه؟!". اگه ایجنتها و دیتابیسهای آموزشیِ امروز توی سال ۲۰۱۳ وجود داشتن، React رو توی همون قدم اول نابود میکردن چون با عرفِ اون زمان (jQuery و Backbone) فرق داشت و توی دیتابیس هوش مصنوعی نبود!
حرف نهایی رایان اینه: درسته که ابزارهای هوش مصنوعی مهاجرت دادن کدها رو خیلی ارزون و سریع کردن، اما ما برنامهنویسها نباید بگذاریم هوش مصنوعی و جوّ مارکتینگ جای «استدلال، بنچمارک و تحلیل مهندسی» رو بگیرن. ما هنوزم باید سر تکنولوژیهای بهتر با استدلال فنی بجنگیم، وگرنه نوآوری توی دنیای توسعه نرمافزار متوقف میشه.
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
Post #667
817
- 👍 7
- ✍ 3
- ❤ 2
- 🔥 1
- 🙏 1