قدرت هوش مصنوعی در برنامهنویسی آینده

مجله علمی ایلیاد - انسانها، سرانجام دور از انتظار، این کار را انجام میدهند. سیستم یادگیری ماشینی این توانایی را به دست میآورد تا کدهای خودش را بنویسد. سیستمی که «دیپکودر» نامیده میشود و توسط محققان مایکروسافت و دانشگاه کمبریج طراحی شده است، چالش اولیه در خصوص رقابتهای برنامهنویسی را حل کرد. این دستاورد میتواند نوشتن برنامههای ساده را برای انسانها بدون اینکه از برنامهنویسی اطلاع داشته باشند، آسانتر نماید. «آرماندو سولارلزاما» از انیستیتو تکنولوؤی ماساچوست که در این تحقیق و برنامه حضور نداشت میگوید: «انسانها میتوانند سازنده و سودمند باشند. آنها میتوانند سیستمهایی بسازند که تولید آنها در گذشته امکانپذیر نبود.»
«مارک بروک اشمید» یکی از خالقان دیپکودر از مرکز تحقیقات مایکروسافت در کمبریج انگلستان میگوید: «در نهایت، این نتیجه میتواند به ناآشنایان به کدنویسی این امکان را بدهد تا به راحتی ایدهای را برای برنامه توضیح دهند و به سیستم اجازه دهد تا آن را تولید نماید.» دیپکودر از تکنیکی به نام «تلفیق برنامه» استفاده میکند؛ به این ترتیب که برنامههای جدید را با وصل کردن خطهای کد که از نرمافزار موجود گرفته میشود، ایجاد میکند که عملکرد آن تا حدی شبیه برنامهنویس است. با دادن لیست ورودی و خروجیها از بخشهایی از هر کد، دیپکودر یاد میگیرد که به طور کلی کدام تکه از کد را برای رسیدن به نتیجهی مورد نظر لازم دارد.
یکی از مزایای آزاد گذاشتن هوش مصنوعی در این زمینه این است که میتواند به نسبت برنامهنویسها، بیشتر و گستردهتر پیش برود؛ پس قادر است تا کدها را به گونهای کنار هم قرار دهد که شاید انسانها نمیتوانستند به آن فکر کنند. علاوه بر این، دیپکودر از سیستم یادگیری و تشخیص ماشینی استفاده میکند تا پایگاههای دادهی کد اصلی را جستوجو نموده و تکهها را بر اساس دیدگاهی محتمل بر مفید بودن، مرتب نماید. تمام این موارد باعث سریعتر شدن سیستم به نسبت مدلهای قبلی میشود. دیپکودر، برنامههای قابل اجرا را در کسری از ثانیه ایجاد میکند؛ درحالی که سیستمهای قدیمیتر چندین دقیقه طول میکشید تا ترکیبات مختلفی از خطوط کد را قبل از اینکه به یکدیگر بچسباند، امتحان کند و برنامهای را تولید نماید که قابل اجرا باشد و از آنجاییکه دیپکودر یاد میگیرد کدامیک از ترکیبهای کدهای مرجع کار میکنند یا کار نمیکنند، در طول ساختن برنامه، در هر مرحله با مشکل جدیدی روبهرو میشود، خود را اصلاح نموده و بهتر نیز میشود.
این تکنولوژی میتواند کاربردهای مختلفی داشته باشد. در سال ۲۰۱۵ محققان در MIT برنامهای را تولید کردند که به صورت اتوماتیک اِشکالات و باگهای نرمافزاری را با جایگزین کردن کدهای اشتباه با کدهای درست و اجرای برنامههای دیگر رفع مینمود. بروک اشمید میگوید: «نسخههای آینده میتواند بدون دخالت و کمک برنامهنویسان به آسانی برنامههای معمولی را تولید نماید. بهعنوان مثال اطلاعات را از وبسایتها پاک کند یا به صورت اتوماتیک عکسهای فیسبوک را دستهبندی کند.» سولار لزاما میگوید: «پتانسیلی که این تکنولوژی برای خودکار نمودن پیشروی ما میگذارد، میتواند در کاهش چشمگیر تلاشهای لازم در تولید کد بسیار مؤثر باشد.»
با اینحال او تصور نمیکند که این سیستمها به بیکار شدن برنامهنویسان منجر شود. با استفاده از خودکار کردن تلفیق برنامهها در بسیاری از قسمتهای خستهکنندهی برنامهنویسی، برنامهنویسها میتوانند وقت خود را به کارهای پیچیدهتر اختصاص دهند. در حال حاضر، دیپکودر تنها میتواند در حل چالش برنامههایی که حدود ۵ خط هستند به کار رود. اما در زبان برنامهنویسی تنها تعداد کمی خط کد برای پیچیدهترین برنامهها لازم است. سولار لزاما همچنین بیان کرد: «تولید بخش بزرگی از کدها در یک لحظه، واقعاً دشوار و احتمالاً غیرواقعی است؛ اما در واقع بخش بزرگی از کدها با قراردادن تعداد زیادی از بخشهای کوچکتر در کنار یکدیگر بهوجود میآید.»
نوشته: مت رینولدز
ترجمه: نسیم صانعی - مجله علمی ایلیاد

