Vibe Coding

Thumbnail

Ano ang Vibe Coding?

Ang vibe coding ay isang paraan ng pagpoprograma na pinapagana ng AI na ipinakilala ni Andrej Karpathy noong 2024/2025. Sa vibe coding, inilalarawan mo kung ano ang gusto mo sa mga prompt na likas na wika at kadalasan ay gumagawa ang malalaking modelo ng wika (LLMs) ng karamihan, at madalas lahat, ng gumaganang code para sa iyo. Kung may oras ka, tingnan ang Art of Vibe Coding na inangkop ni Rick Rubin upang matuto pa tungkol sa paraan ng vibe coding.

Isang malaking bentahe ng bagong pamamaraang ito ay ang pagiging madaling ma-access, dahil ang mga taong walang karanasan sa pagko-code ay makakabuo ng mga proyekto habang ang mga bihasang developer ay mabilis na makagagawa ng prototype ng mga bagong ideya bago tuluyang magpasyang ipagpatuloy ang mga ito. Ito ay lalong kapaki-pakinabang para sa mga startup. Ang kapintasan ay malamang na hindi lubusang mauunawaan ng mga developer kung paano gumagana ang nabuong code. Para sa maliliit na side project, ayos lang ito, ngunit para sa software na antas-produksiyon maaari itong magdulot ng mga pangmatagalang isyu at teknikal na utang.

Maraming mga kasangkapan sa labas na nagpapadali sa vibe coding. Ang Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0, at iba pa ay hinahayaan kang makipagtrabaho sa AI nang direkta sa iyong kapaligiran o nagbibigay ng mga nakalaang interface para sa vibe coding. Sa personal, kadalasan ay nanatili ako sa Cursor IDE at Claude Code CLI para sa mga proyektong ito.

Ganito ang bagay. Ang mga kasangkapang ito at mga modelo ay may bayad. Sa tradisyonal na pagko-code, karamihan ay binabayaran mo gamit ang iyong oras. Sa vibe coding, binabayaran mo gamit ang iyong pitaka. At kung hindi mo alam ang ginagawa mo, binabayaran mo gamit ang parehong iyong pitaka at ang iyong oras. Ang bawat isa sa mga proyektong nasa pahinang ito ay nagkakahalaga ng humigit-kumulang $10 hanggang $20 para buuin. Nadadagdagan iyon kung marami kang pinagsusubukan. Sa tingin ko, habang umuunlad at nagiging mas episyente ang mga modelong ito, bababa rin sa kalaunan ang gastos. Sa ngayon, ito ay isang bagay na nararapat isaalang-alang kapag nagpapasya kung makatuwiran ba ang vibe coding para sa iyong proyekto.

Dahil mausisa ako tungkol sa kung ano ang posible, sinubukan ko mismo ang vibe coding at ginawa ang pahinang ito upang tuklasin ang mismong prinsipyo sa pamamagitan ng mga aktuwal na proyekto. Hindi lang ako bumubuo ng mga produkto, sinusubok at ipinapakita ko rin kung ano talaga ang kaya ng vibe coding. Para lang ito sa kasiyahan, pero nagbibigay ito ng sulyap kung ano ang maaaring hitsura ng pagko-code sa hinaharap habang patuloy na gumaganda ang mga modelong ito.

Ang Theorem ng Walang Katapusang Unggoy

Manunulat

Narinig mo na ba ang Theorem ng Walang Katapusang Unggoy? Isa itong pilosopikal na eksperimento sa pag-iisip na nagsasabing kung bibigyan mo ng walang katapusang mga unggoy ng walang katapusang mga makinilya at walang katapusang oras, sa bandang huli ang isa sa kanila ay makalilikha ng kabuuang mga akda ni Shakespeare sa simpleng pagkatok lang nang random sa mga tecla.

Mukhang katawa-tawa, di ba? Pero heto ang nakakabaliw na bahagi. Ang vibe coding ay parang ganoon, maliban na sa halip na mga unggoy ay may mga modelong AI tayo, sa halip na mga makinilya ay may mga wika ng pagko-code tayo, at sa halip na si Shakespeare ay nakakakuha tayo ng gumaganang software.

Isipin mo ito. Ang mga malalaking modelo ng wika ay sinanay sa bilyun-bilyong linya ng code, mga padron, at mga halimbawa. Kapag binigyan mo ang isang LLM ng prompt, hindi talaga ito “nag-iisip” sa iyong problema nang hakbang-hakbang tulad ng isang human developer. Sa halip, hinuhulaan nito ang susunod na pinakamalamang na token batay sa mga padron na natutunan nito sa pagsasanay. Sa esensya, gumagawa ito ng mga may-kaalamang hula sa pamamagitan ng paglikha ng code batay sa kung ano ang estadistikal na mukhang tama.

At kahit papaano, mas madalas kaysa hindi, gumagana ito. Naglalabas ang modelo ng code na talagang naiipon, tumatakbo, at nilulutas ang iyong problema. Hindi sa pamamagitan ng pag-unawa, kundi sa pamamagitan ng probabilistikong pagtutugma ng mga padron sa isang napakalaking sukatan. Parang natagpuan ng pinakasopistikadong random na tagagenerate ng teksto ng uniberso ang “tamang” sagot. Pero dito, ang kaibhan ay bilis. Ang mga unggoy na iyon ay mangangailangan ng literal na walang hanggan. Ang iyong AI? Naabot iyon sa ilang segundo o minuto.

Kaya sa isang banda, kapag gumagamit ka ng vibe coding, pinakikinabangan mo ang milyun-milyong linya ng mga padron ng code, na pinadalisay sa isang modelo, upang makabuo ng mga solusyon. Hindi ito may malay na paglutas ng problema, ito ay estadistikal na mahika. At iyan mismo ang dahilan kung bakit ito ay napakalakas at, aminin na natin, kung bakit mahalaga pa rin ang pag-unawa sa kung ano talaga ang ginagawa ng code.

Mas Mahalaga Ang Tanong Kaysa Sa Sagot

Narito ang isang mahalagang bagay na madalas hindi napapansin. Ang vibe coding ay hindi tungkol sa pagkuha ng kahit anong sagot, ito ay tungkol sa pagtatanong ng tamang tanong. Isipin ang Superkompyuter na Deep Thought mula sa The Hitchhiker’s Guide to the Galaxy. Gumugol ito ng milyun-milyong taon sa pagkukuwenta ng sagot sa pinakadakilang tanong tungkol sa buhay, sa sansinukob, at sa lahat, ngunit ang ibinigay lamang nito ay ang numerong 42. Ang sagot ay teknikal na tama, pero walang silbi dahil ang tunay na problema ay ang pag-alam kung anong tanong ang dapat itanong sa simula pa lang.

Gumagana ang vibe coding sa parehong paraan. Ang iyong mga prompt ang lahat, ngunit ganoon din ang pamamahala ng konteksto. Ang malabong prompt ay magbibigay sa iyo ng malabong code, at kung hindi mo ibibigay ang tamang mga file, dokumentasyon, o mga halimbawa bilang konteksto, hindi mauunawaan ng modelo ang talagang kailangan mo. Kung isa kang taong may alam sa pagko-code, arkitektura, at disenyo ng mga sistema, maaari kang bumuo ng detalyadong mga prompt at pumili ng tamang konteksto upang gabayan ang LLM tungo sa mahusay na mga solusyon. Ngunit kung hindi mo alam kung ano ang hihilingin o anong konteksto ang ibibigay, hindi rin alam iyon ng AI.

Sa totoo lang, ito ang dahilan kung bakit napakalakas ng vibe coding para sa mga bihasang developer. Alam namin kung ano ang mukhang magandang code, nauunawaan namin ang mga bitag, at maaari kaming magsulat ng mga prompt na inililihis ang modelo palayo sa mga iyon. Para sa mga baguhan na walang teknikal na kaalaman, nagiging tunay itong limitasyon. Maaari kang makakuha ng gumaganang code, ngunit nang hindi nauunawaan kung ano ang naging mali o kung ano ang dapat hilingin sa susunod, maiipit ka.

Kapag Hindi Sapat ang Vibe Coding

Kahanga-hanga ang pinakabagong mga modelong AI, pero hindi sila isang himalang lunas. Maaaring gumana ang vibe coding sa produksiyon, ngunit kung seryoso ka rito. Kailangan mo ng matitibay na unit test. Kailangan mo ng malinaw na mga pinagmumulan ng katotohanan kung ano ang dapat gawin ng iyong sistema. Kailangan mong mahuli kapag may nasisira o lumilihis. At kailangan mo ng isip-isip ng hacker. Mag-isip nang lampas sa nakasanayan at subukang sirain ang iyong proyektong vibecoded sa mga hindi inaasahang paraan. Anong mga edge case ang hindi mo pa naisasaalang-alang? Anong mga kahinaan sa seguridad ang maaaring samantalahin ng isang tao? Ito ang naghihiwalay sa code na basta gumagana lamang mula sa code na talagang matibay.

Ganito ang bagay. Hindi ikaw ang pag-aari ng AI. Ikaw ang may-ari ng AI. Huwag basta tanggapin ang inilalabas nito. Suriin ito. Subukan ito. Sirain ito. At sa totoo lang, para sa ilang bahagi ng iyong codebase, kailangan mong bumalik sa lumang estilong pagko-code. Magtuon, mag-isip nang malalim, ikaw mismo ang sumulat nito. Pinapabilis ng vibe coding ang mga bagay-bagay, pero hindi ito pamalit sa tunay na pagprograma kapag mahalaga na.

May isa pa akong natutunan. Minsan kailangan mo lang tapusin ang isang sesyon kasama ang AI at magsimula ng panibago. Habang palaki nang palaki ang kasaysayan ng usapan mo, bumababa ang pagganap ng modelo. Nagkakamali ito nang mas madalas, gumagawa ng hindi gaanong magkakaugnay na code, at mas madalas na nagsisimulang mag-hallucinate. Kung hindi mo ito mahuhuli at ititigil, ang mga pagkakamaling ito ay nagiging sunod-sunod na pinapalala ang isa’t isa, kaya lalong lumalala ang mga bagay. Parang sinusubukang basahin ang isang dokumentong paulit-ulit na kinopya sa photocopier. Ang panibagong simula ay nagpapanatiling malinis at matalas ang lahat.

Mga Proyektong Vibecoded

Nasa ibaba ang dalawang proyekto, stairs (repo) at transcendental (repo), na binuo ko gamit ang metodolohiya ng vibe coding. Karamihan ay nilikha mula sa mga prompt, na may limitadong manu-manong trabaho sa pagbibigay ng konteksto, pag-debug, at pag-deploy sa GitLab Pages. Masasayang mga eksperimento ito sa static site na nagpapakita kung ano ang posible kapag pinagsama mo ang mga malikhaing ideya sa code sa pamamagitan ng vibe coding. Pareho silang naka-host sa GitLab.

Tingnan ang mga Proyekto

Stairs

Transcendental