من کدنویس نیستم. من نمی توانم یک خط پایتون، جاوا اسکریپت یا ++C بنویسم. به جز یک دوره کوتاه در دوران نوجوانی که وب سایت هایی ساختم و با انیمیشن های فلش ور رفتم، هرگز یک مهندس نرم افزار نبوده ام و جاه طلبی های دست کشیدن از روزنامه نگاری برای یک حرفه در صنعت فناوری را ندارم.
با این حال، در چند ماه گذشته، من یک طوفان کدنویسی به پا کرده ام.
در میان ساخته های من: ابزاری که پادکست های طولانی را رونویسی و خلاصه می کند، ابزاری برای سازماندهی نشانک های رسانه های اجتماعی من در یک پایگاه داده قابل جستجو، وب سایتی که به من می گوید آیا یک قطعه مبلمان در صندوق عقب ماشین من جا می شود یا خیر و برنامه ای به نام LunchBox Buddy که محتویات یخچال من را تجزیه و تحلیل می کند و به من کمک می کند تصمیم بگیرم چه چیزی را برای ناهار مدرسه پسرم بسته بندی کنم.
این خلاقیت ها همه به لطف هوش مصنوعی و یک روند جدید هوش مصنوعی معروف به "vibecoding" امکان پذیر است.
Vibecoding، اصطلاحی که توسط محقق هوش مصنوعی Andrej Karpathy رایج شد، مخفف مفیدی برای روشی است که ابزارهای هوش مصنوعی امروزی به حتی سرگرمی های غیر فنی اجازه می دهند تا برنامه ها و وب سایت های کاملاً کاربردی بسازند، فقط با تایپ دستورات در یک جعبه متن. برای vibecode نیازی نیست که بدانید چگونه کد بزنید - فقط داشتن یک ایده و کمی صبر معمولاً کافی است.
آقای کارپاتی در این ماه نوشت: «این واقعاً کدنویسی نیست.» «من فقط چیزهایی را می بینم، چیزهایی می گویم، چیزهایی را اجرا می کنم و چیزهایی را کپی پیست می کنم و بیشتر اوقات کار می کند.»
آزمایشهای vibecoding من با هدف ساختن چیزی است که من آن را «نرمافزار برای یک نفر» مینامم - برنامههای کوچک و سفارشی که مشکلات خاصی را در زندگی من حل میکنند. اینها از آن دسته ابزارهایی نیستند که یک شرکت بزرگ فناوری می سازد. هیچ بازار واقعی برای آنها وجود ندارد، ویژگی های آنها محدود است و برخی از آنها فقط تا حدی کار می کنند.
اما ساختن نرم افزار به این روش - توصیف یک مشکل در یک یا دو جمله، سپس تماشای یک مدل قدرتمند هوش مصنوعی که برای ساختن یک ابزار سفارشی برای حل آن به کار می رود - تجربه ای حیرت انگیز است. این احساس سرگیجه هوش مصنوعی را ایجاد می کند، شبیه به آنچه که پس از استفاده از ChatGPT برای اولین بار احساس کردم. و این بهترین راهی است که من برای نشان دادن تواناییهای مدلهای هوش مصنوعی امروزی به شکاکان پیدا کردهام، که اکنون میتوانند بخشهای بزرگی از برنامهنویسی کامپیوتری پایه را خودکار کنند و به زودی قادر به انجام کارهای مشابهی در زمینههای دیگر خواهند بود.
ابزارهای کدنویسی هوش مصنوعی سال هاست که وجود داشته اند. ابزارهای قبلی مانند GitHub Copilot برای کمک به کدنویسان حرفه ای برای کار سریعتر طراحی شده بودند، تا حدی با تمام کردن خطوط کد خود به همان روشی که ChatGPT یک جمله را کامل می کند. برای بهره مندی بیشتر از آنها، هنوز باید نحوه کدنویسی را می دانستید و در مواقعی که هوش مصنوعی گیر می کرد، وارد عمل می شدید.
اما در یک یا دو سال گذشته، ابزارهای جدیدی ساخته شده اند تا از مدل های قدرتمندتر هوش مصنوعی استفاده کنند که حتی به تازه کارها امکان می دهد مانند حرفه ای ها برنامه نویسی کنند.
این ابزارها، که شامل Cursor، Replit، Bolt و Lovable هستند، همگی به روشهای مشابهی کار میکنند. با توجه به درخواست کاربر، ابزار یک طراحی ارائه می دهد، بهترین بسته های نرم افزاری و زبان های برنامه نویسی را برای استفاده تصمیم می گیرد و شروع به ساخت یک محصول می کند. بیشتر محصولات استفاده رایگان محدودی را مجاز می دانند، با سطوح پولی که ویژگی های بهتری را باز می کنند و امکان ساخت چیزهای بیشتری را فراهم می کنند.
برای یک غیر برنامه نویس، vibecoding می تواند مانند جادوگری به نظر برسد. پس از تایپ درخواست خود، خطوط مرموز کد به سرعت عبور می کنند و چند ثانیه بعد، اگر همه چیز به خوبی پیش برود، یک نمونه اولیه کارآمد ظاهر می شود. کاربران می توانند تغییرات و اصلاحاتی را پیشنهاد دهند و هنگامی که از آن راضی هستند، می توانند محصول جدید خود را در وب مستقر کنند یا آن را روی رایانه های خود اجرا کنند. این فرآیند بسته به پیچیدگی پروژه می تواند فقط چند دقیقه یا تا چند ساعت طول بکشد.
در اینجا چیزی است که به نظر می رسید وقتی از Bolt خواستم برنامه ای برای من بسازد که بتواند به من در بسته بندی ناهار مدرسه برای پسرم کمک کند، بر اساس یک عکس آپلود شده از محتویات یخچال من:
این برنامه ابتدا وظیفه را تجزیه و تحلیل کرد و آن را به اجزای سازنده تقسیم کرد. سپس شروع به کار کرد. یک رابط وب اولیه ایجاد کرد، یک ابزار تشخیص تصویر برای شناسایی غذاها در یخچال من انتخاب کرد و الگوریتمی برای توصیه وعده های غذایی بر اساس آن موارد ایجاد کرد.
اگر هوش مصنوعی از من می خواست که تصمیمی بگیرم - به عنوان مثال، اینکه آیا می خواهم برنامه حقایق تغذیه ای غذاهایی را که توصیه می کند فهرست کند یا خیر - چندین گزینه را به من پیشنهاد می کرد. سپس می رفت و کد بیشتری می زد. وقتی به مانعی برخورد می کرد، سعی می کرد کد خود را اشکال زدایی کند، یا به مرحله قبل از گیر افتادن برمی گشت و روش دیگری را امتحان می کرد.

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

همه آزمایشهای vibecoding من موفقیتآمیز نبودهاند. من هفته هاست که تلاش می کنم تا یک ابزار "خلبان خودکار صندوق ورودی" بسازم که بتواند به طور خودکار به ایمیل های من با سبک نوشتاری من پاسخ دهد. من هنگام تلاش برای ادغام گردشهای کاری هوش مصنوعی در برنامههایی مانند Google Photos و iOS Voice Memos، که برای بازی خوب با افزونههای شخص ثالث طراحی نشدهاند، با موانعی روبرو شدهام.
و البته، هوش مصنوعی گهگاه اشتباه می کند. یک بار، وقتی سعی کردم یک وب سایت برای یک فروشگاه لاستیک در محله خود بسازم، هوش مصنوعی نظرات جعلی را از صفحه Yelp فروشگاه ساخت و آنها را به یک صفحه توصیفات اضافه کرد. بار دیگر، وقتی سعی کردم یک داستان طولانی که نوشته بودم را به یک وب سایت تعاملی تبدیل کنم، هوش مصنوعی حدود نیمی از متن را گنجاند و نیمی دیگر را حذف کرد.
به عبارت دیگر، vibecoding هنوز از داشتن انسان هایی که بر ربات ها نظارت می کنند یا حداقل در نزدیکی آنها معلق هستند، سود می برد. و احتمالاً برای پروژه های سرگرمی، نه وظایف ضروری بهترین است.
این ممکن است برای مدت طولانی درست نباشد. بسیاری از شرکت های هوش مصنوعی روی عوامل مهندسی نرم افزاری کار می کنند که می توانند به طور کامل جایگزین برنامه نویسان انسانی شوند. در حال حاضر، هوش مصنوعی در حال دستیابی به نمرات کلاس جهانی در آزمون های برنامه نویسی رقابتی است و چندین شرکت بزرگ فناوری، از جمله گوگل، بخش بزرگی از کار مهندسی خود را به سیستم های هوش مصنوعی برون سپاری کرده اند. (سوندار پیچای، مدیر اجرایی گوگل، به تازگی گفته است که کد تولید شده توسط هوش مصنوعی بیش از یک چهارم کل کد جدید مستقر شده در گوگل را تشکیل می دهد.)
اگر من یک برنامه نویس جوان بودم - نوعی که به نظر می رسد هوش مصنوعی احتمالاً جایگزین آن شود - ممکن بود در مورد چشم انداز شغلی خود وحشت کنم. اما من فقط مردی هستم که دوست دارم دستکاری کنم و ابزارهایی بسازم که زندگی من را به روش های کوچک بهبود بخشد. و vibecoding - یا کدنویسی واقعی - یکی از زمینه هایی است که هوش مصنوعی به طور غیرقابل انکاری در حال بهبود است.
از زمان صحبت در مورد تجربه vibecoding خود در پادکست خود در هفته گذشته، از ده ها نفر دیگر شنیده ام که ابزارهای خود را با کمک هوش مصنوعی ساخته اند. همکاران در مورد برنامه های تغذیه ای که برای کمک به پایبندی به رژیم غذایی خود ساخته اند یا ابزارهایی که برای خلاصه کردن خبرنامه های ایمیلی که دریافت می کنند استفاده می کنند، به من گفته اند. خوانندگان وب سایت هایی را ارسال کرده اند که برای پیگیری قیمت تخم مرغ یا خراشیدن لیست های Zillow در لس آنجلس برای کشف موارد گران فروشی اجاره پس از آتش سوزی Palisades ساخته اند.
تعداد کمی از این ابزارها به خودی خود در حال تغییر جهان هستند. نکته جدید و قابل توجه این است که با چند ضربه زدن به کلید، آماتورها اکنون می توانند محصولاتی بسازند که قبلاً به تیم هایی از مهندسان نیاز داشت.
من در مورد هوش مصنوعی پولیانایی نیستم یا نسبت به تأثیراتی که برنامه های کدنویسی هوش مصنوعی می توانند بر جامعه داشته باشند اگر به بهبود خود ادامه دهند، نابینا نیستم. من فکر می کنم این امکان وجود دارد که یک هوش مصنوعی که ساخت نرم افزارهای مفید را خودکار می کند، بتواند ایجاد کد مخرب را نیز خودکار کند یا حتی منجر به حملات سایبری خودمختار شود. و من نگران این هستم که مهندسی نرم افزار فقط اولین حرفه ای است که تحت تأثیرات جایگزینی نیروی کار ابزارهای هوش مصنوعی قرار می گیرد.
اما در حال حاضر، ساختن برنامهها برای خودکارسازی وظایف آزاردهنده یا وقتگیر در زندگیام به اندازه هر کاربرد دیگری از هوش مصنوعی خوب به نظر میرسد. بنابراین من به vibecoding ادامه خواهم داد - حداقل تا زمانی که فرزندم بتواند ناهار خود را بسته بندی کند.