𝗩𝗶𝗯𝗲 𝗖𝗼𝗱𝗶𝗻𝗴 𝗜𝘀 𝗡𝗼𝘁 𝗔 𝗟𝗲𝘃𝗲𝗹. 𝗜𝘁'𝘀 𝗔𝗻 𝗔𝘅𝗶𝘀.

Karpathy వైబ్ కోడింగ్‌ను ఒక సాధారణ లూప్‌గా నిర్వచించారు: చూడటం, చెప్పడం, రన్ చేయడం మరియు కాపీ-పేస్ట్ చేయడం.

చాలా మంది దీనిని స్వయంప్రతిపత్తి (autonomy) యొక్క నిచ్చెనగా భావిస్తారు. మీరు AIకి ఎంత పని అప్పగిస్తున్నారో వారు కొలుస్తారు.

ఆ స్థాయిలు ఇలా ఉంటాయి:

  • L0: AI లేదు
  • L1: autocomplete గా AI
  • L2: ఉద్దేశ్య ఆధారితం (మీరు 'ఏమిటి' అని నిర్వచిస్తారు, AI 'ఎలా' అని నిర్వచిస్తుంది)
  • L3: కొలాబరేటివ్ పెయిర్-ప్రోగ్రామింగ్
  • L4: సెమీ-ఆటోనమస్ (పాక్షిక స్వయంప్రతిపత్తి)
  • L5: ఫుల్లీ ఆటోనమస్ (పూర్తి స్వయంప్రతిపత్తి)

ఈ నిచ్చెన ఉపయోగకరమైనదే కానీ అసంపూర్ణం. ఇది కేవలం ఒక అంశాన్ని మాత్రమే కొలుస్తుంది: డెలిగేషన్ (పని అప్పగించడం).

ఇద్దరు డెవలపర్లు ఇద్దరూ లెవల్ 4లో ఉండవచ్చు. ఒకరు బలంగా ఎదుగుతున్న క్లీన్ కోడ్‌బేస్‌ను నిర్మిస్తారు. మరొకరు క్షీణించే ఒక గందరగోళాన్ని (mess) నిర్మిస్తారు.

తేడా వారి నైపుణ్యంలో లేదు. అది వారి ఆపరేటర్ డిసిప్లిన్ (operator discipline) లో ఉంది.

ఆపరేటర్ డిసిప్లిన్ అంటే మీ పనిలో ఎంత భాగం తనిఖీ చేయదగిన స్థితిలో (inspectable state) ఉంటుందనేది.

మీరు మీ నిర్ణయాలను సేవ్ చేయకపోతే, ప్రతి సెషన్‌లోనూ వాటిని మళ్ళీ మళ్ళీ చెప్పాల్సి వస్తుంది. నేను నెలల తరబడి ఒకే ఆర్కిటెక్చర్ గురించి AIతో వాదించడానికే సమయం వృథా చేశాను. అది ప్రతిసారీ అదే తప్పును సూచించేది. నేను చాలా అలసిపోయాను.

నిర్ణయాల కోసం ఒక సింపుల్ స్టోర్‌ను సృష్టించడం ద్వారా నేను దీనిని పరిష్కరించుకున్నాను:

  • Proposed (ప్రతిపాదించినవి)
  • Accepted (అంగీకరించినవి)
  • Locked (లాక్ చేసినవి)

ఒకసారి నిర్ణయం లాక్ చేయబడిన తర్వాత, అనుమతి లేకుండా AI దానిని మార్చలేదు. పని ప్రశాంతంగా మారింది. కోడ్‌బేస్ అస్థిరత (wobbling) ఆగింది.

వైబ్ కోడింగ్ అనేది రెండు అక్షాల (two-axis) మ్యాప్. అక్షం 1: స్వయంప్రతిపత్తి (Autonomy) (L0 నుండి L5 వరకు). అక్షం 2: ఆపరేటర్ డిసిప్లిన్ (Operator Discipline) (తక్కువ నుండి ఎక్కువ వరకు).

దీని లెక్క ఇలా ఉంటుంది: దీర్ఘకాలంలో L1 + High Discipline > L5 + Low Discipline.

తక్కువ డిసిప్లిన్‌తో ఎక్కువ స్వయంప్రతిపత్తి ఉంటే, అది గరిష్ట వేగాన్ని మరియు గరిష్ట గందరగోళాన్ని (mess) కలిగిస్తుంది. మీరు టెక్నికల్ డెట్ (technical debt) అనే గోడ వైపు వేగంగా దూసుకుపోతారు.

క్రమశిక్షణతో నిర్మించడానికి, నేను మూడు విషయాలను ఉపయోగిస్తాను:

  • A persona file: మోడల్ కోసం ఐడెంటిటీ, రూల్స్ మరియు ప్రిఫరెన్స్‌లు.
  • Append-only stores: లాక్ చేసిన నిర్ణయాలు మరియు యాక్టివ్ త్రెడ్స్ కోసం ఒక చోటు.
  • A capture habit: నిర్ణయాలు తీసుకున్న వెంటనే వాటిని రాసుకోవడం.

కేవలం ప్రాంప్ట్‌లపై మాత్రమే ఆధారపడకండి. ఒక స్టేట్ మెషీన్ (state machine) ను నిర్మించండి.

ఎక్కువ AI వాడటం వల్ల మీకు ఎక్కువ ప్రయోజనం (leverage) రాకపోతే, సమస్య బహుశా మోడల్‌లో లేదు. సమస్య మీ రెండవ అక్షంలో ఉంది.

మీరు స్టేట్‌గా (state) దేనిని సేవ్ చేస్తున్నారు? ప్రతి సెషన్‌లోనూ దేనిని మొదటి నుండి మళ్ళీ నిర్మిస్తున్నారు?

Source: https://dev.to/jugeni/vibe-coding-is-not-a-level-its-an-axis-12gb

Optional learning community: https://t.me/GyaanSetuAi