وائب کوڈنگ

تھمب نیل

وائب کوڈنگ کیا ہے؟

وائب کوڈنگ ایک مصنوعی ذہانت سے تقویت یافتہ پروگرامنگ کا طریقہ ہے جسے آندریج کارپاتھی نے 2024/2025 میں متعارف کرایا۔ وائب کوڈنگ کے ذریعے آپ قدرتی زبان کے پرامپٹس میں بیان کرتے ہیں کہ آپ کیا چاہتے ہیں، اور عموماً بڑے زبان کے ماڈلز (LLMs) آپ کے لیے زیادہ تر، اور اکثر تمام، قابلِ عمل کوڈ تیار کر دیتے ہیں۔ اگر آپ کے پاس وقت ہو تو رِک روبن کی جانب سے ڈھالے گئے وائب کوڈنگ کے فن کو ضرور دیکھیں تاکہ وائب کوڈنگ کے طریقے کے بارے میں مزید جان سکیں۔

اس نئے طریقے کا ایک بڑا فائدہ رسائی ہے، کیونکہ کوڈنگ کے تجربے کے بغیر لوگ بھی منصوبے بنا سکتے ہیں، جبکہ تجربہ کار ڈویلپرز نئے خیالات کو مکمل طور پر اختیار کرنے سے پہلے تیزی سے ان کا ابتدائی نمونہ تیار کر سکتے ہیں۔ یہ اسٹارٹ اپس کے لیے خاص طور پر مددگار ہے۔ اس کا نقصان یہ ہے کہ ڈویلپرز غالباً یہ پوری طرح نہیں سمجھ پائیں گے کہ تیار کردہ کوڈ کیسے کام کرتا ہے۔ چھوٹے ضمنی منصوبوں کے لیے یہ ٹھیک ہے، لیکن پیداوار کی سطح کے سافٹ ویئر کے لیے یہ طویل مدتی مسائل اور تکنیکی قرض کا باعث بن سکتا ہے۔

بہت سے ایسے ٹولز موجود ہیں جو وائب کوڈنگ کو زیادہ ہموار بناتے ہیں۔ Cursor IDE، Claude Code CLI، GitHub Copilot، Loveable، Replit، v0، اور دیگر آپ کو اپنے ماحول میں براہِ راست مصنوعی ذہانت کے ساتھ کام کرنے دیتے ہیں یا وائب کوڈنگ کے لیے مخصوص انٹرفیس فراہم کرتے ہیں۔ ذاتی طور پر، میں نے ان منصوبوں کے لیے زیادہ تر Cursor IDE اور Claude Code CLI استعمال کیے۔

لیکن بات یہ ہے۔ ان ٹولز اور ماڈلز کی قیمت ہوتی ہے۔ روایتی کوڈنگ میں آپ زیادہ تر اپنے وقت کی صورت میں ادائیگی کرتے ہیں۔ وائب کوڈنگ میں آپ اپنی جیب سے ادائیگی کرتے ہیں۔ اور اگر آپ کو معلوم نہ ہو کہ آپ کیا کر رہے ہیں، تو آپ اپنی جیب اور اپنے وقت، دونوں سے ادائیگی کر رہے ہوتے ہیں۔ اس صفحے پر موجود ہر منصوبے کو بنانے کی لاگت تقریباً $10 سے $20 تک ہے۔ اگر آپ بہت زیادہ تجربات کر رہے ہوں تو یہ رقم بڑھ جاتی ہے۔ میرا خیال ہے کہ جیسے جیسے یہ ماڈلز بہتر اور زیادہ مؤثر ہوتے جائیں گے، آخرکار لاگت کم ہو جائے گی۔ فی الحال، یہ بات اس وقت قابلِ غور ہے جب آپ فیصلہ کر رہے ہوں کہ آیا وائب کوڈنگ آپ کے منصوبے کے لیے موزوں ہے یا نہیں۔

یہ جاننے کے لیے کہ کیا کچھ ممکن ہے، میں نے خود وائب کوڈنگ آزمایا اور اس اصول کو حقیقی منصوبوں کے ذریعے دریافت کرنے کے لیے یہ صفحہ بنایا۔ میں صرف مصنوعات نہیں بنا رہا، بلکہ یہ آزما اور دکھا رہا ہوں کہ وائب کوڈنگ حقیقت میں کیا کچھ کر سکتی ہے۔ یہ صرف تفریح کے لیے ہے، لیکن اس سے ایک جھلک ملتی ہے کہ مستقبل میں کوڈنگ کیسی دکھائی دے سکتی ہے، کیونکہ یہ ماڈلز مسلسل بہتر ہوتے جا رہے ہیں۔

لامحدود بندر کا نظریہ

لکھاری

کیا آپ نے کبھی لامحدود بندر کے نظریے کے بارے میں سنا ہے؟ یہ ایک فلسفیانہ فکری تجربہ ہے جو کہتا ہے کہ اگر آپ لامحدود بندروں کو لامحدود ٹائپ رائٹرز اور لامحدود وقت دے دیں، تو بالآخر ان میں سے ایک صرف بے ترتیب طور پر کنجیوں کو دبا کر شیکسپیئر کی مکمل تخلیقات تیار کر دے گا۔

مضحکہ خیز لگتا ہے، ہے نا؟ لیکن دلچسپ بات یہ ہے۔ وائب کوڈنگ کسی حد تک ایسی ہی ہے، فرق صرف یہ ہے کہ بندروں کے بجائے ہمارے پاس مصنوعی ذہانت کے ماڈلز ہیں، ٹائپ رائٹرز کے بجائے ہمارے پاس پروگرامنگ زبانیں ہیں، اور شیکسپیئر کے بجائے ہمیں قابلِ عمل سافٹ ویئر مل رہا ہے۔

اس کے بارے میں سوچیں۔ بڑے زبان کے ماڈلز کو اربوں سطروں کے کوڈ، نمونوں اور مثالوں پر تربیت دی جاتی ہے۔ جب آپ کسی LLM کو پرامپٹ دیتے ہیں، تو وہ دراصل آپ کے مسئلے پر انسانی ڈویلپر کی طرح مرحلہ وار “غور” نہیں کر رہا ہوتا۔ اس کے بجائے، وہ تربیت کے دوران سیکھے گئے نمونوں کی بنیاد پر اگلے سب سے زیادہ ممکنہ ٹوکن کی پیش گوئی کر رہا ہوتا ہے۔ بنیادی طور پر، وہ شماریاتی طور پر درست معلوم ہونے والی چیز کی بنیاد پر کوڈ تیار کر کے دانش مندانہ اندازے لگا رہا ہوتا ہے۔

اور کسی نہ کسی طرح، اکثر اوقات یہ کام کر جاتا ہے۔ ماڈل ایسا کوڈ تیار کرتا ہے جو حقیقت میں مرتب ہوتا ہے، چلتا ہے، اور آپ کا مسئلہ حل کرتا ہے۔ یہ سمجھ بوجھ کے ذریعے نہیں، بلکہ انتہائی وسیع پیمانے پر احتمالی نمونوں کی مطابقت کے ذریعے ہوتا ہے۔ یہ ایسا ہے جیسے کائنات کے سب سے نفیس بے ترتیب متن تیار کرنے والے نے “درست” جواب تلاش کر لیا ہو۔ لیکن یہاں فرق رفتار کا ہے۔ ان بندروں کو لفظی لامحدود وقت درکار ہوتا۔ آپ کی مصنوعی ذہانت؟ چند سیکنڈ یا منٹ میں وہاں پہنچ جاتی ہے۔

لہٰذا ایک طرح سے، جب آپ وائب کوڈنگ استعمال کرتے ہیں، تو آپ لاکھوں سطروں کے کوڈ کے نمونوں کو، جو ایک ماڈل میں سمیٹے گئے ہیں، حل تیار کرنے کے لیے بروئے کار لا رہے ہوتے ہیں۔ یہ شعوری مسئلہ حل کرنا نہیں، بلکہ شماریاتی جادو ہے۔ اور یہی وجہ ہے کہ یہ اتنی طاقتور ہے اور، تسلیم کرنا ہوگا، یہی وجہ ہے کہ یہ سمجھنا اب بھی اہم ہے کہ کوڈ حقیقت میں کیا کرتا ہے۔

جواب سے زیادہ سوال اہم ہے

یہ ایک اہم بات ہے جسے اکثر نظرانداز کر دیا جاتا ہے۔ وائب کوڈنگ کا تعلق کوئی بھی جواب حاصل کرنے سے نہیں، بلکہ درست سوال پوچھنے سے ہے۔ کہکشاں کے سفرنامے کے رہنما کے ڈیپ تھاٹ سپر کمپیوٹر کے بارے میں سوچیں۔ اس نے زندگی، کائنات اور ہر چیز کے حتمی سوال کا جواب شمار کرنے میں لاکھوں سال صرف کیے، اور آخرکار آپ کو عدد 42 دیا۔ جواب تکنیکی طور پر درست تھا، لیکن بے کار تھا، کیونکہ اصل مسئلہ یہ طے کرنا تھا کہ ابتدا میں سوال کیا پوچھا جائے۔

وائب کوڈنگ بھی اسی طرح کام کرتی ہے۔ آپ کے پرامپٹس ہی سب کچھ ہیں، لیکن سیاق و سباق کا انتظام بھی اتنا ہی اہم ہے۔ ایک مبہم پرامپٹ آپ کو مبہم کوڈ دے گا، اور اگر آپ سیاق و سباق کے طور پر درست فائلیں، دستاویزات یا مثالیں فراہم نہ کریں تو ماڈل یہ نہیں سمجھ پائے گا کہ آپ کو حقیقت میں کیا درکار ہے۔ اگر آپ ایسے شخص ہیں جو کوڈنگ، فنِ تعمیر اور نظاموں کے ڈیزائن کو سمجھتا ہے، تو آپ تفصیلی پرامپٹس تیار کر سکتے ہیں اور درست سیاق و سباق منتخب کر کے LLM کو بہترین حل کی طرف رہنمائی کر سکتے ہیں۔ لیکن اگر آپ کو معلوم نہ ہو کہ کیا مانگنا ہے یا کون سا سیاق و سباق فراہم کرنا ہے، تو مصنوعی ذہانت کو بھی معلوم نہیں ہوگا۔

درحقیقت، یہی وجہ ہے کہ تجربہ کار ڈویلپرز کے لیے وائب کوڈنگ اتنی طاقتور ہے۔ ہم جانتے ہیں کہ اچھا کوڈ کیسا دکھائی دیتا ہے، ہم ممکنہ خامیوں کو سمجھتے ہیں، اور ہم ایسے پرامپٹس لکھ سکتے ہیں جو ماڈل کو ان خامیوں سے دور رکھتے ہیں۔ ایسے مبتدیوں کے لیے جن کا کوئی تکنیکی پس منظر نہیں، یہ ایک حقیقی حد بن جاتی ہے۔ ممکن ہے آپ کو قابلِ عمل کوڈ مل جائے، لیکن یہ سمجھے بغیر کہ کیا غلط ہوا یا اگلی بار کیا مانگنا ہے، آپ پھنس جاتے ہیں۔

جب وائب کوڈنگ کافی نہیں ہوتی

جدید ترین مصنوعی ذہانت کے ماڈلز متاثر کن ہیں، لیکن وہ ہر مسئلے کا یقینی حل نہیں ہیں۔ وائب کوڈنگ پیداوار میں کام کر سکتی ہے، لیکن صرف اس صورت میں جب آپ اس کے بارے میں سنجیدہ ہوں۔ آپ کو مضبوط یونٹ ٹیسٹس درکار ہیں۔ آپ کو اس بارے میں واضح مستند ذرائع درکار ہیں کہ آپ کے نظام کو کیا کرنا چاہیے۔ آپ کو یہ معلوم کرنا ہوگا کہ چیزیں کب خراب ہوتی ہیں یا اپنی اصل حالت سے کب ہٹتی ہیں۔ اور آپ کو ہیکر کی ذہنیت درکار ہے۔ روایتی دائرۂ کار سے باہر سوچیں اور اپنے وائب کوڈ شدہ منصوبے کو غیر متوقع طریقوں سے توڑنے کی کوشش کریں۔ آپ نے کن انتہائی صورتِ حال کو مدِنظر نہیں رکھا؟ سیکیورٹی کی کون سی کمزوریوں سے کوئی فائدہ اٹھا سکتا ہے؟ یہی چیز اس کوڈ کے درمیان فرق پیدا کرتی ہے جو محض کام کرتا ہے اور اس کوڈ کے درمیان جو حقیقتاً مضبوط ہے۔

لیکن بات یہ ہے۔ مصنوعی ذہانت آپ کی مالک نہیں ہے۔ آپ مصنوعی ذہانت کے مالک ہیں۔ جو کچھ یہ تیار کرے اسے بس قبول نہ کریں۔ اس کا جائزہ لیں۔ اسے آزمائیں۔ اسے توڑیں۔ اور سچ کہوں تو، آپ کے کوڈ بیس کے بعض حصوں کے لیے آپ کو پرانے طرز کی کوڈنگ کی طرف واپس جانا ہوگا۔ پوری توجہ مرکوز کریں، گہرائی سے سوچیں، اسے خود لکھیں۔ وائب کوڈنگ رفتار بڑھاتی ہے، لیکن جب معاملہ اہم ہو تو یہ حقیقی پروگرامنگ کا متبادل نہیں ہے۔

میں نے ایک اور بات سیکھی ہے۔ کبھی کبھی آپ کو مصنوعی ذہانت کے ساتھ ایک سیشن ختم کر کے نیا سیشن شروع کرنے کی ضرورت ہوتی ہے۔ جیسے جیسے آپ کی گفتگو کی تاریخ بڑی سے بڑی ہوتی جاتی ہے، ماڈل کی کارکردگی گرتی جاتی ہے۔ یہ زیادہ غلطیاں کرتا ہے، کم مربوط کوڈ تیار کرتا ہے، اور زیادہ کثرت سے خیالی باتیں گھڑنے لگتا ہے۔ اگر آپ اسے محسوس نہ کریں اور رکیں نہیں، تو یہ غلطیاں ایک دوسرے پر جمع ہوتی جاتی ہیں، جس سے حالات بتدریج بدتر ہوتے جاتے ہیں۔ یہ ایسے دستاویز کو پڑھنے کی کوشش کرنے جیسا ہے جس کی بار بار نقل کی گئی ہو۔ نئے سرے سے آغاز کرنے سے چیزیں صاف اور واضح رہتی ہیں۔

وائب کوڈ شدہ منصوبے

ذیل میں دو منصوبے، stairs (ریپو) اور transcendental (ریپو)، موجود ہیں جنہیں میں نے وائب کوڈنگ کے طریقۂ کار کو استعمال کرتے ہوئے بنایا۔ زیادہ تر پرامپٹس سے تیار کیے گئے، جبکہ دستی کام سیاق و سباق فراہم کرنے، خرابیوں کو درست کرنے، اور GitLab صفحات پر تعینات کرنے تک محدود رہا۔ یہ تفریحی جامد ویب سائٹ کے تجربات ہیں جو دکھاتے ہیں کہ جب آپ وائب کوڈنگ کے ذریعے تخلیقی خیالات کو کوڈ کے ساتھ ملاتے ہیں تو کیا کچھ ممکن ہے۔ دونوں GitLab پر میزبانی کیے گئے ہیں۔

منصوبے دیکھیں

Stairs

Transcendental