ভাইব কোডিং
ভাইব কোডিং কী?
ভাইব কোডিং হল একটি এআই-চালিত প্রোগ্রামিং পদ্ধতি যা ২০২৪/২০২৫ সালে Andrej Karpathy দ্বারা পরিচিত করা হয়। ভাইব কোডিংয়ের মাধ্যমে, আপনি যে কাজটি চান তা প্রাকৃতিক ভাষার প্রম্পটগুলিতে বর্ণনা করেন এবং সাধারণত বৃহৎ ভাষার মডেল (LLMs) আপনার জন্য বেশিরভাগ, প্রায়ই সমস্ত, কাজ করা কোড জেনারেট করে। যদি আপনার সময় থাকে, তাহলে Rick Rubin দ্বারা অভিযোজিত Art of Vibe Coding দেখুন যাতে ভাইব কোডিংয়ের পথ সম্পর্কে আরও জানা যায়।
এই নতুন পদ্ধতির একটি বড় সুবিধা হল অ্যাক্সেসযোগ্যতা—কারণ কোনো কোডিং অভিজ্ঞতা না থাকা মানুষগুলিও প্রজেক্ট তৈরি করতে পারেন, আর অভিজ্ঞ ডেভেলপাররা দ্রুত নতুন ধারণার প্রোটোটাইপ তৈরি করতে পারেন পূর্ণভাবে এগুলোর প্রতি প্রতিশ্রুতিবদ্ধ হওয়ার আগে। এটি বিশেষভাবে স্টার্টআপগুলোর জন্য সহায়ক। সমস্যা হল যে ডেভেলপাররা সম্ভবত জেনারেটেড কোডটি সম্পূর্ণভাবে বুঝবে না। ছোট সাইড প্রজেক্টের জন্য এটি ঠিক আছে, কিন্তু প্রোডাকশন-স্তরের সফটওয়্যারের জন্য এটি দীর্ঘমেয়াদী সমস্যাগুলো এবং টেকনিক্যাল ডেব্টের দিকে নিয়ে যেতে পারে।
বহু ধরনের টুল আছে যা ভাইব কোডিংকে মসৃণ করে। কার্সর আইডিই, Claude Code CLI, গিটহাব কপাইলট, লাভএবল, রেপলিট, v0, এবং অন্যানায় আপনার পরিবেশে সরাসরি AI-এর সাথে কাজ করতে বা ভাইব কোডিংয়ের জন্য নিবেদিত ইন্টারফেস প্রদান করে। ব্যক্তিগতভাবে, আমি এসব প্রজেক্টের জন্য প্রধানত কার্সর আইডিই এবং Claude Code CLI ব্যবহার করেছি।
তবে কথা হচ্ছে। এই টুল এবং মডেলগুলোর খরচ আছে। traditionelle কোডিংয়ে আপনি বেশিরভাগ সময় আপনার সময় দিয়ে অর্থ প্রদান করছেন। ভাইব কোডিংয়ে, আপনি আপনার পয়সা দিয়ে অর্থ প্রদান করছেন। এবং যদি আপনি জানেন না আপনি কী করছেন, আপনি আপনার পয়সা এবং আপনার সময়—দুটোরই—দিয়ে অর্থ প্রদান করবেন। এই পৃষ্ঠায় প্রতিটি প্রজেক্ট তৈরি করতে গড়ে $10 থেকে $20 পর্যন্ত খরচ হয়েছে। যদি আপনি প্রচুর পরীক্ষা-নিরীক্ষা করেন, এটি জমে যায়। আমি মনে করি যেহেতু এই মডেলগুলি উন্নত হচ্ছে এবং আরও দক্ষ হচ্ছে, খরচ শেষ পর্যন্ত কমে আসবে। আপাতত, যখন সিদ্ধান্ত নিচ্ছেন যে ভাইব কোডিং আপনার প্রজেক্টের জন্য উপযুক্ত কিনা, তখন এটি বিবেচ্য একটি কারণ।
কি সম্ভব তা নিয়ে কৌতূহলী হয়ে আমি নিজে ভাইব কোডিং ট্রাই করেছি এবং প্রকল্পগুলোর মাধ্যমে এই নীতিটি পরীক্ষা করার জন্য এই পেজটি তৈরি করেছি। আমি শুধু প্রোডাক্ট তৈরি করছি না, আমি পরীক্ষা করছি এবং দেখাচ্ছি ভাইব কোডিং আসলে কী করতে পারে। এটা কেবল মজার জন্য, কিন্তু এটি দেখায় কিভাবে এই মডেলগুলি উন্নতির সঙ্গে ভবিষ্যতে কোডিং দেখতে পারে।
অসীম বানর তত্ত্ব
কখনও কি ইনফিনাইট মাঙ্কি থিওরেম সম্পর্কে শুনেছেন? এটা একটি দার্শনিক চিন্তার পরীক্ষা যা বলে যদি আপনি অসীম সংখ্যক বানরকে অসীম সংখ্যক টাইপরাইটার এবং অসীম সময় দেন, তাহলে এক সময়ে তাদের মধ্যে একজন র্যান্ডমভাবে কীবোর্ড বাজিয়ে অবশেষে Shakespeare-এর সম্পূর্ণ কাজটিই তৈরি করবে।
অদ্ভুত লাগছে, তাই না? কিন্তু এখানে অদ্ভুত অংশটা হলো—ভাইব কোডিং কিছুটা এভাবেই, শুধু বানরদের বদলে আমাদের কাছে AI মডেল আছে, টাইপরাইটারের বদলে কোডিং ভাষা আছে, আর Shakespeare-এর বদলে আমরা কাজ করা সফটওয়্যার পাচ্ছি।
ভেবে দেখুন। বৃহৎ ভাষার মডেলগুলো কোটি কোটি লাইনের কোড, প্যাটার্ন, এবং উদাহরণে প্রশিক্ষিত। যখন আপনি একটি LLM-কে প্রম্পট দেন, এটি আপনার সমস্যার সমাধান ধাপে ধাপে ভাবছে না যেমনভাবে একজন মানব ডেভেলপার করবে। বরং, এটি প্রশিক্ষণের সময় শেখা প্যাটার্নের উপর ভিত্তি করে পরবর্তী সবচেয়ে সম্ভাব্য টোকেনটিকে অনুমান করছে। এটি মূলত পরিসংখ্যানগতভাবে যা সঠিক মনে হয় তার ভিত্তিতে কোড জেনারেট করে শিক্ষিত অনুমান করছে।
এবং অদ্ভুতভাবে, প্রায়ই এটা কাজ করে। মডেল এমন কোড আউটপুট দেয় যা প্রকৃতই কম্পাইল হয়, চলবে, এবং আপনার সমস্যা সমাধান করবে। বোঝার মাধ্যমে নয়, বরং এক বিশালমাত্রার সম্ভাব্য প্যাটার্ন মেলানোর মাধ্যমে। এটা এমন একটি পৃথিবীর সবচেয়ে উন্নত র্যান্ডম টেক্সট জেনারেটরের মতো যা “সঠিক” উত্তর খুঁজে পেয়েছে। কিন্তু এখানে পার্থক্য হলো গতি। ওই বানরগুলো বাস্তবিক অনন্তকাল লাগাতো। আপনার AI? কয়েক সেকেন্ড বা মিনিটেই পৌঁছে যায়।
সুতরাং একটি দিক থেকে, যখন আপনি ভাইব কোডিং ব্যবহার করেন, আপনি মিলিয়ন লাইনের কোড প্যাটার্নগুলিকে একটি মডেলে সংক্ষিপ্ত করে সমাধান জেনারেট করতে ব্যবহার করছেন। এটি সচেতন সমস্যা সমাধান নয়, এটি পরিসংখ্যানগত জাদু। আর একেবারেই এ কারণেই এটি এত শক্তিশালী এবং, স্বীকার করতে হবে, কেন জেনারেটেড কোডটি আসলে কী করছে তা বোঝা এখনও গুরুত্বপূর্ণ।
প্রশ্নটি উত্তরের চেয়ে বেশি গুরুত্বপূর্ণ
এখানে একটি গুরুত্বপূর্ণ বিষয় যেটা প্রায়ই উপেক্ষিত হয়। ভাইব কোডিং কোনো উত্তর পাওয়ার বিষয়ে নয়, বরং সঠিক প্রশ্ন করা সম্পর্কে। ভাবুন ডিপ থট সুপারকম্পিউটার-এর কথা দ্য হিচহাইকার’স গাইড টু দ্য গ্যালাক্সি থেকে। এটা জীবন, মহাবিশ্ব, এবং সব কিছুর চূড়ান্ত প্রশ্নের উত্তর বের করতে লাখ লাখ বছর ব্যয় করে, এবং শেষ পর্যন্ত আপনাকে সংখ্যা 42 দিয়েছিল। উত্তরটি প্রযুক্তিগতভাবে সঠিক ছিল, কিন্তু বেকার কারণ আসল সমস্যা ছিল প্রথমেই কোন প্রশ্নটি করা উচিত তা নির্ধারণ করা।
ভাইব কোডিংও একইভাবে কাজ করে। আপনার প্রম্পটই সবকিছু, কিন্তু কনটেক্সট ম্যানেজমেন্টও তেমনই গুরুত্বপূর্ণ। অস্পষ্ট প্রম্পট আপনাকে অস্পষ্ট কোড দেবে, এবং আপনি যদি সঠিক ফাইল, ডকুমেন্টেশন, বা উদাহরণ কনটেক্সট হিসেবে না দেন, মডেলটি বুঝবে না আপনি আসলে কী চান। যদি আপনি এমন কেউ হন যে কোডিং, আর্কিটেকচার, এবং সিস্টেম ডিজাইন বুঝেন, আপনি বিস্তারিত প্রম্পট তৈরি করতে এবং উপযুক্ত কনটেক্সট কিউরেট করতে পারবেন যাতে LLM-কে চমৎকার সমাধানের দিকে পরিচালিত করা যায়। কিন্তু আপনি যদি জানেন না কী চাওয়া উচিত বা কী কনটেক্সট প্রদান করা উচিত, তাহলে AI-ও জানবে না।
এই কারণেই ভাইব কোডিং অভিজ্ঞ ডেভেলপারদের জন্য এতই শক্তিশালী। আমরা জানি ভালো কোড কেমন হওয়া উচিত, আমরা ঝুঁকিগুলো বুঝি, এবং আমরা এমন প্রম্পট লিখতে পারি যা মডেলকে সেগুলো থেকে দূরে সরিয়ে দেয়। কিন্তু প্রযুক্তিগত পটভূমি না থাকা নতুনদের জন্য এটি একটি প্রকৃত সীমাবদ্ধতা হয়ে দাঁড়ায়। আপনি কাজ করা কোড পেতে পারেন, কিন্তু কি ভুল হয়েছে বা পরবর্তী কী জিজ্ঞাসা করা উচিত তা না জানলে আপনি আটকে পড়েন।
যখন ভাইব কোডিং যথেষ্ট নয়
সাম্প্রতিক AI মডেলগুলো চিত্তাকর্ষক, কিন্তু এরা সব সমস্যার জাদুমন্ত্র নয়। ভাইব কোডিং প্রোডাকশনে কাজ করতে পারে, কিন্তু কেবল যদি আপনি এটাকে গম্ভীরভাবে গ্রহণ করেন। আপনাকে শক্ত ইউনিট টেস্ট লাগবে। আপনাকে স্পষ্ট সূত্র-বস্তুর উৎস রাখতে হবে যে আপনার সিস্টেম কী করা উচিত। আপনাকে ধরা লাগবে যখন কিছু ভেঙে যায় বা ড্রিফট করে। এবং আপনাকে হ্যাকারের মানসিকতা দরকার। বক্সের বাইরের চিন্তা করুন এবং আপনার ভাইব-কোডেড প্রকল্পটিকে অপ্রত্যাশিত উপায়ে ভেঙে দেখার চেষ্টা করুন। কোন এজ কেসগুলি আপনি বিবেচনা করেননি? কোন নিরাপত্তাজনিত দুর্বলতা কেউ শোষণ করতে পারে? এইগুলোই আলাদা করে দেয় এমন কোড যা শুধু কাজ করে তার থেকে আর যে কোডটি সত্যিই শক্ত।
কিন্তু কথা আছে। AI আপনাকে নিয়ন্ত্রণ করে না। আপনি AI-এর মালিক। যা এটি জেনারেট করে শুধু তা গ্রহণ করবেন না। এটি রিভিউ করুন। এটি টেস্ট করুন। এটি ভাঙিয়ে দেখুন। এবং খোলস হলে, আপনার কোডবেসের নির্দিষ্ট অংশগুলোর জন্য আপনাকে পুরনো স্কুল কোডিং-এ ফিরে যেতে হবে। গভীরভাবে চিন্তা করুন, নিজে লিখুন। ভাইব কোডিং কাজের গতি বাড়ায়, কিন্তু যখন ব্যাপারটি গুরুত্বপূর্ণ তখন এটি বাস্তব প্রোগ্রামিংয়ের বদলি নয়।
আরও একটি জিনিস আমি শিখেছি। কখনও কখনও আপনাকে AI সাথে একটি সেশন শেষ করে নতুন একটি শুরু করতে হবে। আপনার কথোপকথনের ইতিহাস যত বড় হবে, মডেলের পারফরম্যান্স ততই খারাপ হয়ে যায়। এটি বেশি ভুল করে, কম সংহত কোড জেনারেট করে, এবং আরও বেশি হ্যালুসিনেট করতে শুরু করে। যদি আপনি এটি ধরতে না পারেন এবং বন্ধ না করেন, এই ভুলগুলো একটির ওপর আরেকটি যোগ হয়, এবং বিষয়গুলো ক্রমশ খারাপ হয়। এটা এমন যেন বারবার ফটোকপি করা নথি পড়ার চেষ্টা করা। নতুনভাবে শুরু করলে সবকিছু পরিষ্কার এবং ধারালো থাকে।
ভাইব-কোডেড প্রকল্পসমূহ
নীচে দুটি প্রকল্প রয়েছে, স্টেয়ার্স (রেপো) এবং ট্রান্সসেন্ডেন্টাল (রেপো), যেগুলো আমি ভাইব কোডিং পদ্ধতি ব্যবহার করে তৈরি করেছি। বেশিরভাগই প্রম্পট থেকে জেনারেট করা হয়েছে, ম্যানুয়াল কাজ সীমাবদ্ধ ছিল কনটেক্সট প্রদান, ডিবাগিং, এবং GitHub Pages-এ ডিপ্লয় করা পর্যন্ত। এরা মজার স্ট্যাটিক সাইট এক্সপেরিমেন্ট যা দেখায় যখন আপনি সৃজনশীল আইডিয়াগুলোকে কোডের সাথে ভাইব কোডিংয়ের মাধ্যমে মিলিয়ে দেবেন তখন কি সম্ভাবনা তৈরি হয়। উভয়ই GitHub-এ হোস্ট করা আছে।