GitHub Copilot یک دستیار برنامهنویس است که استفاده از آن برای عموم توسعهدهندگان امکانپذیراست، این ابزار با کمک هوش مصنوعی خط بعدی کد و یا کل تابع را به شما پیشنهاد میدهد. انتشار GitHub Copilot با واکنشهای متفاوتی از سوی جامعهی برنامهنویسان مواجه شده است. در حالی که عدهای از اتوماتیکشدن بخش زیادی از کارهایشان هیجانزدهاند، برخی دیگر معتقدند که این محصول پیشدرآمدی بر پایان عصر برنامهنویسانِ انسانی است. در این مطلب با گیت هاب کوپایلت آشنا میشویم. اما در پایان شما باید نتیجه بگیرید که آیا این دستیار واقعا برای کمک به برنامهنویسان است یا اینکه آمده تا آنها را بیکار کند؟!
[lwptoc]
دستیارِ هوش مصنوعیِ کدنویسی
گیت هاب این ابزار را اینگونه معرفی میکند: “Your Ai Pair Programmer”.
این دستیار توسط شرکت CODEX و با سیستم هوش مصنوعی OpenAi ساخته شده است. به این صورت عمل میکند که با کمکِ کدها و پروژههای آنلاینِ روی اینترنت و پردازش های سیستم هوش مصنوعی OpenAi، رابطهای بین چیزی که شما میخواهید و کدهای موجود پیدا میکند و کدی که پیدا کرده را با توجه به خواستهی شما بازنویسی خواهد کرد.
GitHub معتقد است که این اولین بار در تاریخِ نرمافزار است که هوش مصنوعی تا این میزان برای تکمیل کدها به کمک توسعهدهندگان میآید. در صفحهی معرفیِ Copilot در وبسایت این کمپانی نوشته شده است: «درست مثل ظهور کامپایلرها و منبعبازها، کدنویسی با هوش مصنوعی بهطور کلی ماهیت توسعهی نرمافزار را تغییر خواهد داد.»
نحوه کار و تجزیه و تحلیل کدهای برنامه نویسی
کارایی شگفتآور
GitHub Copilot زبان طبیعی را به کد تبدیل میکند و به توسعهدهندگان پیشنهاداتی را ارائه میکند. این پیشنهادات از کدهای بویلرپلیت گرفته تا الگوریتمهای پیچیده را شامل میشوند. عملکرد آن به این صورت است که شما منطقِ (Logic) کدی که میخواهید را در یک خط کامنت توصیف میکنید و با زدن دکمه Enter این دستیار کدی را مینویسد که همان چیزی که میخواهید را تولید میکند.
اگرچه ممکن است کمی زمان ببرد تا یاد بگیرید که دستورات خود را طوری به زبان انگلیسی بیان کنید تا Copilot مناسبترین کدِ خروجی را بدهد، اما در نهایت کارایی این محصول شما را شگفتزده میکند. البته هنوز فاصلهی زیادی داریم تا زمانی که بگوییم: هی Siri، یک اپلیکیشن آیفون میلیون دلاری برایم درست کن!
دستیارِ هوش مصنوعیِ کدنویسی، بهعنوان افزونهای بر روی IDEهای Visual Studio ،Neovim ،JetBrains و Visual Studio Code نصب و اجرا میشود. نکته جالب این دستیار این است که میتواند به هر زبانی هر تابعی که بخواهید را برای شما بنویسد…!
این یک قلمروی جدید در حوزهی تکمیل کدها است و من درمورد آن خیلی هیجانزده هستم. Copilot میتواند باعث بهبود کیفیت اپلیکیشنها شود و از استانداردها و کدنویسیِ بهتر پشتیبانی کند.
Chris Riley، مدیر روابطِ توسعهدهندگانِ HubSpot
GitHub Copilot چه کارهایی میتواند انجام دهد؟
- یکی از کارهایی که این دستیار میتواند انجام دهد و در بالا نیز به آن اشاره شد، این است که شما منطقِ کدی که میخواهید را در یک خط توصیف میکنید و این دستیار تکه کدی را مینویسد که خروجی مورد نظرتان را تولید میکند. نکته جالب این است که میتوانید این توصیف لاجیکی خودتان را در اسم آن تابع نیز بنویسید و این دستیار میتواند به راحتی منطق شما را تشخیص دهد.
مثال های زیر را ببینید:
- این ابزار می تواند به راحتی تکه کدهای تکراری و الگوی تکرار آنها را تشخیص دهد، بنابراین به جای این که شما موارد تکراری را تایپ کنید، این کار را برایتان بدون دردسر انجام میدهد.
مثال زیر را ببینید:
- این ابزار میتواند تست نویسی کند که با این کار شما به راحتی میتوانید کدهایتان را با آن تست کنید.
مثال زیر را ببینید:
- هنگامی که در حال نوشتن منطقِ یک تابع هستید و این دستیار متوجه منطق کدی که نوشتهاید بشود، مابقیِ کدی که در حال نوشتن آن هستید را به شما پیشنهاد میدهد و اگر مناسب باشد (که البته هست)، میتوانید از آن استفاده کنید.
- کاربرد آخری که میتوانیم به آن اشاره کنیم این است که این دستیار میتواند هر کدی از هر زبانی را به هر زبان دیگری ترجمه کند. یعنی شما به کمک این دستیار میتوانید منطق یک کد را به هر زبان مقصدی که میخواهید ترجمه کنید.
نگرانیهای مربوط به GitHub Copilot
به نظر میرسد این دستیارِ هوش مصنوعیِ گیت هاب، میتواند از عهدهی هر لاجیکی بربیاید و میتواند برای برنامهنویسهای مبتدی خوب باشد… اما به این شرط که این برنامهنویسها برای درک و ایده گرفتن از منطق این دستیار و همچنین خواندن و بررسی کدهایی که این دستیار برایشان مینویسد، بتوانند ذهنشان را قوی کنند و به این درک برسند که میتوانند از زاویههای مختلفی به یک مسئله نگاه کنند.
نگرانی که در این مورد وجود دارد و باعث میشود که در استفاده از Copilot احتیاط کرد این است که این ابزار از کدهای پیشینِ توسعهدهندگان یاد گرفته است. اما به هر حال انسانها گاهی در کدهایشان اشتباه میکنند…
البته این خیلی خوشبینی نسبت به این قضیه است. عرضهی این محصول باعث بهوجودآمدن نگرانیهایی در میان توسعهدهندگان شده است. با گشتن در وبسایتهای Quora و Reddit میتوانید کامنتهای بسیاری از برنامهنویسانی ببینید که میپرسند: آیا این محصول جایگزین برنامهنویسان خواهد شد؟ در طی دهههای اخیر، افراد زیادی شغل خود را بهدلیل اتوماتیکشدن کارها از دست دادهاند و حالا این نگرانی به پشتِ درِ خانههای برنامهنویسان رسیده است!
وقتی به هوش مصنوعی بهعنوان همیار برنامهنویسی فکر کنید، هنوز باید بتوانید از کاری که میکنید سر در بیاورید. هنوز نیاز است که بدانید که چطور برنامهی خود را بسازید و هنوز لازم است که کدهایی که توسط هوش مصنوعی نوشته میشوند را متوجه شوید. این ابزار جایگزین ما نمیشود. Copilot روند کار را تغییر میدهد و باعث میشود که بهطور کارآمدتری کار کنیم. این خیلی جالب است.
Cassie Breviu، مدیر فنی ارشد Microsoft
واقعیت این است که محصولِ جدید GitHub با همهی محاسن و معایبش هنوز در مراحل اولیه است. برای نقد و بررسی دقیقترِ GitHub Copilot نیاز است که به آن کمی زمان بدهیم. اما به نظر میرسد که حداقل در آیندهی نزدیک قرار نیست که این ابزار جایگزین برنامهنویسان شود زیرا در استفاده از این ابزار، مهارتهای برنامهنویسی بهشدت موردنیاز است. به هرحال این برنامهنویسها هستند که باید کدهای پیشنهادی را بررسی کنند. نظر شما چیست؟ آیا میتوانیم به این دستیار همه کاره اعتماد کنیم؟ آیا میتوانیم نسبت به آن خوشبین باشیم؟
چه آیندهای را میتواند برای برنامهنویسها رقم بزند؟
برگرفته از سایتهای سکان آکادمی و کوئرا