از زمان انتشار ChatGPT برای عموم در سال 2022، بسیاری از صنعت IT کنجکاو هستند تا اثرات کامل این ابزار مولد هوش مصنوعی را ببینند. این قطعا برای توسعه دهندگان نرم افزار صادق است.
با پیشرفت مداوم، تیم ها می توانند انتظار داشته باشند که ابزارهای مولد هوش مصنوعی، مانند ChatGPT، به طور فزاینده ای کارشان را تغییر دهند. برخی در حال حاضر از ChatGPT برای توسعه نرمافزار استفاده میکنند – تلاشی که از پیشنهاد ابزار هوش مصنوعی جنبههای خلاقانه نرمافزار تا استفاده از کد تولید شده توسط ChatGPT در توسعه را شامل میشود.
بیایید بررسی کنیم که چگونه ChatGPT می تواند به عنوان دستیار توسعه دهنده عمل کند و توسعه دهندگان باید از چه محدودیت هایی در هنگام استفاده از ابزار آگاه باشند.
ابزار جالب یا منبع ضروری؟
به گفته تحلیلگران صنعت، سازمان های زیادی وجود دارند که توانایی ChatGPT و چت ربات های هوش مصنوعی مشابه را برای ایفای نقش ارزشمند در پروژه های توسعه نرم افزار آزمایش می کنند. آنها گفتند که یکی از این نقش ها حول محور استفاده از ChatGPT برای معرفی توسعه دهندگان با زبان های برنامه نویسی جدید و ناآشنا است.
Diego Lo Giudice، تحلیلگر اصلی Forrester Research می گوید: «ChatGPT در ارائه پیشنهادهای واضح و به زبان طبیعی یا برای شروع و استفاده از یک زبان برنامه نویسی جدید خوب است. “ولی [developers] همچنین از آن برای تولید کد از اعلانهای انگلیسی برای مستندسازی کد موجود، برای دریافت توضیح واضح از یک برنامه یا ترجمه از یک زبان برنامهنویسی به زبان دیگر استفاده کنید – در مورد APIها، کتابخانهها، پارامترهای مورد استفاده در کدنویسی و موارد دیگر سوال کنید.
لوکاس دانکر، دانشجوی دانشگاه نورث ایسترن و توسعهدهنده نرمافزار که بهعنوان تعاونی مهندسی نرمافزار دانشکده پزشکی هاروارد کار میکند، از ChatGPT در گردش کار برنامهنویسی خود استفاده میکند، اگرچه او اذعان میکند که این عمدتاً به کارهای سادهتر محدود میشود که کار چندان پیچیدهای ندارند.
دانکر میگوید: «ما از آن فقط برای مشاوره خلاقانه عمومی، شاید برای نامگذاری پروژه یا نامگذاری متغیرها استفاده میکنیم. ما واقعاً از آن برای بسیاری از کدهای واقعی خود استفاده نمیکنیم، زیرا بسیاری از پایگاههای کد ما قبلاً ساخته شدهاند. معمولاً برای ChatGPT کمی پیچیدهتر از آن هستند که بتوان به آن اضافه کرد یا کارهای زیادی به آن انجام داد.»
احتمالات در حال ظهور اما شک و تردید سالم
Lo Giudice با دادن دسترسی به منابع زبان برنامه نویسی تخمین زد که ChatGPT در حال حاضر می تواند با بیش از 50 زبان برنامه نویسی کار کند. و هرچه داده ها یا کدهای بیشتری با هوش مصنوعی مولد آموزش دهید، بهتر کار می کند.
لو گیودیس گفت: همه محبوب ترین زبان ها برای ChatGPT خوب هستند: COBOL، Java، JavaScript، TypeScript، Rust، C، C++، Python، R و SQL. “اما در زبان های برنامه نویسی مبهم تر نیز تولید خواهد شد. شما فقط باید به خروجی توجه بیشتری داشته باشید.”
برخی از توسعه دهندگان موفق شده اند کد تولید شده توسط ChatGPT را با کد اصلی برنامه های خود ترکیب کنند. از آنجایی که ChatGPT در IDE محلی سازمان قرار ندارد، توسعه دهندگان فقط می توانند کد تولید شده توسط ChatGPT را در یک پایگاه کد موجود برش داده و جایگذاری کنند. به گفته Lo Giudice، این ممکن است برای توسعه دهندگانی که معمولاً دوست ندارند IDE خود را هنگام کدنویسی ترک کنند، ناخوشایند به نظر برسد، اما قابلیتی است که ابزارهایی مانند GitHub Copilot باید به توسعه دهندگان کمک کند تا به آن دست یابند. با این حال، او هشدار داد که عدم کنترل روی کتابخانههایی که ChatGPT انتخاب میکند به آنها پیوند بزند، میتواند توسعهدهندگان را در صورت عدم توجه با مشکل مواجه کند.
توسعه دهندگان باید به کتابخانه ChatGPT توجه کنند [pulls in]. … آنها ممکن است پیر باشند یا [incompatible with] Lo Giudice گفت: بقیه کدها از آنجایی که در حال حاضر روی دادهها تا سال 2021 آموزش داده شده است، از جدیدترین کتابخانههای بسیار جدید اطلاعی نخواهد داشت.
برای برخی، امید این است که وقتی توسعهدهندگان تجربه کار با کدهای تولید شده توسط ChatGPT را به دست آورند، مسائلی از این دست کمتر مورد توجه قرار میگیرند. با این حال، دانکر مطمئناً در مورد اعتماد به هوش مصنوعی برای تصمیم گیری منطقی در مورد آنچه توسعه دهندگان باید با کد خود انجام دهند، شک دارد.
“اگر یک برنامه از قبل موجود دارید و از ChatGPT میپرسید، آیا کاری وجود دارد که بتوانم در این زمینه بهبود ببخشم؟” ممکن است برخی چیزها را به شما بدهد، اما ممکن است همیشه دقیق نباشند. بنابراین، ساختن بر اساس برنامههای کاربردی از قبل موجود بسیار دشوار است. اگر پروژه جدیدی را شروع میکنید، ممکن است شروع با فناوری UPC بسیار مفید باشد. [Unified Parallel C] کد کنید و بگویید: “اینجا یک دیگ بخار است و من می خواهم آن را بهبود ببخشم.” اما انجام آن برعکس، حداقل به صورت حکایتی، بسیار دشوار بوده است.”
محدودیت های مشاهده شده ChatGPT
شاید بزرگترین چالش برای توسعهدهندگانی که با ChatGPT کار میکنند، نیاز به نظم و انضباط قوی برای روشن کردن زمانی است که بخشهایی از کد به طور خاص از ChatGPT آمدهاند. Lo Giudice گفت که این شامل اطمینان از بررسی و آزمایش کامل آن بخشهای خاص کد است.
Dunker هشدار داد که توسعه دهندگان همچنین باید مراقب باشند که تمام کدهای ارائه شده توسط ChatGPT دقیق است. در واقع، او شخصاً از محدود کردن ChatGPT به قلمرو کد قالب، منطق دیگ بخار یا الگوریتمهای اساسی حمایت کرد.
دانکر توضیح داد: «ChatGPT در تولید کدی که دقیق به نظر می رسد بسیار خوب است، اما این همیشه به این معنی نیست که دقیق است.
TuringBots ممکن است آینده ChatGPT را پیش بینی کند
برای توضیح اینکه چگونه ChatGPT و هوش مصنوعی مولد مشابه در سالهای آینده بر توسعهدهندگان تأثیر خواهند گذاشت، Lo Giudice به راهنمایی Forrester در TuringBots اشاره میکند:
TuringBot یک نرم افزار مبتنی بر هوش مصنوعی است که اتوماسیون و قابلیت های نیمه مستقل توسعه دهندگان و تیم های توسعه برنامه را از طراحی تا تحویل کد و برنامه ها افزایش می دهد.
لو گیودیس گفت: ما این اصطلاح جدید را در سال 2020 به افتخار آلن تورینگ تعریف کردیم. “ChatGPT یک TuringBot است که طراحی، کد و تست واحد و همچنین تولید تست های عملکردی را انجام می دهد. سایر TuringBot ها مانند GitHub Copilot یا Tabnine فقط کدنویسی و تست واحد را انجام می دهند. همه این TuringBot ها بسیار قدرتمند هستند و بر پایه تولید هستند. هوش مصنوعی.”
طبق گفته Lo Giudice، بیشتر TuringBots فقط بر روی یک بخش از چرخه عمر توسعه تمرکز می کنند، مانند ساخت، آزمایش یا استقرار. با این حال، در درازمدت، او معتقد است که TuringBots این قابلیتها را برای پوشش جنبههای مختلف فرآیند، اگر نه کل چرخه عمر، گسترش خواهد داد.
با گذشت زمان، آنها مراحل بیشتری از SDLC را انتخاب خواهند کرد، یا به این دلیل که TuringBots با یکدیگر همکاری می کنند یا به این دلیل که – مانند ChatGPT که به نظر می رسد – مبتنی بر یک LLM است. [large language model] می تواند بیش از یک مرحله SDLC را انجام دهد – نه همه و نه همه آنها هنوز خوب.”
Lo Giudice گفت، البته، سازمانها باید شیوههای جدیدی را در مورد چگونگی تشویق فناوریهایی مانند ChatGPT ایجاد کنند تا بهترین نتیجه را از آنها ببرند. تیم های توسعه با هوش مصنوعی به عنوان همراه کار می کنند، آنها را مدیریت می کنند و استفاده از آنها را مقیاس می دهند.
Lo Giudice گفت: “کوتاه مدت، استفاده موقت و آزمایشی خواهد بود.” “احتمالاً در مقیاس در سازمان ها نخواهد بود تا زمانی که آنها حاکمیت مناسب را برای کاهش ریسک ایجاد کنند.”