ভাইব কোডিং

থাম্বনেইল

ভাইব কোডিং কী?

ভাইব কোডিং হলো একটি এআই-চালিত প্রোগ্রামিং পদ্ধতি, যা আন্দ্রেজ কারপাথি ২০২৪/২০২৫ সালে প্রবর্তন করেন। ভাইব কোডিংয়ের ক্ষেত্রে, আপনি প্রাকৃতিক ভাষার প্রম্পটে আপনি কী চান তা বর্ণনা করেন এবং সাধারণত বৃহৎ ভাষা মডেল (এলএলএম) আপনার জন্য অধিকাংশ, প্রায়শই সব, কাজের কোড তৈরি করে। আপনার যদি সময় থাকে, তাহলে আরও জানার জন্য রিক রুবিন কর্তৃক রূপান্তরিত ভাইব কোডিংয়ের শিল্প দেখে নিতে পারেন।

এই নতুন পদ্ধতির একটি বড় সুবিধা হলো এর সহজপ্রাপ্যতা, কারণ কোনো কোডিং অভিজ্ঞতা নেই এমন মানুষও প্রকল্প তৈরি করতে পারে, আর অভিজ্ঞ ডেভেলপাররা সম্পূর্ণভাবে প্রতিশ্রুতিবদ্ধ হওয়ার আগে দ্রুত নতুন ধারণার প্রোটোটাইপ তৈরি করতে পারে। এটি স্টার্টআপগুলোর জন্য বিশেষভাবে সহায়ক। এর অসুবিধা হলো ডেভেলপাররা সম্ভবত উৎপন্ন কোড কীভাবে কাজ করে তা পুরোপুরি বুঝতে পারবেন না। ছোট সাইড প্রজেক্টের জন্য এটি ঠিক আছে, কিন্তু প্রোডাকশন-স্তরের সফটওয়্যারের ক্ষেত্রে এটি দীর্ঘমেয়াদি সমস্যা এবং প্রযুক্তিগত ঋণের দিকে নিয়ে যেতে পারে।

ভাইব কোডিংকে আরও মসৃণ করে এমন প্রচুর টুল রয়েছে। কার্সর আইডিই, ক্লদ কোড সিএলআই, গিটহাব কোপাইলট, লাভেবল, রিপ্লিট, ভি০, এবং অন্যান্যগুলো আপনাকে আপনার পরিবেশে সরাসরি এআই-এর সঙ্গে কাজ করতে দেয় বা ভাইব কোডিংয়ের জন্য নিবেদিত ইন্টারফেস সরবরাহ করে। ব্যক্তিগতভাবে, আমি এই প্রকল্পগুলোর জন্য মূলত কার্সর আইডিই এবং ক্লদ কোড সিএলআই-এর সঙ্গেই ছিলাম।

তবে আসল কথা হলো, এই টুল এবং মডেলগুলোর খরচ আছে। ঐতিহ্যবাহী কোডিংয়ে, আপনি মূলত আপনার সময় দিয়ে মূল্য পরিশোধ করেন। ভাইব কোডিংয়ে, আপনি আপনার ওয়ালেট দিয়ে মূল্য পরিশোধ করেন। আর আপনি যদি জানেন না আপনি কী করছেন, তাহলে আপনি আপনার ওয়ালেট এবং আপনার সময়—দুটো দিয়েই মূল্য পরিশোধ করছেন। এই পৃষ্ঠার প্রতিটি প্রকল্প বানাতে প্রায় $10 থেকে $20 খরচ হয়েছে। আপনি যদি অনেক পরীক্ষা-নিরীক্ষা করেন, তাহলে তা জমে যায়। আমি মনে করি, এই মডেলগুলো উন্নত এবং আরও কার্যকর হলে, শেষ পর্যন্ত খরচ কমে আসবে। আপাতত, আপনার প্রকল্পের জন্য ভাইব কোডিং অর্থবহ কি না, তা সিদ্ধান্ত নেওয়ার সময় এটি বিবেচনা করার মতো একটি বিষয়।

কী কী সম্ভব তা জানার কৌতূহল থেকে, আমি নিজেই ভাইব কোডিং চেষ্টা করেছি এবং বাস্তব প্রকল্পের মাধ্যমে মূল নীতিটি অনুসন্ধান করতে এই পৃষ্ঠাটি তৈরি করেছি। আমি শুধু পণ্য তৈরি করছি না, আমি পরীক্ষা করছি এবং দেখাচ্ছি ভাইব কোডিং আসলে কতটা সক্ষম। এটা শুধু মজার জন্য, কিন্তু এটি ভবিষ্যতে কোডিং কেমন দেখাতে পারে তার একটি ঝলক দেয়, কারণ এই মডেলগুলো ক্রমাগত উন্নত হচ্ছে।

অসীম বানর উপপাদ্য

লেখক

অসীম বানর উপপাদ্য সম্পর্কে কখনও শুনেছেন? এটি একটি দার্শনিক চিন্তানিরীক্ষা, যা বলে যে যদি আপনি অসীম বানরকে অসীম টাইপরাইটার এবং অসীম সময় দেন, তাহলে শেষ পর্যন্ত তাদের একজন এলোমেলোভাবে কী-তে আঘাত করতে করতে শেক্সপিয়র-এর সম্পূর্ণ রচনাবলি তৈরি করে ফেলবে।

শুনতে হাস্যকর লাগে, তাই না? কিন্তু আসল মজার অংশ হলো, ভাইব কোডিংও কিছুটা তেমনই, শুধু বানরের জায়গায় আমাদের আছে এআই মডেল, টাইপরাইটারের জায়গায় আছে প্রোগ্রামিং ভাষা, আর শেক্সপিয়রের জায়গায় আমরা পাচ্ছি কাজের সফটওয়্যার।

ভেবে দেখুন। বৃহৎ ভাষা মডেলগুলো কোটি কোটি কোডের লাইন, প্যাটার্ন এবং উদাহরণে প্রশিক্ষিত। আপনি যখন কোনো এলএলএম-কে একটি প্রম্পট দেন, তখন এটি আসলে মানুষের ডেভেলপারের মতো ধাপে ধাপে আপনার সমস্যাটি “ভাবছে” না। বরং, এটি প্রশিক্ষণের সময় শেখা প্যাটার্নের ভিত্তিতে সবচেয়ে সম্ভাব্য পরবর্তী টোকেন অনুমান করছে। এটি মূলত পরিসংখ্যানগতভাবে যা সঠিক মনে হয় তার ভিত্তিতে কোড তৈরি করে শিক্ষিত অনুমান করছে।

আর somehow, বেশিরভাগ সময়ই, এটি কাজ করে। মডেল এমন কোড আউটপুট করে যা আসলেই কম্পাইল হয়, রান করে, এবং আপনার সমস্যার সমাধান করে। বোঝার মাধ্যমে নয়, বরং অত্যন্ত বিশাল স্কেলে সম্ভাব্যতাভিত্তিক প্যাটার্ন-ম্যাচিংয়ের মাধ্যমে। এটা যেন মহাবিশ্বের সবচেয়ে জটিল র‍্যান্ডম টেক্সট জেনারেটর “সঠিক” উত্তরটা খুঁজে পেয়েছে। কিন্তু এখানে পার্থক্য হলো গতি। সেই বানরগুলোর আক্ষরিক অসীমতা লাগত। আপনার এআই? কয়েক সেকেন্ড বা কয়েক মিনিটেই সেখানে পৌঁছে যায়।

তাই একভাবে বলতে গেলে, আপনি যখন ভাইব কোডিং ব্যবহার করেন, আপনি লক্ষ লক্ষ কোড প্যাটার্ন, একটি মডেলে সংক্ষিপ্ত করে, সমাধান তৈরি করতে কাজে লাগাচ্ছেন। এটি সচেতন সমস্যা-সমাধান নয়, এটি পরিসংখ্যানিক জাদু। আর এটাই ঠিক কারণ এটি এত শক্তিশালী, এবং স্বীকার করতেই হয়, কেন কোড আসলে কী করে তা বোঝা এখনও গুরুত্বপূর্ণ।

প্রশ্নটি উত্তরটির চেয়ে বেশি গুরুত্বপূর্ণ

এখানে একটি গুরুত্বপূর্ণ বিষয় আছে যা প্রায়ই উপেক্ষিত হয়। ভাইব কোডিং কোনো উত্তর পাওয়ার ব্যাপার নয়, এটি সঠিক প্রশ্ন জিজ্ঞাসা করার ব্যাপার। দ্য হিচহাইকার্স গাইড টু দ্য গ্যালাক্সি-এর Deep Thought Supercomputer-এর কথা ভাবুন। এটি জীবনের, মহাবিশ্বের, এবং সবকিছুর চূড়ান্ত প্রশ্নের উত্তর গণনা করতে লক্ষ লক্ষ বছর ব্যয় করেছিল, শুধুমাত্র আপনাকে 42 সংখ্যাটি দেওয়ার জন্য। উত্তরটি কারিগরি অর্থে সঠিক ছিল, কিন্তু অকেজো, কারণ আসল সমস্যা ছিল প্রথমেই কী প্রশ্ন করতে হবে তা নির্ধারণ করা।

ভাইব কোডিংও একইভাবে কাজ করে। আপনার প্রম্পটই সবকিছু, কিন্তু কনটেক্সট ম্যানেজমেন্টও ততটাই গুরুত্বপূর্ণ। একটি অস্পষ্ট প্রম্পট আপনাকে অস্পষ্ট কোড দেবে, আর আপনি যদি সঠিক ফাইল, ডকুমেন্টেশন, বা উদাহরণগুলো কনটেক্সট হিসেবে না দেন, তাহলে মডেলটি আপনি আসলে কী চান তা বুঝবে না। আপনি যদি কোডিং, আর্কিটেকচার, এবং সিস্টেম ডিজাইন বোঝেন, তাহলে আপনি বিস্তারিত প্রম্পট তৈরি করতে পারেন এবং সঠিক কনটেক্সট বেছে নিয়ে এলএলএম-কে উৎকৃষ্ট সমাধানের দিকে পরিচালিত করতে পারেন। কিন্তু আপনি যদি কী চাইতে হবে বা কী কনটেক্সট দিতে হবে তা না জানেন, তাহলে এআই-ও জানবে না।

আসলে এটাই কারণ, কেন ভাইব কোডিং অভিজ্ঞ ডেভেলপারদের জন্য এত শক্তিশালী। আমরা জানি ভালো কোড কেমন দেখায়, আমরা ঝুঁকিগুলো বুঝি, এবং আমরা এমন প্রম্পট লিখতে পারি যা মডেলকে সেগুলো থেকে দূরে রাখে। কোনো প্রযুক্তিগত পটভূমি নেই এমন শিক্ষার্থীদের জন্য, এটি একটি বাস্তব সীমাবদ্ধতা হয়ে দাঁড়ায়। আপনি কার্যকর কোড পেতে পারেন, কিন্তু কী ভুল হয়েছে বা পরের ধাপে কী চাইতে হবে তা না বুঝলে, আপনি আটকে যান।

যখন ভাইব কোডিং যথেষ্ট নয়

সর্বশেষ এআই মডেলগুলো চমৎকার, কিন্তু তারা কোনো রূপালি বুলেট নয়। ভাইব কোডিং প্রোডাকশনে কাজ করতে পারে, কিন্তু শুধু তখনই যখন আপনি এটি নিয়ে সিরিয়াস। আপনার শক্তিশালী ইউনিট টেস্ট দরকার। আপনার সিস্টেম কী করা উচিত তার জন্য স্পষ্ট সত্যের উৎস দরকার। জিনিসপত্র ভেঙে গেলে বা সরে গেলে তা ধরার ব্যবস্থা দরকার। আর আপনার হ্যাকারস মাইন্ডসেট দরকার। বাক্সের বাইরে ভাবুন এবং অপ্রত্যাশিত উপায়ে আপনার ভাইব-কোডেড প্রকল্প ভাঙার চেষ্টা করুন। আপনি কোন এজ কেসগুলো বিবেচনা করেননি? কোন নিরাপত্তা দুর্বলতাকে কেউ কাজে লাগাতে পারে? এটাই সাধারণভাবে শুধু কাজ করা কোড আর সত্যিকারের শক্তিশালী কোডের মধ্যে পার্থক্য তৈরি করে।

তবে একটা কথা আছে। এআই আপনার মালিক নয়। আপনি এআই-এর মালিক। ওটা যা তৈরি করে, অন্ধভাবে মেনে নেবেন না। তা পর্যালোচনা করুন। পরীক্ষা করুন। ভাঙুন। আর সত্যি বলতে, আপনার কোডবেসের কিছু অংশের জন্য আপনাকে পুরোনো ধাঁচের কোডিংয়ে ফিরে যেতে হবে। মনোযোগ দিন, গভীরভাবে ভাবুন, নিজেই লিখুন। ভাইব কোডিং কাজগুলো দ্রুত করে, কিন্তু যখন সত্যিই গুরুত্ব আছে, তখন এটি আসল প্রোগ্রামিংয়ের বিকল্প নয়।

আরেকটি বিষয় আমি শিখেছি। কখনও কখনও আপনাকে শুধু এআই-এর সঙ্গে একটি সেশন শেষ করে নতুন করে শুরু করতে হয়। আপনার কথোপকথনের ইতিহাস যত বড় হয়, মডেলের কর্মক্ষমতা তত কমে যায়। এটি বেশি ভুল করে, কম সুসংগত কোড তৈরি করে, এবং আরও ঘন ঘন হ্যালুসিনেট করতে শুরু করে। আপনি যদি এটি ধরতে না পারেন এবং থামাতে না পারেন, তাহলে এই ত্রুটিগুলো একে অপরের ওপর জমতে থাকে, এবং জিনিসগুলো ক্রমশ খারাপ হতে থাকে। এটা এমন যেন বারবার ফটোকপি করা কোনো ডকুমেন্ট পড়ার চেষ্টা করা। নতুন করে শুরু করলে সবকিছু পরিষ্কার ও ধারালো থাকে।

ভাইব-এ কোড করা প্রকল্পসমূহ

নীচে দুইটি প্রকল্প, stairs (repo) এবং transcendental (repo), আছে, যা আমি ভাইব কোডিং-এর পদ্ধতি ব্যবহার করে তৈরি করেছি। বেশিরভাগই প্রম্পট থেকে তৈরি, আর ম্যানুয়াল কাজ সীমিত ছিল কনটেক্সট দেওয়া, ডিবাগিং, এবং GitLab Pages-এ ডিপ্লয় করার মধ্যে। এগুলো মজার স্ট্যাটিক সাইটের পরীক্ষা, যা দেখায় ভাইব কোডিংয়ের মাধ্যমে সৃজনশীল ধারণাকে কোডের সঙ্গে মিলিয়ে কী সম্ভব। দুটিই GitLab-এ হোস্ট করা আছে।

প্রকল্পগুলো দেখুন

সিঁড়ি

ট্রান্সসেন্ডেন্টাল