همزیستی با هوش مصنوعی
فکر میکنم الان یک سالی هست که از این agentهای معروف روی IDEهام استفاده میکنم و حالا برام مسجّل شده که کجا باید از چی استفاده کنم و کجا باید دکمهی کدومشون رو بزنم و امروز که صحبت از ج پ ت شد، گفتم راجعبه این موضوع هم بگم که خیلی وقته ذهنم رو مشغول کرده.
من همیشه GitHub Copilot داشتم. دو ماهی هم هست که به توصیهی زوری شرکت دارم از Cascade استفاده میکنم. البته برای هیچکدومشون، خداروشکر، پولی از جیب نمیدم. اولی رو از GitHub Student دارم، دومی رو هم که خود شرکت خرجی که تراشیده رو پولش رو میده. کدهایی هم که این روزها مینویسم به ترتیب Go، و بعد با اختلاف Rust و در نهایت Pythonه. سالها پایتون زبان اول بود و تسلطم بهش نسبت به اون دوتای دیگه با اختلاف بیشتره و با دوتای دیگه بهخصوص Rust مشغول خاکبازیام.
نکتهای که وجود داره اینه که وقتی Cascade رو نصب میکنی، بهصورت پیشفرض فضولی بیجا میکنه و انگشتش رو با ذوق توی هر سوراخی فرو میبره. یکجایی از کد اگر اروری داشته باشه، اولین گزینهای که بهجای پیشنهاد IDE میاد (مثل import کردن)، اینه که میگه میخوای با کسکید فیکس کنی؟ نه پسر خوب! نمیخوام!! استفاده ازش بلاهت محضه. ایمپورتی که خود IDE خیلی راحت و سریع میتونه از پسش بربیاد و راهحل قطعی هم داره رو پاس میده به ایجنت که بره و از آقاشون بپرسه و جواب رو بگیره و زحمت بکشه اون بالا ایمپورت رو اضافه کنه. البته این مورد اول خیلی ساده حل میشه. خرجش چهار تا کلیک برای حذف suggestionهای اینطوریه. غر خاصی نیست. مشکل ولی توی پروسهی یادگیریه…
وقتی که شروع کرده بودم Go نوشتن، autocompleteهای مبسوط و اغواگر کوپایلت هم فعال بود. اسم متد رو مینوشتی، بدنه پیاده میشد. یا تمام کارهای جذابی که خودتون هم دیدین و تجربه کردین (و البته با تمام مشکلاتی که داشت) و این خود مشکل بود. وسوسهی خناسی که روزبهروز بیشتر بهت چیره میشه و تو نمیتونی ازش دل بکنی. این رو وقتی احساس میکردم که میخواستم بدون از رو دست کسی نوشتن، صفر تا صد یک راهحل رو پیادهسازی کنم. چیزی که گرفتارش شده بودم «توهم یادگیری» بود. اگر AI نبود یا وقتی میخواستم کد رو توی ذهن خودم پیاده کنم، جزئیات پیادهسازی، مثل متدها، سینتکس و پکیجها و از همه مهمتر، اون نکتههای اساسی زبان یادم نبود و این فراموشی واسم ترسناک بود.
این رو احتمالاً هممون قبل از سال ۲۰۲۲ تجربه کردیم. فراموشی از جنس وقتهایی که تکهکدهایی رو از استکاورفلو کپی میکردیم و توی پروژهها و تمرینها استفاده میکردیم و وقتی که دوباره بهشون نیاز پیدا میکردیم، باید دوباره میرفتیم و همون رو کپی میکردیم. کدهایی که خیلی طول میکشید تا درست یادشون بگیریم چون احتمالاً خیلی بهشون توجهی نمیکردیم (و نیازی هم نبود که توجه کنیم چون داشت خیلی خوب کار میکرد) و همین باعث میشد تا خیلی بیشتر طول بکشه تا به ذهن بسپریم.
ماجرای امروز هم همون قصهی دیروزه ولی با یک فرق مهم: این بهخاطر نسپردنها هم بیشتر شدهن و هم ابتداییتر. موارد پایهایتری رو ما حالا نیازی نیست بهخاطر بسپریم و بهشون توجه کنیم. چون همهش داره کار میکنه. و من اینطور فکر نمیکنم که واقعاً نیاز نباشه. الان جای اینه که باز بحث این پیش میاد که با این وضعیت و وجود این LLMها چه نیازی به اینه که اصلاً چیزی رو حفظ کنیم. باز هم تجربه و نظر شخصی من اینه که بدون حفظ کردن اصلاً یادگیری کامل نمیشه و از همه مهمتر اینه که وقتی بری مصاحبه و ازت بخوان که کد بنویسی و تو اون زبون رو از روز صفر با این ایجنتها پیش برده باشی، چطوری میخوای این بیآبرویی فراموشی رو تحمل کنی؟! به قول ما مازندرانیها «این رِسوایی رِ خی نَخِرنه!»
از ترس همین هم بود که تمام inline suggestionها رو بستم. عملاً توی قسمت ادیتور دیگه خبری از این AIها نیست. هرچی هست چتباکسه و بس. خیلی کمتر از ایجنتها استفاده میکنم مگر اینکه واقعاً کاری باشه که قبلاً بارها و بارها انجام داده باشم و بدونم اگر بخوام بنویسم صادقانه از پسش برمیام. یا اگر بخوام که توی یک کدبیس بزرگ بیدر و پیکر دنبال چیزی بگردم. حالا وقتی داشتم کارهای قدیمی رو میکردم دیدم که بالاخره دارم میفهمم چه اتفاقی واقعا میافته. اگر اون خط رو مینویسم برای مدیریت goroutineها، چرا باید استفاده بشه و چرا استفاده میکنم. حالا این بهونه رو دارم که برم همونجا داکیومنتش رو بخونم.
واقعیت اینه که من ترجیح میدم که بهجای اینکه یک چوب جادویی داشته باشم که واسم کارم رو انجام بده، یک خر سخنگو داشته باشم که وقتی کارم گیر کرد راهنماییم کنه.
پینوشت: توضیح ضربالمثل اینکه این جانور همه چیز خوار (خی=گراز) که به معنای واقعی کلمه همه چیزو میخوره هم حتی حاضر نیست این گندی که زدی رو بخوره
I'd love to hear from you! Send me your feedback or comments via email.
reply by email