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

تصویر بندانگشتی

برنامه‌نویسی وایب چیست؟

برنامه‌نویسی وایب یک روش برنامه‌نویسی مبتنی بر هوش مصنوعی است که توسط آندری کارپاتی در سال‌های 2024/2025 معرفی شد. با برنامه‌نویسی وایب، شما آنچه را می‌خواهید در قالب پرامپت‌های زبان طبیعی توصیف می‌کنید و معمولاً مدل‌های زبانی بزرگ (LLMها) بیشترِ کدِ کارا، و اغلب همهٔ آن را، برای شما تولید می‌کنند. اگر وقت دارید، برای آشنایی بیشتر با شیوهٔ برنامه‌نویسی وایب هنر برنامه‌نویسی وایب را که توسط ریک روبین اقتباس شده است، ببینید.

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

ابزارهای زیادی در آن بیرون وجود دارند که برنامه‌نویسی وایب را روان‌تر می‌کنند. Cursor IDE، Claude Code CLI، GitHub Copilot، Loveable، Replit، v0، و دیگران به شما اجازه می‌دهند مستقیماً با هوش مصنوعی در محیط خود کار کنید یا رابط‌های اختصاصی برای برنامه‌نویسی وایب فراهم می‌کنند. شخصاً، من برای این پروژه‌ها بیشتر به Cursor IDE و Claude Code CLI پایبند ماندم.

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

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

قضیهٔ میمونِ بی‌نهایت

نویسنده

آیا تا به حال دربارهٔ قضیهٔ میمونِ بی‌نهایت شنیده‌اید؟ این یک آزمایش فکری فلسفی است که می‌گوید اگر به میمون‌های بی‌نهایت، ماشین‌تحریرهای بی‌نهایت و زمانِ بی‌نهایت بدهید، در نهایت یکی از آن‌ها تنها با کوبیدن تصادفی بر کلیدها، آثار کامل شکسپیر را تولید خواهد کرد.

مسخره به نظر می‌رسد، درست است؟ اما نکتهٔ عجیب اینجاست. برنامه‌نویسی وایب تا حدی شبیه به آن است، با این تفاوت که به‌جای میمون‌ها، مدل‌های هوش مصنوعی داریم؛ به‌جای ماشین‌تحریرها، زبان‌های برنامه‌نویسی داریم؛ و به‌جای شکسپیر، نرم‌افزارِ کارا دریافت می‌کنیم.

به این فکر کنید. مدل‌های زبانی بزرگ بر روی میلیاردها خط کد، الگوها و نمونه‌ها آموزش دیده‌اند. وقتی شما به یک LLM یک پرامپت می‌دهید، در واقع مانند یک توسعه‌دهندهٔ انسانی که گام‌به‌گام دربارهٔ مسئله فکر می‌کند، واقعاً در حال «فکر کردن» نیست. در عوض، بر اساس الگوهایی که در طول آموزش یاد گرفته است، محتمل‌ترین توکن بعدی را پیش‌بینی می‌کند. در اصل، با تولید کد بر پایهٔ آنچه از نظر آماری درست به نظر می‌رسد، دارد حدس‌های آگاهانه می‌زند.

و somehow، بیشتر اوقات، کار می‌کند. مدل کدی خروجی می‌دهد که واقعاً کامپایل می‌شود، اجرا می‌شود و مسئلهٔ شما را حل می‌کند. نه از طریق درک، بلکه از طریق تطبیق الگوهای احتمالاتی در مقیاسی کاملاً عظیم. انگار پیشرفته‌ترین تولیدکنندهٔ متن تصادفیِ جهان، پاسخ «درست» را پیدا کرده است. اما اینجا تفاوت، سرعت است. آن میمون‌ها به بی‌نهایتِ واقعی نیاز داشتند. هوش مصنوعی شما؟ در چند ثانیه یا چند دقیقه به آن می‌رسد.

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

پرسش مهم‌تر از پاسخ است

این یک نکتهٔ مهم است که اغلب نادیده گرفته می‌شود. برنامه‌نویسی وایب دربارهٔ گرفتن هر پاسخی نیست، بلکه دربارهٔ پرسیدنِ سؤال درست است. به ابررایانهٔ اندیشهٔ عمیق از راهنمای مسافران کهکشان فکر کنید. این ابررایانه میلیون‌ها سال صرف محاسبهٔ پاسخِ پرسش نهاییِ زندگی، جهان و همه‌چیز کرد، اما در نهایت فقط عدد 42 را به شما داد. پاسخ از نظر فنی درست بود، اما بی‌فایده، چون مسئلهٔ واقعی این بود که در وهلهٔ اول باید فهمید چه سؤالی باید پرسیده شود.

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

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

وقتی برنامه‌نویسی وایب کافی نیست

جدیدترین مدل‌های هوش مصنوعی چشمگیر هستند، اما گلولهٔ نقره‌ای نیستند. برنامه‌نویسی وایب می‌تواند در تولید استفاده شود، اما فقط اگر دربارهٔ آن جدی باشید. شما به آزمون‌های واحدِ نیرومند نیاز دارید. شما به منابع حقیقتِ روشن برای این‌که سیستم‌تان باید چه کند نیاز دارید. شما باید زمانی را که چیزها می‌شکنند یا از مسیر منحرف می‌شوند، تشخیص دهید. و شما به ذهنیت هکر نیاز دارید. خارج از چارچوب فکر کنید و سعی کنید پروژهٔ وایب‌کدشدهٔ خود را به روش‌های غیرمنتظره بشکنید. چه موارد لبه‌ای را در نظر نگرفته‌اید؟ چه آسیب‌پذیری‌های امنیتی‌ای را ممکن است کسی سوءاستفاده کند؟ این همان چیزی است که کدی که فقط کار می‌کند را از کدی که واقعاً نیرومند است جدا می‌کند.

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

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

پروژه‌های وایب‌کدشده

در زیر دو پروژه، stairs (مخزن) و transcendental (مخزن)، را می‌بینید که با روش‌شناسی برنامه‌نویسی وایب ساخته‌ام. بیشترشان از پرامپت‌ها تولید شده‌اند و کارِ دستی به ارائهٔ زمینه، اشکال‌زدایی و استقرار در GitLab Pages محدود بوده است. این‌ها آزمایش‌های سرگرم‌کنندهٔ وب‌سایت استاتیک هستند که نشان می‌دهند وقتی ایده‌های خلاقانه را با کد از طریق برنامه‌نویسی وایب ترکیب می‌کنید، چه چیزهایی ممکن می‌شود. هر دو در GitLab میزبانی می‌شوند.

مشاهدهٔ پروژه‌ها

پله‌ها

متعالی