اگر برنامه نویس باشید ، حتما در مورد GitHub Copilot شنیدید یا دارید ازش استفاده میکنید . کمک کد نویسی که با استفاده از هوش مصنوعی کد های شما رو تکمیل میکنه . اون به هیچ چیزی رحم نمی کنه ! کامنت ، اسم تابع ، کدی که چند خط بالاتر نوشتید و هر چیزی که میتونه کمک کنه بفهمه چی دارید مینویسید .
چند وقت بود که در مورد همکاری OpenAI و Github شنیده بودم و میشد حدس زد که وقتی دو غول بزرگ در دنیای برنامه نویسی شروع به همکاری میکنند چیزی که ازش در میاد باید خیلی فوق العاده باشه خصوصا که موضوع هوش مصنوعیه . یه روز بطور اتفاقی تو اینستاگرام دیدم که ازش دارن استفاده میکنن و به سایتش سری زدم دیدم که میشه بری تو لیست انتظار و خوب منم سریع ثبت نام کردم ." گلام" ( شخصیت کارتونی گالیور - من میدونم ما ... " درونم بهم میگفت ما این گوشه دنیا اونم در کشوری که تحریمه مگه میشه به این زودی ها از این ابزار بتونیم استفاده کنیم ؟ . ولی کمتر از 5 روز بعد ( دقیق نمی دونم ) ایمیل اومد و ابزار فعال شد . طبق گفته سایت اصلی :
Extends your editor
GitHub Copilot is available as an extension for Neovim, JetBrains, and Visual Studio Code.
فعلا میشه از این ابزار روی Neovim, JetBrains,Visual Studio Code استفاده کرد و با اینکه روی JetBrains کار میکنه ولی تا این تاریخ ( 1400/12/03 ) هنوز روی Android Studio فعال نشده ( به زودی فعال میشه )
برای من که برنامه نویس اندروید و فلاتر هستم ، اندروید استودیو تقریبا خدا محسوب میشه و با توجه به نیاز شرکت جدیدم به اپلیکیشن موبایلی با فلاتر بیشتر مجاب شدم به VS Code مهاجرت کنم و از این ابزار هم استفاده کنم . بازم " گلام " اومد و گفت اینو بخون :
Speaks all the languages you love
GitHub Copilot works with a broad set of frameworks and languages. The technical preview does especially well for Python, JavaScript, TypeScript, Ruby, Java, and Go,
این یعنی Copilot به Dart کمکی نمیکنه . اما وقتی شروع به نوشتن اولین فایل دارت برای پروژه کردم در کمال نا باوری همه چیز رو درست حدس میزد حتی زمانی که داشتم widget میساختم ! . بله Copilot از روی پروژه های public روی github مدل سازی هوش مصنوعیش رو می سازه و هر زبانی که تو Github کدی براش نوشته شده باشه رو میتونه تکمیل کنه .
روش کار با این " دیونه دوست داشتنی " هم زیاد سخت نیست ، چون اصلا روشی نداره . فقط کافیه بنویسی که چی میخوای . اما اصولیش اینه که کدی که میخوای رو بصورت کامنت بنویسی و یه enter ساده بزن و منتظر باش تا جادو اتفاق بیافته . حتما تعجب خواهید کرد که چطور میتونه درست حدس بزنه !؟ Copilot با استفاده از اسم فایلی که دارید توش کد رو مینویسید و کد هایی که از قبل تو همین فایل نوشتید و کامنتی که ذکر کردید و اسم هایی که تو کامنت استفاده کردید و کد های Github بهترین گزینه رو براتون میاره .
کار به همینجا هم ختم نمیشه . شاید فکر کنید که Copilot یه قطعه کد رو براتون تکمیل میکنه ولی نه ، اون همه چیز رو تکمیل میکنه ، حتی وقتی دارید کامنتی مینویسید که Copilot ازش استفاده کنه هم خودش بهتون پیشنهاد میده . این ابزار خوش دست به هر نوشته ای حساسه و هر چیزی که بنویسید رو میتونه تکمیل کنه
اما داستان زمانی غم انگیز ( شایدم هیجان انگیز ) میشه که بعد از ساعت ها کار کردن با این ژیگولی همه فن حریف و عشق بازی باهاش ( بعضی وقت ها احساس میکنم Copilot اونجا هست و باهاش حرف میزنم دی: ) یکهو به خودت میای میبینی هیچ مرورگری باز نیست !! من پنج ساعت کد زدم و اصلا گوگل رو باز نکردم ! من کد هایی زدم که حتی نمی دونستم وجود دارند و اینکار رو بدون استفاده از گوگل کردن انجام دادم !
داستان بازم هیجان انگیزتر میشه وقتی با یه زبان جدید بخوای کد بزنی . من که از قبل آشنایی کوتاهی با جاوا اسکریپ داشتم ، پروژه ای تو شرکت برام تعریف شد که برای یه قسمت سایتمون باید Speech To Text رو درست میکردم . برنامه نویس ها میدونن استرس شروع پروژه جدید بدون دانش کافی چقدر زیاده و خوب تنها امیدواریت اینه که گوگل هست ( حتی رئیس شرکت هم به گوگل اطمینان داره وقتی میگه گوگلش کن حله ) . اما من با Copilot تقریبا 30 درصد مثل همیشه از گوگل استفاده کردم و چیزی رو که میخواستم Copilot خودش برام مینوشت ! کافی بود یه فایل speechRecognation.js بسازم و کامنتی بنویسم که میخوام speech to text رو بسازم و Copilot تمام ، کد ها ساخته شد و حتی بهم پیشنهاد داد که خروجی رو چجوری روی صفحه نشون بدم !!
یاد حرف نیچه افتادم که میگفت " خدا مرد " . شاید این حرف زود باشه ولی احساس میکنم " گوگل برای ما برنامه نویس ها داره میمیره " شایدم حالش بد شده دی: . صد البته که هنوز خیلی بهش نیاز داریم و خواهیم داشت و برنامه نویسی فقط کد نیست و باید مفاهیم رو هم درک کنیم ولی تجریه شخصی من میگه استفاده از گوگل 60 درصد کمتر شده !
روند کد نوشتن به این صورت بوده که شما چیزی رو میخواستید در گوگل سرچ میکردید و گوگل بهترین نتایج رو براتون می اورد . بعد شما نتیجه رو میخوندید و تبدیل به کد میکردید . حالا کافیه اونچیزی رو که میخواهید بنویسید تا Copilot براتون خودش سرچ کنه و بهترین کدش رو بهتون پیشنهاد بده و این اصلا وحشتناک نیست .ترس از هوش مصنوعی و بیکار شدن ما برنامه نویس ها خیلی بی معنیه ! برنامه نویسی فراتر از کد نویسیه و روش حل مساله است . چه نیازیه که من به عنوان برنامه نویس بجای خلق ویژگی جدید در برنامه وب شرکتمون ، دنبال نحوه استفاده درست از WebSpeechRecognation باشم . اتفاقا یکی مثل Copilot باید می اومد که جلوی هدر رفت زمان هایی زیادی برای فهم کار با کد هایی که نوشته شده رو ازمون میگرفت و نوشتن یه برنامه Speech To Text تو سال 2021 رو برای یه برنامه نویس نیمه آشنا با جاوا اسکریپ به یک روز کاهش میداد و این کاملا هیجان انگیزه نه وحشتناک ! این کاملا هیجان انگیزه که بنویسم
//random date before now to 2 years
و فارغ از زبانی که دارم برنامه نویسی میکنم Copilot بهم بگه چجوری از توابع Date باید استفاده کنم . مثلا نمونه کدی که در زبان dart پیشنهاد داد :
DateTime.now().subtract(Duration(days: Random().nextInt(730)))
میدونم و میدونید سرچ کردن و استفاده درست از تابع subtract حداقل نیاز به 10 دقیقه زمان داشت ولی من اصلا نمی دونستم چنین تابعی هست و اصلا هم نیاز نداشتم اینقدر زمان بزارم و با Copilot دقیقا فهمیدم چه کاربری داره این تابع . همین یعنی خود برنامه نویسی