وایب کدینگ (Vibe Coding) روشی نوین با کمک هوش مصنوعی

وایب کدینگ (Vibe Coding) انقلابی در برنامه‌نویسی با هوش مصنوعی

با گسترش هوش مصنوعی، وایب کدینگ یا کدنویسی حسی نیز بین علاقه‌مندان رواج زیادی پیدا کرده است. در تاریخ 13 بهمن 1403، آندری کارپاتی، دانشمند کامپیوتر و یکی از بنیانگذاران OpenAI، توییتی منتشر کرد که عبارت جدیدی را وارد آگاهی جمعی اینترنت کرد. او در این توییت اعلام کرد که هنگام برنامه‌نویسی با کمک هوش مصنوعی، «کاملاً تسلیم حس و حال» شده است.

البته این توییت باعث ایجاد یک جنگ لفظی شد، زیرا X (توییتر سابق) این‌گونه کار میکند، به خصوص تحت مدیریت فعلی. اما این توییت برای بسیاری قابل لمس بود، زیرا به طور کامل نحوه استفاده از هوش مصنوعی برای کدنویسی را توصیف میکند.

برنامه‌نویسی همیشه مورد علاقه بوده، زیرا کامپیوترها همیشه مورد توجه بوده‌اند. در دوران نوجوانی وب‌سایت‌هایی با HTML ساخته میشد (که بله، در GeoCities میزبانی میشدند) و از آن زمان گه‌گاه در پایتون نیز دستی برده شده است.

با این حال، هیچ‌کدام از پروژه‌ها خیلی پیش نرفتند و به غیر از وب‌سایت‌های اولیه، هرگز چیز مفیدی ساخته نشد. تلاش‌ها همگی از یک الگوی آشنا پیروی میکردند: تمرکز بر یک منبع خاص – مانند یک کتاب O’Reilly یا یک دوره آنلاین – و شروع با اشتیاق فراوان، اما وقتی مشخص میشد که ماه‌ها یا سال‌ها با ایجاد هر چیز نسبتاً مفیدی فاصله وجود دارد، کار رها میشد.

این وضعیت در اواخر سال 1403 تغییر کرد، زمانی که ناامیدی عمومی از وردپرس، که برای وب‌سایت شخصی استفاده میشد، غلبه کرد. در یک لحظه عصبانیت، محتوای وب‌سایت به همراه یک اسکرین‌شات از آن در Claude 3.5 Sonnet قرار داده شد و از هوش مصنوعی خواسته شد که وب‌سایت را با HTML، CSS و جاوااسکریپت بازسازی کند.

با کمال تعجب، Claude 3.5 یک وب‌سایت کاربردی تولید کرد. عالی نبود، اما پس از چند ساعت کار با کلاد، در نهایت به وب‌سایتی رسید که حتی از ورژن وردپرس قبلی هم بیشتر مورد پسند بود.

رویکرد دقیقاً همان چیزی بود که کارپاتی توصیف کرد. کد خوانده نشد و واقعاً تلاشی برای فهمیدن آن صورت نگرفت (اگرچه مجبور شد کمی در مورد نحوه کار چرخ فلک مقالات ویژه فکر شود). گذشته از آن، فقط به کلاد گفته شد چه کار کند، نتایج در VSCode کپی و پیست شد، فایل ذخیره شد و مرورگر دوباره بارگذاری شد تا دیده شود چه چیزی تغییر کرده است. و جواب داد.

اما مهم‌ترین بخش؟ این کار لذت‌بخش بود! آنقدر لذت‌بخش که از آن زمان تاکنون چندین پروژه کدنویسی دیگر نیز امتحان شده است. یک ابزار آنلاین برای پیگیری ابتکار عمل و پرتاب تاس هنگام DMing بازی‌های نقش‌آفرینی رومیزی ساخته شد، ابزار دیگری برای ساده‌سازی پرتاب تاس در Battletech ساخته شد، و در حال حاضر مشغول ساخت یک بازی پازلی برای کنسول بازی مجازی Pico8 است.

همچنین از هوش مصنوعی برای راهنمایی در راه‌اندازی ابزارهایی که نیاز به کمی دقت دارند، مانند مدل تبدیل گفتار به متن Whisper OpenAI، استفاده شد.

شایان ذکر است که هر سه پروژه به زبان‌های برنامه‌نویسی مختلف – HTML/JavaScript، پایتون و Lua – بودند که حتی از راه دور هم در آن‌ها مهارت وجود نداشت. همچنین در C نیز دستی برده شد، زیرا قبل از اینکه تصمیم گرفته شود برای نیازهای موجود بیش از حد بزرگ است و به Pico8 تغییر مسیر داده شود، شروع به ساخت بازی پازلی در Unity شد. همچنین با تبدیل ابزار RPG رومیزی به یک برنامه ویندوز بازی شد قبل از اینکه تصمیم گرفته شود این کار مفید نیست.

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

کدنویسی حسی کارپاتی سریع، سرگرم‌کننده و قابل دسترس است، اما دقیق، جزئی‌نگر یا محتاطانه نیست. کدی که توسط هوش مصنوعی نوشته میشود اغلب کار میکند، اما میتواند حاوی نقص‌هایی باشد که بلافاصله آشکار نیستند – و این سوال واضح را مطرح میکند: یک برنامه‌نویس نادان چگونه میتواند اشکالات و نقص‌های امنیتی را در کد تولید شده توسط هوش مصنوعی تشخیص دهد؟

پاسخ ساده این است… نمیتوانند.

چالش‌ها و انتقادات

به عنوان مثال، لئونل آسِوِدو – که بیشتر با نام «لئو» شناخته میشود – در مورد تجربه خود در کدنویسی حسی یک استارتاپ SaaS پستی منتشر کرد، اما در نهایت با مشکلات بزرگی مانند کلیدهای API ناامن مواجه شد. این موضوع منجر به صدها ویدیو و پست در شبکه‌های اجتماعی شد که در آن سادگی لئو مورد تمسخر قرار گرفت.

برای روشن شدن، همدردی زیادی با لئو وجود ندارد. او از رسانه‌های اجتماعی برای تبلیغ کسب‌وکار خود با پست‌هایی استفاده کرد که به وضوح برای افزایش تعامل ساخته شده بودند. و خب، این‌طوری است که دنبال کردن نفوذ در رسانه‌های اجتماعی کار میکند. گاهی اوقات فرد قهرمان است و گاهی اوقات فرد شرور است. (همانطور که پیش‌بینی میشد، لئو در حال حاضر در حال تولید محتوا در مورد «بازسازی SaaS خود در 30 روز» است.)

با این حال، این سوال مطرح میشود که مشکلات او قرار است چه چیزی را ثابت کند. آیا کدنویسی حسی یک SaaS و رفتن مستقیم به تولید احمقانه است؟ مطمئناً. اما آیا اکثر مردم در حال کدنویسی حسی یک استارتاپ SaaS هستند و آن را مانند نوزادی در یک تبلیغ Xbox به دنیا پرتاب میکنند؟ مسلماً نه.

واقعیت بسیار عملی‌تر است. برخی از افراد، مانند آنچه گفته شد، کدنویسی حسی را به عنوان یک راه سرگرم‌کننده برای مقابله با پروژه‌های ساده‌ای میبینند که قبلاً از دسترس خارج بودند. برخی دیگر، از جمله بسیاری از مهندسان نرم‌افزار، از آن به عنوان راهی برای ساخت نمونه‌های اولیه، نشان دادن اثبات مفهوم و – بله! – یادگیری استفاده خواهند کرد.

آینده برنامه‌نویسی

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

فردی در یک شهر کوچک در غرب میدرنج بزرگ شد. دبیرستان آنقدر کوچک بود که حتی روزنامه مدرسه هم نداشتند. سپس به دانشگاه رفت و مدرک… در رشته ادبیات انگلیسی گرفت. نه روزنامه‌نگاری یا ارتباطات. هرگز برای روزنامه کالج هم نوشته نشد. سپس از کالج بدون هیچ گونه ارتباط مفید یا تجربه کاری فارغ‌التحصیل شد.

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

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

این افراد اشتباه خواهند کرد. بسیاری از کدهای تولید شده بد، یا حداقل ناشیانه خواهند بود. افراد پروژه‌های خود را از دست خواهند داد زیرا با یک باگ مواجه میشوند که نمیتوانند آن را برطرف کند. کد تولید شده توسط هوش مصنوعی در پروژه‌ها به اندازه‌ای است که یک مهندس نرم‌افزار ارشد را کور کند، مطمئناً.

اما اگر برنامه‌نویسی را کمی گسترده‌تر به روی افرادی باز کند که در غیر این صورت حوصله صرف شش ماه خواندن یک کتاب قطور O’Reilly را ندارند تا فقط یک برنامه پایتون نیمه مناسب را اجرا کنند، خب، به نظر میرسد که این یک برد است.