The term describes a real shift in how software gets written: instead of typing out logic statement by statement, a developer, or increasingly a non-developer, describes the desired behaviour and the model produces working code, which gets tested and refined through more prompts rather than manual edits.
It’s genuinely fast for prototypes, internal tools, and getting an idea into something clickable. It’s also how a huge amount of code with real security gaps ends up shipped: models trained on public repositories reproduce the same vulnerabilities present in that training data, missing authorisation checks, SQL injection, insecure credential handling, and vibe-coded output rarely gets the scrutiny hand-written code from a senior engineer would.
The pragmatic version treats it the way any other code generation tool is treated: useful for speed, not a substitute for review, testing, and security checks before anything touches production or handles real user data.