پرش به محتوای اصلی

سال کدنویسی Vibe من

آتلانتیک۱۴۰۵ مهر ۲۰, دوشنبه، ساعت ۱۶:۴۱حدود 16 دقیقه مطالعه

من و خانواده‌ام از خوردن گهگاه گوشت‌های آهسته‌پخت خوشمزه لذت می‌بریم، اما هر بار که به یک باربیکیو سر می‌زنیم، نمی‌توانیم به یاد بیاوریم که آیا لوبیا و سالاد پیشنهادی را دوست داریم یا نه. برخی از لوبیاها شیرین هستند. بقیه تند هستند مقداری از آغوز بر پایه سرکه است. بقیه کرمی ما باید این را به نحوی پیگیری کنیم، همیشه می گوییم اما هرگز اذیت نمی کنیم. من باید یک برنامه بسازم، قبلا شوخی می کردم. اما این یک ایده مضحک بود. با تشکر از…

من و خانواده‌ام از خوردن گهگاه گوشت‌های آهسته‌پخت خوشمزه لذت می‌بریم، اما هر بار که به یک باربیکیو سر می‌زنیم، نمی‌توانیم به یاد بیاوریم که آیا لوبیا و سالاد پیشنهادی را دوست داریم یا نه. برخی از لوبیاها شیرین هستند. بقیه تند هستند مقداری از آغوز بر پایه سرکه است. بقیه کرمی ما باید این را به نحوی پیگیری کنیم، همیشه می گوییم اما هرگز اذیت نمی کنیم. من باید یک برنامه بسازم، قبلا شوخی می کردم. اما این یک ایده مضحک بود.

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

من استدلال کردم که مشکل ترجیح طرف‌های باربیکیو به عنوان یک مورد آزمایشی کامل عمل می‌کند: ساختن یک برنامه کاملا ویژه برای آیفون - من اسمش را Beanslaw - با ابزار باطنی که هیچ‌کس برای تجاری‌سازی آن زحمتی نمی‌کشد.

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

من حتی یک آموزش نصب هم ساختم. من آماده ارسال بودم.

عکس ها با حسن نیت نویسنده

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

[جاش تیرنجیل: راز درک هوش مصنوعی]

از آنجایی که هوش مصنوعی در نوشتن نرم افزار بسیار خوب است، تنها در یک ساعت یا بیشتر توانستم رتبه بندی های جامعه را اضافه کنم. اکنون Beanslaw کاری را انجام می دهد که دوست من انتظار دارد - به طور بالقوه میلیاردها کاربر را به هم متصل کند. اما انجام این کار همچنین باعث شد که یک اپلیکیشن منحصربه‌فرد راضی کند که به تنهایی من را به یک کاندید (در واقع ناامیدکننده) برای اقتصاد توجه نرم‌افزار راضی کند.

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

در اوایل دهه 1960، با الهام از مقاله 1945 وانوار بوش در اقیانوس اطلس «همانطور که ما فکر می کنیم»، یک فارغ التحصیل اخیر فلسفه کالج سوارثمور به نام تد نلسون، شروع به مفهوم سازی یک سیستم انتشار کامپیوتری برای همه دانش جهانی کرد که برای هرکسی قابل دسترسی است – کاری که او اصطلاح فرامتن را برای آن ابداع کرد. یک دهه بعد، در سال 1974، نلسون دیدگاه خود را در مورد قدرت پوپولیستی محاسباتی در مانیفست جزوه‌ای به نام ماشین‌های Computer Lib/Dream Machines گسترش داد.

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

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

آلن کی با الهام از Papert، Dynabook به سبک تبلت را تصور کرد، یک "کامپیوتر شخصی برای کودکان در تمام سنین". و استیو وزنیاک، که اولین اپل را طراحی کرد (و با همکاری استیو جابز کامپیوتر اپل را بنیان گذاشت)، مهارت‌های نرم‌افزاری ارزان و به اشتراک گذاشته شده عمومی را به عنوان راهی برای سرنگونی انحصار شرکت‌ها در محاسبات ارزشمند می‌دانست.

برای مدتی، آن دیدگاه آزادی خواهانه به واقعیت تبدیل شد. رایانه‌های شخصی اولیه مانند Apple II و Commodore 64 در یک خط فرمان راه‌اندازی می‌شدند که در آن کاربران می‌توانستند بلافاصله برنامه‌نویسی را به BASIC، یک زبان بصری، آغاز کنند. تبلیغات اولیه آنها را به صراحت به عنوان دستگاهی که مردم می توانستند خودشان برنامه ریزی کنند مطرح می کردند. مجلات کامپیوتری آن دوره کدهایی را منتشر می کردند که خوانندگان با دست در دستگاه های خود تایپ می کردند.

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

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

کامپیوترها که زمانی به عنوان ابزاری برای خودشکوفایی در نظر گرفته می شدند، تبدیل به ابزار شدند.

در دهه‌های 1980 و 1990، توانایی مردم عادی برای ساختن نرم‌افزار خودشان کاهش یافت. کاربران هایپرکارت پایگاه داده، کتاب آشپزی و بازی را روی مک های خود ساختند. کارمندان اداری با فضای خاکستری از ویژوال بیسیک برای ساختن برنامه های ویندوز برای خودکارسازی وظایف، اغلب برای خودشان، استفاده کردند. شبکه جهانی وب به مردم عادی اجازه می‌دهد تا وب‌سایت‌هایی را برای کل دنیا منتشر کنند، نه فقط برای خودشان، دوستانشان یا همکارهایشان.

در اواسط دهه 2000، اقتصاد وب 2.0 شروع به عقب انداختن باز بودن وب کرد و مردم را به استفاده از پلتفرم هایی مانند بلاگر، یوتیوب و فیسبوک سوق داد. کشیش بازگشته بود و غول های فناوری ثروتمند به عنوان اسقف آن خدمت می کردند.

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

ضربه زدن به هر نقطه از صفحه نمایش باعث خاموش شدن مجدد آن می شود. ساده به نظر می رسد، درست است؟

به جز، اپل به برنامه های شخص ثالث اجازه نمی دهد نوع اعلان های ارتعاشی مکرر را که برنامه تایمر «بومی» ویژه آن استفاده می کند، صادر کنند. مجبور شدم به یک اعلان تک وزوز بسنده کنم. این کار می کند - من هر روز از Taptimer استفاده می کنم - اما شرایط کاری که نرم افزار مجاز به انجام آن است توسط صاحبان پلتفرم هایی که مردم باید برای اجرای آن استفاده کنند تعیین می شود.

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

تجارت نرم افزار دو دهه است که آماتورها را از تولید نرم افزار بیرون می کشد و ما را مجبور می کند به جای آن از کالاهای خود استفاده کنیم.

وقتی برای اولین بار شروع به نوشتن برنامه های مک کردم، در اوایل دهه 1990، می توانستم یک برنامه را کامپایل کنم، آن را روی دیسک بگذارم و به یکی از دوستانم بدهم. اسناد اپل برای چگونگی انجام این کار در مجلدهای چاپی ارائه شد که می‌توانید از یک کتابفروشی خریداری کنید، و این در طول یک دهه تغییر چندانی نکرد. زمانی که به نوشتن Beanslaw نشستم، به یک اشتراک سالیانه 99 دلاری در برنامه توسعه‌دهنده اپل، آشنایی کافی با ابزارهای توسعه اپل برای درک نحوه استفاده از کد ChatGPT و تجربه کافی در انتشار نرم‌افزار نیاز داشتم تا نرم‌افزار حاصل را از رایانه‌ام خارج کنم و روی تلفن‌هایم نصب کنم.

من باید به اندازه کافی در مورد ساخت نرم افزار می دانستم که می توانستم استدلال کنم و با هوش مصنوعی در مورد چگونگی نزدیک شدن به وظایف خاص مذاکره کنم. برخی از این تلاش‌ها اصلا فنی نبودند، مانند ایجاد لیست سفیدی از مفاصل باربیکیو شناخته شده (Rendezvous در ممفیس، Pecan Lodge در دالاس) که برنامه همیشه نمایش می‌دهد. برخی دیگر نیاز به دانش بوروکراتیک عمیق تری از توسعه نرم افزار به عنوان یک عمل داشتند، مانند نحوه گنجاندن تصاویر رستوران از طریق یک سرویس پشتیبان ارائه شده توسط Yelp بدون صرف تصادفی هزاران دلار.

[ بخوانید: چقدر طول می کشد تا هوش مصنوعی همه چیز را هک کند؟ ]

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

سپس هوش مصنوعی با دادن کد به من اجرای آن را آسان کرد.

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

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

نامگذاری این فرآیند به کدنویسی لرزه‌ای - به‌گونه‌ای که گویی فقط یک درخواست تایپ می‌کنید، دست‌های خود را تکان می‌دهند و یک برنامه رایانه‌ای کامل و کارآمد دریافت می‌کنید، به معنای یک سوءتعبیر عمیق از آنچه در حال وقوع است است.

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

کار سطح پایین فقط در مواقع ضروری استفاده می شود – و اغلب فقط برای ایجاد ابزار یا زیرساخت برای تسهیل برنامه نویسی سطح بالا.

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

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

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

اما برای یک برنامه نویس، نتیجه و فرآیند به یکباره بهبود می یابد. هیچ چیز در مورد برنامه نویسی هوش مصنوعی شبیه سازش یا تقلب نیست. این فقط شبیه برنامه نویسی است.

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

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

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

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

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

بدون نیاز به برنامه نویسی

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

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

در هر یک از این موارد، اهداف زیبایی‌شناختی، فنی و نویسندگی من تکراری بود: من یک طرح را در نظر گرفتم، ChatGPT به من کمک کرد تا آن را اجرا کنم، و سپس نتایج را قضاوت کردم و روند را تکرار کردم.

متأسفانه، در طول سالی که برنامه نویسی را به طور جدی با هوش مصنوعی گذراندم، این الگوی خلاقیت جایگزین شد. وقتی سعی می کنم برای کدنویسی با ChatGPT شریک شوم، نرم افزار اکنون از من می خواهد که به جای آن از ابزارهای اتوماسیون آن استفاده کنم. ChatGPT انواع خاصی از ویرایش مستقیم فایل را ایجاد کرده است که به نظر من برای کارهای تکراری، سخت یا غیرممکن، مفید است. به نظر می رسد صنعت در کل اکنون فرض می کند که هدف نهایی یک برنامه نویس از قبل شناخته شده است و کار فقط شامل حرکت به سمت آن است: برای من یک بازی بسازید، یا یک وب سایت بسازید، یا یک برنامه تولید کنید.

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

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

حتی سرویس‌های هوش مصنوعی که من برای نوشتن نرم‌افزار استفاده می‌کنم به قدری تغییر می‌کنند که روش‌هایی که هفته گذشته برای ساختن چیزی استفاده کردم ممکن است هفته آینده با به‌روزرسانی Claude یا ChatGPT تغییر کند. به نظر می رسد که کل سازه بر روی یک صفحه یخی ساخته شده است.

[دیوید بروکس: هوش مصنوعی در حال حاضر معنای انسان بودن را تغییر داده است]

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

خواندن متن کامل در آتلانتیکبه زبان اصلی، در سایت ناشر باز می‌شود
متن اصلی (انگلیسی)

My Year of Vibe Coding

My family and I enjoy the occasional meal of delicious slow-cooked meat, but every time we visit a barbecue joint, we can’t remember whether we like the beans and slaw on offer. Some beans are sweet; others are spicy. Some slaw is vinegar based; others creamy. We should keep track of this somehow, we always say but then never bother. I should make an app, I used to joke. But that was a ridiculous idea. Thanks to…

همه‌ی اخبار سیاست