ابتکار جدید OpenAI، یعنی عامل هوش مصنوعی Codex، رویکردی نوین به کدنویسی ارائه میدهد – یک محیط “vibe-coding” که توسط رابطی شبیه ChatGPT تقویت میشود. در حالی که این مفهوم در ابتدا ممکن است فریبنده به نظر برسد، قابلیتهای عامل جدید Codex به طرز چشمگیری چشمگیر است.
OpenAI، Codex را به عنوان پیشنمایش تحقیقاتی برچسبگذاری کرده است که نشان میدهد هنوز در دست توسعه فعال است. در حال حاضر، برای مشترکین سطوح ChatGPT Pro، Enterprise و Team در دسترس است و برنامههایی برای گسترش در دسترس بودن به کاربران Plus و Edu در آینده نزدیک وجود دارد.
بر اساس اعلام OpenAI، نام Codex از سال 2021 با یک ابزار کدنویسی در حال تکامل مرتبط بوده است. در این بحث، “Codex” به نسخه تازه اعلام شده اشاره دارد.
Codex در سرورهای OpenAI قرار دارد و با مخازن GitHub ادغام میشود. تظاهرات نشان میدهند که Codex به عنوان یک برنامهنویس اضافی در یک تیم عمل میکند.
میتوان به آن دستور داد تا یک سری از اشکالات را برطرف کند و وظیفه را بر اساس آن اجرا کند. همچنین، برای اصلاحات کد، به دنبال تأیید است، اگرچه به نظر میرسد قادر به اصلاح مستقل کد است.
Codex میتواند کد را تجزیه و تحلیل و اصلاح کند، مشکلات خاص را شناسایی کند، زمینههایی را برای بهبود مشخص کند و سایر وظایف مربوط به کدنویسی و نگهداری را انجام دهد. هر کار یک محیط مجازی جدید را آغاز میکند و هوش مصنوعی را قادر میسازد تا همه چیز را از مفهوم و طراحی گرفته تا تست واحد مدیریت کند.
یک تغییر پارادایم در کدنویسی
این نشان دهنده یک تغییر واقعی در پارادایم کدنویسی است. کمک های کدنویسی هوش مصنوعی قبلی عمدتاً شامل ویژگی های تکمیل خودکار بود که به طور خودکار خطوط یا بلوک های کد را بر اساس کد موجود تولید می کرد.
فناوری به جایی رسیده است که هوش مصنوعی می تواند قطعات کوچک کد را بنویسد یا اشکال زدایی کند. این جنبه ای است که من به ویژه به آن در مورد آزمایش های برنامه نویسی ZDNET علاقه مند بوده ام.
نقش دیگر هوش مصنوعی، تجزیه و تحلیل کل سیستم است. اخیراً، من یک ابزار جدید Deep Research را بررسی کردم که می تواند کل پایگاه های کد را تجزیه و تحلیل کند و بررسی های کد و توصیه هایی را ارائه دهد.
Codex اکنون به نقطه ای می رسد که می توان وظایف کامل برنامه نویسی را در فضای ابری به هوش مصنوعی سپرد، مشابه تفویض وظایف به سایر برنامه نویسان در یک تیم یا برنامه نویسان جوانتر که در حال یادگیری نگهداری کد هستند.
OpenAI این را “توسعه نرم افزار بومی عامل” توصیف می کند، “جایی که هوش مصنوعی نه تنها در حین کار به شما کمک می کند، بلکه به طور مستقل کار را انجام می دهد.”
ویدیوی راه اندازی قابلیت Codex را برای مدیریت چندین کار به طور همزمان نشان داد که هر کدام در یک محیط مجازی جداگانه و جدا از هم کار می کنند.
برنامه نویسان وظایفی را به عامل اختصاص دادند که سپس کار را به طور مستقل انجام داد. پس از اتمام، عامل نتایج تست و تغییرات کد پیشنهادی را ارائه داد.
این نسخه نمایشی دارای Codex بود که رفع اشکال، اسکن برای اشتباهات املایی، ارائه پیشنهادات وظیفه و انجام بازسازی در سطح پروژه (اصلاح کد برای بهبود ساختار بدون تغییر رفتار) را انجام می داد.
توسعه دهندگان و طراحان ارشد با بیان الزامات و بررسی کار دیگران آشنا هستند. استفاده از Codex تغییرات قابل توجهی برای آنها ایجاد نخواهد کرد. با این حال، توسعه دهندگانی که فاقد مهارت های قوی در بیان الزامات و بررسی هستند، ممکن است مدیریت Codex را کمی چالش برانگیز بدانند.
با وجود این، اگر ابزار همانطور که نشان داده شده عمل کند، Codex به تیم های کوچکتر و توسعه دهندگان فردی این امکان را می دهد تا به موفقیت های بیشتری دست یابند، وظایف تکراری را کاهش دهند و به طور موثرتری به گزارش های مشکل پاسخ دهند.
دام های احتمالی و استراتژی های کاهش
تجربیات اولیه با قابلیتهای کدنویسی ChatGPT نشان داد که تمایل به از دست دادن تمرکز یا انحراف از جهت مورد نظر وجود دارد. در حالی که این برای بلوک های کد فردی فاجعه بار نیست، اما اگر به یک عامل کدنویسی اجازه داده شود با نظارت محدود عمل کند، می تواند منجر به پیامدهای ناخواسته و مشکل ساز شود.
برای رسیدگی به این موضوع، OpenAI، Codex را برای رعایت دستورالعمل های ذکر شده در یک فایل AGENTS.md آموزش داده است. این فایل که در مخزن قرار دارد، برنامه نویسان و تیم ها را قادر می سازد تا رفتار Codex را هدایت کنند. این می تواند شامل دستورالعمل هایی در مورد قراردادهای نامگذاری، قوانین قالب بندی و هر دستورالعمل سازگار دیگری باشد که در طول فرآیند کدنویسی مورد نظر است. این اساساً تنظیمات شخصیسازی ChatGPT را به یک محیط تیمی متمرکز بر مخزن گسترش میدهد.
علاوه بر این، OpenAI نسخه ای از Codex به نام Codex CLI را معرفی کرده است که به صورت محلی بر روی دستگاه یک توسعه دهنده اجرا می شود. بر خلاف Codex ابری که به صورت ناهمزمان عمل می کند و گزارش هایی را پس از اتمام ارائه می دهد، نسخه محلی از طریق خط فرمان برنامه نویس عمل می کند و به صورت همزمان کار می کند.
در اصل، برنامه نویس یک دستورالعمل را وارد می کند و منتظر می ماند تا فرآیند Codex CLI نتیجه ای را برگرداند. این کار برنامه نویسان را قادر می سازد تا به صورت آفلاین کار کنند و از زمینه محلی دستگاه توسعه فعال खुद استفاده کنند.
نمونه اولیه تحقیقاتی با پتانسیل امیدوارکننده
این نسخه نمایشی چشمگیر بود، اما توسعه دهندگان تأکید کردند که آنچه را که نشان می دهند و منتشر می کنند، یک نمونه اولیه تحقیقاتی است. در حالی که آنچه را که آنها “لحظات جادویی” می نامند ارائه می دهد، اما هنوز به توسعه قابل توجهی نیاز دارد.
من سعی کرده ام پیامدهای خاص این فناوری را برای آینده توسعه و روند توسعه خودم درک کنم. محصول اصلی من یک افزونه منبع باز وردپرس با افزونه های افزونه اختصاصی است. Codex می تواند به طور بالقوه مخزن عمومی را برای افزونه اصلی منبع باز تجزیه و تحلیل کند.
با این حال، آیا Codex می تواند رابطه بین یک مخزن عمومی و چندین مخزن خصوصی را به عنوان بخشی از یک پروژه کلی مدیریت کند؟ و عملکرد آن در هنگام آزمایش نه تنها کد من، بلکه راه اندازی یک اکوسیستم اضافی کامل - وردپرس - برای ارزیابی عملکرد چگونه خواهد بود؟
به عنوان یک برنامه نویس انفرادی، من مزایای بالقوه ابزاری مانند Codex را تشخیص می دهم. حتی اشتراک Pro 200 دلاری در ماه می تواند ارزشمند باشد. استخدام یک برنامه نویس انسانی هزینه بسیار بیشتری خواهد داشت، با این فرض که بتوانم ارزش ملموس و قابل پولی از آن بدست آورم.
به عنوان یک مدیر تیم و ارتباط برقرار کننده باتجربه، من با خیال راحت وظایفی را به چیزی شبیه Codex محول می کنم. تفاوت چندانی با ارتباط با یک عضو تیم از طریق Slack ندارد.
این واقعیت که Codex نسخه های پیشنهادی را ارائه می دهد، نسخه های پیش نویس را ارائه می دهد و منتظر تأیید من است، در مقایسه با اینکه اجازه دهیم به سادگی به طور آزاد در کد من عمل کند، حس امنیت را ایجاد می کند. این امر امکانات جالبی را برای یک چرخه عمر توسعه جدید باز می کند، جایی که انسان ها اهداف را تعریف می کنند، هوش مصنوعی پیاده سازی های احتمالی را پیش نویس می کند و سپس انسان ها یا هوش مصنوعی را برای تکرار دیگری تأیید یا تغییر مسیر می دهند.
سؤالات بی پاسخ و پیامدهای آینده
بر اساس تجربیات قبلی من در استفاده از هوش مصنوعی برای کدنویسی، Codex می تواند زمان نگهداری را کاهش دهد و تحویل اصلاحات به کاربران را تسریع کند. با این حال، اثربخشی آن در افزودن ویژگی های جدید بر اساس یک سند مشخصات نامشخص است. به طور مشابه، دشواری تغییر عملکرد و عملکرد پس از پیاده سازی Codex هنوز مشخص نشده است.
شایان ذکر است که کدنویسی هوش مصنوعی در چندین شرکت با سرعتی مشابه در حال تحول است. به زودی مقاله دیگری در مورد Coding Agent GitHub Copilot منتشر خواهم کرد که برخی از عملکردهای آن با Codex مشترک است.
در آن مقاله، من نگرانی هایی را ابراز کردم مبنی بر اینکه این عوامل کدنویسی می توانند برنامه نویسان جوانتر و سطح ابتدایی را جابجا کنند. فراتر از پیامدهای مربوط به مشاغل انسانی، این سوال نیز وجود دارد که فرصت های حیاتی آموزشی که ممکن است در صورت واگذاری مرحله میانی شغل یک توسعه دهنده به هوش مصنوعی از دست برود.
“به سوی ناشناخته” صنعت نرم افزار
آهنگی در Frozen II دیزنی به نام “به سوی ناشناخته” وجود دارد که توسط Idina Menzel اجرا شده است. این آهنگ منعکس کننده درگیری درونی شخصیت اصلی بین حفظ وضعیت موجود و ماجراجویی “به سوی ناشناخته” است.
با توسعه نرم افزار عامل، فراتر از کدنویسی هوش مصنوعی، کل صنعت نرم افزار در حال آغاز سفری “به سوی ناشناخته” است. همانطور که ما به طور فزاینده ای به سیستم های مبتنی بر هوش مصنوعی برای توسعه نرم افزار خود متکی هستیم، تعداد نگهدارندگان ماهر احتمالاً کاهش می یابد. این قابل قبول است تا زمانی که هوش مصنوعی به عملکرد مؤثر خود ادامه دهد و در دسترس باقی بماند. با این حال، آیا ما اجازه می دهیم مهارت های اساسی ضعیف شوند و مشاغل پردرآمد را برای راحتی واگذاری به یک زیرساخت مبتنی بر ابر و غیرهنوز آگاه قربانی کنیم؟
زمان پاسخ ها را آشکار خواهد کرد و امیدوارم که این مکاشفه زمانی رخ ندهد که ما از زمان خارج شده ایم.
آیا واگذاری وظایف توسعه واقعی به ابزاری مانند این را در نظر می گیرید؟ فکر می کنید تأثیر طولانی مدت آن بر تیم های نرم افزاری یا توسعه دهندگان فردی چه خواهد بود؟ و آیا شما نگران از دست دادن مهارت ها یا نقش های مهم هستید زیرا بخش بیشتری از چرخه عمر کد به هوش مصنوعی سپرده می شود؟