۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

هوش مصنوعی هنوز راه هایی برای بازآفرینی کد دارد

بدون برنامه‌نویسان ماهر که بر دستیاران کدنویسی هوش مصنوعی نظارت داشته باشند، احتمالاً به جای نوشتن کد شما، کد شما را می‌شکنند. در حال حاضر، فقط افراد می توانند هوش مصنوعی را تنظیم و ارزیابی کنند.

بدون برنامه‌نویسان ماهر که بر دستیاران کدنویسی هوش مصنوعی نظارت داشته باشند، احتمالاً به جای نوشتن کد شما، کد شما را می‌شکنند. در حال حاضر، فقط افراد می توانند هوش مصنوعی را تنظیم و ارزیابی کنند.

در عجله برای پذیرش دستیارهای کدنویسی مانند Amazon CodeWhisperer برای تولید کد جدید برای توسعه‌دهندگان، ما زمان زیادی را صرف پرسیدن اینکه آیا آن کد خوب است یا نه. با برخی اقدامات، پاسخ به وضوح “نه” است. بر اساس تجزیه و تحلیل GitClear، “کد تولید شده در طول سال ۲۰۲۳ … شبیه یک مشارکت کننده دوره گرد است”، که احتمالاً ناشی از افزایش استفاده از دستیارهای کدنویسی است.

این بدان معنا نیست که دستیارهای کدنویسی بد هستند. آنها می توانند فوق العاده مفید باشند. مسئله این است که ما باید زمان بیشتری را برای کشف راه‌هایی برای اعمال هوش مصنوعی مولد در کارهایی مانند بازآفرینی کد صرف کنیم، همانطور که در مصاحبه اخیر Thoughtworks. خبر خوب؟ هوش مصنوعی می تواند کمک کند، اما شاید نه همیشه آنطور که ما انتظار داریم.

نوع مسابقه اشتباه

بیشتر تمرکز روی دستیارهای کدنویسی بر این بوده است که چگونه توان عملیاتی را برای توسعه دهندگان بهبود می بخشند. متأسفانه، این به ندرت معیار درستی است. به هر حال، توسعه دهندگان در واقع زمان نسبتا کمی را صرف نوشتن کد جدید می کنند. همانطور که آدام تورنهیل، بنیانگذار و CTO در CodeScene، در مصاحبه Thoughtworks گفت، تا ۷۰٪ از زمان یک توسعه دهنده به جای اضافه کردن کد به آن (که ممکن است ۵٪ از زمان او را شامل شود) صرف درک یک سیستم موجود می کند. همانطور که اشاره کردم، نه تنها سرعت توسعه معیار اشتباهی است، بلکه توسعه دهندگان را نیز از عقب نشینی از کد خود منحرف می کند تا شرط بندی های کمتر و بهتری بر روی کدی که در وهله اول بنویسند، انجام دهند. p>

هوش مصنوعی با توسعه دهندگان API رو به رو شده است

چه چیزی بیشتر از سرعت توسعه مهم است؟ خوانایی، برای یک. همانطور که مارتین فاولر، دانشمند ارشد Thoughtworks در همان مصاحبه تاکید می‌کند، «خوانایی یک پایگاه کد کلیدی است که بتوانید سریع تغییرات ایجاد کنید، زیرا برای تغییر مؤثر کد باید بتوانید کد را درک کنید.» دستیارهای کدنویسی، اگرچه برای افزایش سرعت توسعه مفید هستند، اما می توانند در توضیح کد یا بازنویسی آن به زبان برنامه نویسی آشناتر بسیار مفیدتر باشند، در نتیجه یک چرخش جدید در “خوانایی” ایجاد می کنند.

موضوع دیگری که اهمیت دارد، refactoring است، که با ایجاد تغییرات کوچک در کد، پیچیدگی را کاهش می دهد و خوانایی کد را بهبود می بخشد، بدون اینکه بر رفتار خارجی آن تأثیر بگذارد. در اینجا، متأسفانه، هوش مصنوعی کمتر مفید بوده است، همانطور که Tornhill جزئیات را ارائه می دهد. شرکت Tornhill، CodeScene، از مدل‌های زبان بزرگ (LLM) از OpenAI، Google، Meta و موارد دیگر برای اصلاح کد استفاده کرد، اما دریافت که ۳۰٪ مواقع هوش مصنوعی نتوانست کد را بهبود بخشد. بدتر از آن، در دو سوم مواقع، هوش مصنوعی در واقع متون واحد را شکست، نشانه‌ای از این بود که به جای اصلاح مجدد کد، رفتار خارجی کد را به روش‌های ظریف اما مهم تغییر می‌داد («چیزهای واقعاً عجیبی مانند جابجایی «این» اشاره به یک تابع استخراج شده، که معنای آن را تغییر می دهد، [یا حذف] کل شاخه ها، و غیره). هوش مصنوعی با بهترین عملکرد برای CodeScene فقط در ۳۷٪ مواقع کد را به درستی بازنویسی می کند. در بقیه زمان‌ها، هوش مصنوعی اشتباهی در بازآفرینی کد داشت یا به سادگی کد را بهبود نمی‌داد.

پورتال متمرکز بر توسعه‌دهنده Stack Overflow 10 درصد از کارکنان را اخراج می‌کند

این نرخی نیست که توسعه‌دهندگان بتوانند به آن اعتماد کنند.

Tornhill خاطرنشان می‌کند: «هوش مصنوعی اکنون نوشتن کدهای زیادی را که از ابتدا نباید نوشته شوند، آسان می‌کند. ما واقعاً نمی‌توانیم به هوش مصنوعی برای نوشتن کد برای ما یا بهبود کدهای موجود (مخصوصاً کدهای قدیمی با توابعی که صدها خط کد را اجرا می‌کنند، تکیه کنیم: «شما آن را در یک مدل زبان بزرگ قرار می‌دهید، و با تضمین، خراب می‌شود. Tornhill اعلام می کند). در عوض، باید به دنبال راه‌های دیگری برای استفاده از هوش مصنوعی باشیم.

امروز چند نفر در فید ماستودون من توییت کردند؟

مردم بیش از همیشه اهمیت دارند

کلید این است که توسعه دهندگان را با هوش مصنوعی هماهنگ کنید، نه اینکه سعی کنید آنها را با هوش مصنوعی جایگزین کنید. Tornhill خاطرنشان می‌کند: «هرچه سریع‌تر بتوانیم کد جدید تولید کنیم، درک آن کد برای تیم سخت‌تر می‌شود. در طول مصاحبه، این موضوع مدام مطرح می شد. یعنی نیاز به درگیر نگه داشتن توسعه دهندگان هوشمند در فرآیند ارزیابی و تنظیم هوش مصنوعی. هر چقدر هم که توسعه‌دهندگان نگران باشند که خلاقیت‌های ربات‌های خود را در دست بگیرند، این اتفاق به این زودی‌ها رخ نخواهد داد.

در واقع، با توجه به افزایش استفاده از هوش مصنوعی، از بسیاری جهات، افراد مهمتر از همیشه هستند. اگرچه ممکن است وسوسه شوید که به هوش مصنوعی اجازه دهید توسعه شما را برای شما انجام دهد، واقعیت این است که نمی تواند. توسعه‌دهندگان قوی، همراه با کمک‌های سنتی، مانند ابزارهای لینتر، بررسی کد (برای حفظ آشنایی با کد)، و غیره، برای استفاده مؤثر از هوش مصنوعی ضروری هستند.

با توجه به تمایل ابزارهای هوش مصنوعی به سرعت بخشیدن به کد، چیزی که بیشتر از همه به آن نیاز داریم این است که کمی سرعت کار را کاهش دهیم. اکنون زمان بسیار خوبی است تا بفهمیم که هوش مصنوعی کجا می‌تواند به بهبود فرآیندهای گسسته در توسعه کد، تحت راهنمایی توسعه‌دهندگان با تجربه کمک کند.