Vibe Coding નો ઉદ્ભવ

તમને એ દિવસ યાદ હશે જ્યારે તમે કોડની દરેક લાઇન ટાઇપ કરવાનું બંધ કર્યું હતું. તમે Tab દબાવવાનું શરૂ કર્યું અને Large Language Model (LLM) ને તમારા વિચારો પૂર્ણ કરવા દીધા.

2024 અને 2025 ની શરૂઆત વચ્ચે, સોફ્ટવેર ડેવલપમેન્ટ બદલાઈ ગયું. આપણે કડક સિન્ટેક્સ (syntax) થી શુદ્ધ પ્રવાહ (pure flow) ની અવસ્થા તરફ આગળ વધ્યા. Andrej Karpathy આને Vibe Coding કહે છે.

Vibe Coding એટલે ઝીણવટભર્યા ડિઝાઇનને બદલે અંતર્જ્ઞાન (intuition) દ્વારા સોફ્ટવેર બનાવવું. તમે હવે લાઇન બાય લાઇન લોજિક લખતા નથી. તમે એક કંડક્ટર (conductor) તરીકે કામ કરો છો. સિસ્ટમ કેવી રીતે અનુભવાય છે અને કેવી રીતે વર્તે છે તેના આધારે તમે પરિણામોનો નિર્ણય લો છો.

આ એક સુપરપાવર જેવું લાગે છે. સર્વર સેટઅપ કરવા અથવા SQL ક્વેરીઝ લખવા જેવા કાર્યોમાં સેકન્ડો લાગે છે. વ્યક્તિગત ડેવલપર્સ પહેલા કરતા વધુ ઝડપથી પ્રોડક્ટ્સ લોન્ચ કરે છે.

પરંતુ આ ઝડપમાં એક છટકું છે.

જ્યારે તમે પાયાના સિદ્ધાંતો સમજ્યા વિના AI ને કોડ સોંપો છો, ત્યારે તમારી વિવેચનાત્મક વિચારવાની ક્ષમતા (critical thinking) ઘટી જાય છે. તમે એક 'બ્લેક બોક્સ' પર નિર્ભર બનો છો. તમને ઝડપી કોડ મળે છે, પરંતુ તે મેન્ટેનેબલ (maintainable) રહેશે કે નહીં તે તમે જાણતા નથી.

Vibe Coding ચક્ર આવું દેખાય છે:

  • ફીચર ઉમેરવા માટે પ્રોમ્પ્ટ લખો.
  • કોડ રન કરો અને જુઓ કે તે કામ કરે છે કે નહીં.
  • જો તે નિષ્ફળ જાય, તો એરર કોપી કરીને AI ને પાછી આપો અને તેને સુધારવા કહો.

આ પ્રોટોટાઇપ્સ માટે કામ કરે છે. પરંતુ વાસ્તવિક આર્કિટેક્ચર માટે તે નિષ્ફળ જાય છે. આનાથી Frankenstein code બને છે.

Frankenstein code એ સાથે જોડવામાં આવેલા AI ટુકડાઓનો ગૂંચવણભર્યો સંગમ છે. દરેક ટુકડો એક નાની સમસ્યાનો ઉકેલ લાવે છે, પરંતુ સમગ્ર સિસ્ટમમાં કોઈ વિઝન (vision) હોતું નથી.

જેમ જેમ તમારો પ્રોજેક્ટ વધે છે, તેમ તમે આ સમસ્યાઓ જુઓ છો:

  • અસંગત પેટર્ન (Inconsistent patterns). AI દરેક ફાઇલમાં અલગ અલગ સ્ટાઇલનો ઉપયોગ કરે છે.
  • અતિશય કપલિંગ (Extreme coupling). AI સરળ રસ્તો અપનાવે છે અને મોડ્યુલની સીમાઓ તોડી નાખે છે.
  • કોન્ટેક્સ્ટ અંધાપો (Context blindness). AI અસ્તિત્વમાં રહેલા ફંક્શન્સ ભૂલી જાય છે અને ડુપ્લીકેટ અથવા નવા બગ્સ (bugs) બનાવે છે.

પરિણામ એક નાજુક સિસ્ટમ છે. કોઈ પણ માણસ તેને સમજી શકતો નથી. AI બાકીની બધી વસ્તુઓ તોડ્યા વિના તેમાં ફેરફાર કરી શકતું નથી.

Vibe Coding એ ડેવલપમેન્ટને સુલભ બનાવ્યું છે. તેણે કંટાળાજનક કાર્યો દૂર કર્યા છે. પરંતુ દિશા વિનાની ઝડપ ટેકનિકલ દેવાળિયાપણું (technical bankruptcy) તરફ દોરી જાય છે.

સ્કેલેબલ સિસ્ટમ્સ બનાવવા માટે, તમારે માત્ર 'vibes' થી વધુની જરૂર છે. તમારે ચોકસાઈ અને ગુણવત્તા નિયંત્રણ (quality control) ની જરૂર છે.

Source: https://dev.to/jcmexdev/el-origen-del-vibe-coding-j00

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