چرا کد بهزودی دورریختنی میشه
خلاصهٔ کاملتر
تو این مقاله اومده که باید کد آمادهی پروداکشن رو دیگه یه منبع کمیاب حساب نکنیم. نویسنده پیشبینی میکنه چند سال دیگه هزینهی پیادهسازی دوبارهی یه کدبیس بزرگ تا حد اشتراکهای SaaS امروز پایین بیاد. تو اون دنیا هر وقت یه ایدهی امنیتی تازه یا یه الگوریتم بهتر پیدا شد، میشه کل کد پروژه رو دوباره تولید کرد تا باهاش هماهنگ شه — نه اینکه دائم وصلهپینه کنیم.
برای اینکه این حرف تازه به نظر نیاد، نویسنده به تاریخ اشاره میکنه: نقلقول معروف «حالا مدیرها میتونن خودشون برنامه بنویسن» مال ۱۹۶۲ و دوران ظهور زبانهای سطحبالا و کامپایلرهاست. به گفتهی او درس ماجرا اینه که سطح انتزاع تو توسعهی نرمافزار همیشه بالا رفته و نباید از یه جهش دیگه تعجب کنیم. پس بهجای نگه داشتن کد معمولی تو ریپازیتوری، بهتره بالاترین سطح توصیف نیازمندیها رو ذخیره کنیم و بقیهش رو به ابزارها بسپریم.
یه آزمایش فکری هم میآره: فرض کن یه دولت هر پروژهی نرمافزاری رو به دو پیمانکار رقیب بده، یکی اسپک رو بنویسه و اون یکی هر برنامهای که اسپک رو برآورده کنه. اسپک اونوقت تدافعی نوشته میشه، یعنی جوری نوشته میشه که حتی با کملطفترین برداشت پیادهساز هم نتیجه قابل قبول باشه. اگه این مدل کار کنه، انبار کد قدیمی یه سازمان دیگه مزیت رقابتی نیست؛ چیزی که ارزش داره، داشتن اسپک درسته.
بخش اصلی نقد نویسنده همینجاست: گفتوگوی رایج امروز حول تولید خودکار کد از نیازمندیهای انگلیسی میچرخه، ولی پردازش زبان طبیعی ذاتاً مبهمه. حتی فرمتهای نیمهساختاریافته مثل EARS که با کلیدواژههایی مثل WHILE، WHEN و SHALL یه قالب دقیق میسازن، بقیهی جمله رو آزاد و مبهم رها میکنن — پس مولد کد میتونه اون بخشها رو اشتباه یا حتی بدخواهانه برداشت کنه و باز پای آدم وسط میآد.
نویسنده معتقده تکیهی امروز به یادگیری عمیق یه تصادف تاریخیه: GPUها اول برای گرافیک ساخته شدن و بعد به درد یادگیری عمیق خوردن. به نظر او این مسیر هم گلوگاه کارایی داره و هم اثبات ریاضی درستی رو سخت میکنه، در حالی که روشهای صوری اجازه میدن بازتولید کد مثل کامپایل دوباره و بدون نظارت انسانی انجام شه. او اینجا رو فقط نقطهی شروع میدونه و میگه ادامهی بحث تو پستهای بعدی میآد.
نکات کلیدی:
- کد معمولی داره به یه محصول جانبی دورریختنی تبدیل میشه، شبیه کاری که با اسمبلی کردیم
- چیزی که باید تو ریپازیتوری بمونه، بالاترین سطح توصیف نیازمندیهاست
- بحث «برنامهنویسی خودکار» تازه نیست؛ ریشهش به ۱۹۶۲ و زبانهای سطحبالا برمیگرده
- زبان طبیعی بهخاطر ابهام ذاتی برای خودکارسازی کامل کافی نیست
- فرمتهایی مثل EARS فقط اسکلت جمله رو صوری میکنن، نه محتواش رو
- به نظر نویسنده فقط روشهای صوری اجازهی بازتولید بدون نظارت انسانی رو میدن




