برنامه نویسی جفت هوش مصنوعی این پتانسیل را دارد که هم یک رویا و هم یک کابوس برای برنامه نویسان باشد. نه توسعهدهنده درباره استفاده فعلی خود از هوش مصنوعی مولد در کارشان بحث میکنند.
علاقه عموم مردم به هوش مصنوعی مولد، جرقه هجوم طلای جدید فناوری را برانگیخته است. در حالی که ابزارهای هوش مصنوعی که هنرهای بصری و نثر زبان طبیعی را تولید می کنند توجه زیادی را به خود جلب کرده اند، توانایی های کدنویسی هوش مصنوعی در محافل فناوری توجه بیشتری را به خود جلب کرده است. برنامه نویس معمولی از این واقعیت که می توانید برنامه ای را که می خواهید اجرا کنید به یک ربات چت هوش مصنوعی توصیف کنید و می تواند کدهای اجرایی را در عرض چند ثانیه به شما بازگرداند، هم مجذوب و هم عصبانی می شود.
به طور خاص، مدیران، مشاوران و مفسرانی که آنها را دنبال میکنند، پیشبینیهای عجیب و غریبی درباره آینده صنعت نرمافزار به دلیل امکان برنامهنویسی مبتنی بر هوش مصنوعی انجام دادهاند. اما در مورد مدیران و برنامه نویسانی که از ابزارهای هوش مصنوعی در کارهای روزانه خود استفاده می کنند، چه می توان گفت؟ ما با چند نفر که از هوش مصنوعی مولد استفاده میکنند صحبت کردیم تا بفهمیم اوضاع تا کنون چگونه پیش میرود. ما متوجه شدیم که در حالی که هوش مصنوعی بدون شک نحوه کار افراد را تغییر میدهد، ماشینها به زودی جایگاه برنامهنویسان انسانی را در نیروی کار نخواهند گرفت.
توسعه دهندگانی که با آنها صحبت کردیم اغلب از دو ابزار هوش مصنوعی مولد استفاده می کردند: GitHub Copilot که با Visual Studio و سایر IDE ها ادغام می شود و ChatGPT، چت ربات هوش مصنوعی معروف OpenAI. Copilot و جانشین آزمایشی آن، Copilot X، میتوانند فراتر از مدل مکالمهای عمل کنند و به عنوان نوعی تکمیل خودکار IDE پیشرفته عمل کنند که آنچه را توسعهدهنده روی آن کار میکند، پیشبینی میکند، حتی اگر هر دو ابزار میتوانند کدی را بر اساس درخواستهای زبان طبیعی ایجاد کنند.
یکی از بنیانگذاران و معمار اصلی Croquet.io ونسا فرودنبرگ ادعا می کند که از GitHub Copilot برای توسعه کد ویژوال استودیو روزمره خود استفاده می کند. او نحوه عملکرد آن را شرح می دهد.
اگر خط را بنویسم:
let x = this.leftMargin + this.width / 2;
به طور خودکار خط بعدی را پیشنهاد می کند:
let y = this.topMargin + this.height / 2;
و می داند که باید «عرض» و «چپ» را با «ارتفاع» و «بالا» جایگزین کند. این باعث صرفه جویی زیادی در تایپ کردن من می شود.
یکی از بنیانگذاران و مدیر ارشد فناوری NetBeez، Panickos Neophytou، ادعا می کند که هر زمان که کد می نویسد، از ChatGPT و Copilot X استفاده می کند. او دو روش را برای استفاده از این فناوری ها برای فراتر رفتن از تکمیل خودکار بیان می کند. اولی روشمند است. او میگوید: «یک تابع کاملاً تعریفشده را با ورودیهای خاص، نمونههایی از خروجیهای مورد انتظار و همچنین مدلهای داده درگیر، که شامل جداول پایگاه داده با ارتباط ضمنی است، توصیف کنید». "به طور کلی، هوش مصنوعی می تواند روابط را استنباط کند. درخواست کنید که به زبان و روش خاصی پیاده سازی شود. تعریف نرم افزار مدیریت پروژه از "وظایف" باید شامل این نوع اعلان باشد.
علاوه بر این، او معتقد است که یک رویکرد آرام تر و محاوره ای می تواند نتایج مثبتی را به همراه داشته باشد. او این حالت را اینگونه توصیف می کند: "وقتی روی یک کار کار می کنید، نگرانی در مورد چگونگی انجام کارهای خاص در افکار شما ایجاد می شود. این مانند این است که یک مهندس آگاه در کنار خود داشته باشید تا به شما کمک کند تا کار را تکمیل کنید و به نگرانی هایی که ممکن است داشته باشید پاسخ دهد. "
از هر روشی که استفاده می کنید، به نوعی هنر خاص نیاز دارد تا به طور موثر هوش مصنوعی را تحریک کند. Shanea Leven، مدیر عامل و بنیانگذار CodeSee توضیح می دهد: "من برای اطمینان از دریافت فعل صحیح برای شروع و اصلاح دستور خود از اعلان زنجیره ای استفاده می کنم." "انتخاب افعال مناسب و توصیفی بودن برای ایجاد یک اعلان خوب واقعا مهم است." (به همین دلیل مهندسی دقیق به سرعت محبوبیت پیدا می کند.)
توسعهدهندگانی که با آنها صحبت کردیم، نمونههایی از این که چگونه ابزارهای هوش مصنوعی به آنها در تکمیل وظایفشان کمک میکنند، ارائه کردند. این چیزی است که توجه من را جلب کرد.
هوش مصنوعی در ماهیت تا حدودی ساختارمند اسناد نرم افزاری شکوفا می شود. کریس لاو، خالق شرکت مشاوره وب Love2Dev، میگوید: «نوشتن مستندات [یا] نظرات در کد من چیزی است که برای آن از ChatGPT استفاده میکنم. انجام این کار با دست زمان زیادی می برد. با این حال، پس از اتمام یک تابع، می توانم آن را به آن اختصاص دهم و به سرعت یک صفحه عالی از مستندات بنویسم. من آن را دوست دارم.
هوش مصنوعی همچنین قادر به تولید کد از اسناد یا نظرات است. فرودنبرگ از Croquet.io یک تصویر اساسی از اینکه Copilot چگونه میتواند کد را از یک خط اظهار نظر تولید کند، ارائه کرد:
// get file name from our url
let fileName = .pathname.split("/").pop();
او میگوید: «احتمالاً این را متفاوت مینوشتم - من یک دختر رجکس هستم - اما این یک راهحل کاملاً ساده و قابل بحثتر خوانا است، بنابراین من فقط آن را میپذیرم. "این نه تنها صرفه جویی زیادی در زمان دارد، بلکه گاهی اوقات اصطلاحاتی را نیز به من می آموزد که شاید خودم آن را کشف نکرده باشم."
توسعه دهندگان می دانند که ایجاد چیزهای جدید همیشه یکی از جنبه های برنامه نویسی است. کار کردن بر روی مشکلی که میدانید کسی، در جایی، قبلاً آن را حل کرده است، میتواند دلسردکننده باشد. به گفته جف ویلز، رئیس تمرین مهندسی Rise8، این حوزه ای است که ممکن است از پشتیبانی هوش مصنوعی بهره زیادی برد. او میگوید: «فرض کنید روشی برای محاسبه فاصله بین دو نقطه روی یک کره ایجاد کنم. Copilot به طور خودکار خارج می شود و الگوریتم Haversine را پیدا می کند و همه آن کد را تولید می کند.
هنگامی که افزودن یک کتابخانه قابل توجه به برنامه او جایگزین استفاده از کدهای تولید شده توسط هوش مصنوعی است، ویلز این مورد استفاده را به ویژه مفید می داند. او میگوید: «بگویید من نمیخواهم یک کتابخانه کامل هندسه را به کد خود بیاورم و پایگاه کد را منفجر کنم. در واقع فقط به یک الگوریتم نیاز دارم. احتمالاً فقط من آن را می نویسم و اضافه می کنم، یا با کمک ChatGPT یا Copilot آن را تولید می کنم. این در حال حاضر پایه اصلی هوش مصنوعی است."
چت جی پی تی برای کریس لاو از Love2Dev در ارتقای کدهایی که قبلاً توسعه داده است بسیار مفید است. او میگوید: «من بهروزرسانی ماژولهای قدیمی Node.js را انجام دادهام که فقط به این دلیل که زمان تایپ کد بیشتر از ارزش آن است، بهروزرسانی نکردهام. "من به دنبال موقعیتهایی هستم که توابع مبتنی بر وعدههای قدیمیتر را میتوان به استفاده از async/wait اغلب تبدیل کرد. اگرچه نحو واضحتری دارد، دومی زمانی که ماژول را ایجاد کردم محبوبیت کمتری داشت. همراه با استفاده از نحو معاصر بیشتر، من نیز به آن دست پیدا کردم. آن را به تخریب و تغییر اعلان های متغیر از var به const و let."
چندین توسعهدهنده که با آنها صحبت کردیم ادعا کردند که میتوانند با استفاده از Copilot یا ChatGPT کار خود را با سرعت بیشتری انجام دهند، با این حال آنها اذعان داشتند که اندازهگیری آن دشوار است. لاو ادعا میکند: «آنچه که فکر میکنم در نهایت انجام میدهد این است که به من کمک میکند تا کد بهتری را کمی سریعتر بنویسم. گفتن چند درصد سریعتر سخت است، اما برای من قابل لمس است. بررسی هوش مصنوعی در نکست جی اس
ویلز از Rise8 میگوید:
«احساس میکنم میتوانم سریعتر راهحلهای بالقوه را طی کنم». "از نظر تئوری، این باید به من سرعت ببخشد - اما شاید من گزینه های بیشتری را در نظر می گیرم! چون توانستم کمی بیشتر تکرار کنم، ممکن است از نظر زمان پاداشی دریافت نکنم، بلکه از نظر کیفیت."
شاید براتون مفید باشه