همه ما دیدهایم که ابزارهای کدنویسی هوش مصنوعی چگونه جادو میکنند—کد را تکمیل میکنند، خطاهای سینتکس را برطرف میکنند و حتی کدهای پیچیده را توضیح میدهند. پیشرفت غیرقابل انکار است. اما با سرعت گرفتن این فناوری، یک سوال بزرگ مطرح میشود: آیا هوش مصنوعی واقعاً آماده است تا به یک کدنویس مستقل و یک همتیمی واقعی تبدیل شود؟
یک مقاله تحقیقاتی جدید از دانشگاههای برجستهای مانند کرنل، MIT CSAIL، استنفورد و برکلی پاسخی روشن ارائه میدهد: هنوز نه. این تحقیق که در کنفرانس بینالمللی یادگیری ماشین ۲۰۲۵ ارائه شد، از هیاهوها عبور کرده و چالشهای واقعی را که مانع از تسلط کامل هوش مصنوعی بر کدنویسی میشوند، مشخص میکند.

موانع پیش روی هوش مصنوعی
بر اساس این مطالعه، مدلهای هوش مصنوعی فعلی هنگام مواجهه با پیچیدگیهای اصلی توسعه نرمافزار در دنیای واقعی، با مشکل روبرو میشوند. این چالشها عبارتند از:
- دامنههای گسترده: پیمایش و درک پایگاههای کد عظیم با میلیونها خط کد.
- پیچیدگی منطقی: درک منطق پیچیده و برنامهریزی بلندمدت مورد نیاز برای معماری نرمافزار قوی و باکیفیت.
- وظایف با افق طولانی: اتخاذ تصمیمات طراحی که در طول کل چرخه عمر یک پروژه پایدار بمانند.
کوشیک سن، یکی از نویسندگان مقاله از دانشگاه برکلی، مثال رفع یک باگ ایمنی حافظه را مطرح میکند. یک مهندس انسان ابتدا منشأ خطا را ردیابی میکند—که ممکن است بسیار دورتر از محل کرش کردن برنامه باشد—سپس معنای کد را درک کرده و تغییری را اعمال میکند که شاید نیاز به بازنگری کل سیستم مدیریت حافظه داشته باشد. مدلهای زبان بزرگ امروزی اغلب در مورد مکان باگ دچار توهم میشوند، راهحلهای نامرتبط پیشنهاد میدهند یا مشکلات ظریف جدیدی ایجاد میکنند. سن اشاره میکند: «نقاط شکست زیادی وجود دارد و فکر نمیکنم مدلهای زبان بزرگ فعلی در مدیریت آن خوب عمل کنند.»
معمای همکاری
آرماندو سولار-لزاما از MIT CSAIL این موضوع را به خوبی بیان میکند: برنامهنویسی بدون این ابزارها اکنون «ابتدایی» به نظر میرسد، اما هنوز به نقطهای نرسیدهایم که «بتوانید واقعاً با این ابزارها مانند یک برنامهنویس انسان همکاری کنید.»
بخش بزرگی از این مشکل به رابط کاربری مربوط میشود. همانطور که شریا کومار از دانشگاه نوتردام اشاره میکند، ما در حال حاضر خود را با ابزار تطبیق میدهیم، نه برعکس. ما با دقت پرامپتها را طراحی میکنیم تا هوش مصنوعی منظور ما را بفهمد. او میگوید: «به جای اینکه ابزار به ما خدمت کند، ما به ابزار خدمت میکنیم. و این گاهی اوقات کار بیشتری نسبت به نوشتن خود کد میطلبد.»
راهحل چیست؟ سیستمهای هوش مصنوعی باید تکامل یابند. محققان پیشنهاد میکنند که هوش مصنوعی باید یاد بگیرد عدم قطعیت خود را بسنجد و هنگامی که با دستورالعملهای مبهم مواجه میشود، فعالانه درخواست شفافسازی کند. باید «مفاهیم پنهانی» را که در ذهن یک توسعهدهنده وجود دارد اما به صراحت در کد نوشته نشده، درک کند. ابیک رویچودهوری از دانشگاه ملی سنگاپور اضافه میکند که یک قطعه حیاتی گمشده، درک قصد کاربر است—یعنی فهمیدن اینکه برنامه نه تنها چه کاری انجام میدهد، بلکه قرار است چه کاری انجام دهد.
از اینجا به کجا میرویم؟
آینده هنوز بسیار روشن است. رویچودهوری معتقد است که اتوماسیون مهندسی نرمافزار از طریق عاملهای هوش مصنوعی «احتمالاً غیرقابل بازگشت» است. تمرکز به سمت مفاهیم پیشرفتهتری در حال تغییر است:
- هوش مصنوعی عاملمحور (Agentic AI): سیستمهایی که میتوانند مشخصات نیازمندیها را پردازش کرده و از اجرای آنها در سطح کد اطمینان حاصل کنند.
- الگوریتمهای تکاملی: پروژههایی مانند AlphaEvolve از الگوریتمهای ژنتیک برای ترکیب، آزمایش و بهبود مداوم راهحلها استفاده میکنند و یک حلقه بهبود مستمر برای کد ایجاد میکنند.
با این حال، با افزایش اتوماسیون، اهمیت اعتماد نیز افزایش مییابد. آیا واقعاً میتوانید به آنچه یک عامل هوش مصنوعی تولید میکند، تکیه کنید؟ به همین دلیل است که نظارت انسانی غیرقابل مذاکره باقی میماند. کومار میگوید: «اگر یک سیستم قابل اعتماد میخواهید، باید انسانها را در چرخه نگه دارید.»
در نهایت، دستیابی به اتوماسیون کامل به معنای منسوخ شدن توسعهدهندگان نیست. بلکه به این معناست که ما در سطح بالاتری از انتزاع کار خواهیم کرد و به جای جزئیات فنی «چگونه»، بر روی «چه» و «چرا» تمرکز میکنیم. هوش مصنوعی ممکن است به یک «کدنویس واقعی» تبدیل شود، اما پویایی نحوه ادغام آن در یک تیم انسانی—وظایفی که به آن محول میشود، اعتمادی که به آن میشود و نحوه تعامل ما با آن—مرز بزرگ بعدی در توسعه نرمافزار است.
از منبع اصلی بیشتر بیاموزید: IEEE Spectrum