Τι είναι το “vibe coding”?

Πρίν λίγο καιρό ο σχεδιαστής προϊόντων Ben Snyder, χρησιμοποίησε την τεχνητή νοημοσύνη για να φτιάξει ένα στοιχειώδες παιχνίδι στο οποίο εσείς (μια στρουθοκάμηλος) πρέπει να πηδήξετε πάνω από ένα φράγμα από εμπόδια και αν δεν το κάνετε θα πεθάνετε. Ο Snyder και τα παιδιά του κατασκεύασαν το παιχνίδι με το Replit και το Vercel v0, δύο ΑΙ εργαλεία που σας επιτρέπουν να φτιάξετε λογισμικό πολύ γρήγορα χωρίς να γράψετε κώδικα. Μπορείτε να ζητήσετε από κάθε εργαλείο να “φτιάξει ένα παιχνίδι όπου πρέπει να πηδήξετε για να αποφύγετε τα τέρατα” και θα το κάνουν αμέσως.

Ο όρος για αυτό το στυλ ανάπτυξης λογισμικού κατ’ εντολή είναι “vibe coding“— Ο Andrej Karpathy, συνιδρυτής του OpenAI, επινόησε τον όρο τον Φεβρουάριο του 2025 και μέσα σε ένα μήνα καταχωρήθηκε στο λεξικό Merriam-Webster. Η ιδέα πίσω από τον όρο είναι η εξής: Αντί οι προγραμματιστές να γράφουν κυριολεκτικές γραμμές κώδικα, ο καθένας μπορεί να κατευθύνει την τεχνητή νοημοσύνη να δημιουργήσει κώδικα με βάση μια οδηγία… και να τον τροποποιήσει από εκεί και πέρα. Σύμφωνα με τον Karpathy: “δεν είναι πραγματικά προγραμματισμός  — Απλώς βλέπω πράγματα, λέω πράγματα, τρέχω πράγματα και αντιγράφω τον κώδικα, και ως επί το πλείστον λειτουργεί“. Το vibe coding είναι περισσότερο μια νοοτροπία από μια μέθοδος. 

Ένα βασικό μέρος του ορισμού του vibe coding είναι ότι ο χρήστης χρησιμοποιεί τον παραγόμενο κώδικα χωρίς να τον κατανοεί πλήρως. Ο ερευνητής της τεχνητής νοημοσύνης Simon Willison είπε: “Αν ένα LLM1 έγραψε κάθε γραμμή του κώδικά σας, αλλά τον έχετε διαβάσει, δοκιμάσει και κατανοήσει όλο, αυτό δεν το θεωρώ vibe coding – αυτό σημαίνει ότι χρησιμοποιώ ένα LLM ως βοηθό πληκτρολόγησης.

Στον κόσμο του vibe coding, η τεχνογνωσία εξακολουθεί να έχει σημασία, αλλά είναι ένας διαφορετικός τύπος τεχνογνωσίας. Τώρα που το χάσμα μεταξύ ιδέας και εκτέλεσης μειώνεται ουσιαστικά στο μηδέν, θα πρέπει να δώσουμε ακόμη μεγαλύτερη αξία στις εξαιρετικές ιδέες και την κομψή εκτέλεση τους.

Ο κώδικας που δημιουργείται απο τεχνητή νοημοσύνη δεν είναι πανάκεια γιατί το καλό λογισμικό πρέπει – εκτός απο το να δουλεύει – να μπορεί και να συντηρηθεί. Η τεχνητή νοημοσύνη μπορεί να παράξει κώδικα που αρχικά δουλεύει αλλά καταρρέει υπο πίεση, και μόνο ένας καλός προγραμματιστής μπορεί να μετατρέψει τον κώδικα που παράγει μια τεχνητή νοημοσύνη σε κάτι το οποίο θα έχει διάρκεια στο χρόνο.

1. LLM: Large Language Model – Μεγάλο γλωσσικό μοντέλο