What V promised at launch

V entered the programming language scene in 2019 with a bold pitch: a language that combined the best parts of Go, Rust, Swift, and C while avoiding their complexity. Alexander Medvednikov, V's creator, described it as simple, fast, and safe, with innovative memory management that would free developers from garbage collection and manual allocation alike. The initial website stated that V compiles directly to x64 machine code, translating C and C++ projects with full automatic conversion, all while being 200 times faster than existing compilers. These claims drew attention, skepticism, and a community that wanted to believe.

The C/C++ translation that never materialized

The first major unfulfilled promise involved translating existing C and C++ codebases. The V homepage originally linked to articles about translating Doom, Doom 3, LevelDB, and SQLite. The Doom article never appeared, and the other links were placeholders. By March 2019, the links became inactive, replaced by underlined text. The timeline shifted from March to early April to coming soon. As of 2024, the homepage still says a blog post about translating Doom will be published.

The actual translator, C2V, was announced as open-source on New Year's Day 2021 with the promise of release next week. That release came 18 months later, in June 2022. When it finally shipped with V 0.3, the tool could handle some C code, but basic operations like reading command line arguments produced invalid output. The roadmap still lists full C99 support as a version 1.0 goal, meaning the C translation feature remains incomplete years after its announcement. C++ translation is effectively non-existent: C2V contains no C++ test cases, the code handling C++ destructors is empty, and attempting to translate a trivial C++ program fails immediately.

Native code generation that does not work

V's other headline feature was direct compilation to machine code without LLVM or a C compiler as an intermediary. The website stated this was one of the main reasons V was so light and fast. When the source code was released in June 2019, the native backend was commented out. Medvednikov acknowledged on Hacker News that work on x64 generation had started but had not been touched in a while and simply did not compile at the moment.

A native backend eventually appeared in late 2019, but five years later it remains non-functional for anything beyond trivial programs. Attempting to compile an array declaration produces errors about unsupported globals. Maps fail with unhandled node types. Structs fail with unsupported type operations. The V 0.4.6 release notes list 27 merged pull requests for the C backend, while the native backend receives only a CI matrix update. The feature that was supposed to be V's performance advantage exists in name only.

Memory management without the innovation

V's most ambitious claim was that it would solve memory management once and for all: no garbage collector, no manual allocation, no lifetime specifiers. The compiler would handle everything at compile time, like Rust but without the cognitive overhead. Early documentation stated this explicitly, comparing V to Rust but calling it much easier to use.

The reality was more mundane. After the initial release, the documentation acknowledged that only basic cases were handled automatically. For complex scenarios, manual memory management was required. V would detect memory leaks at runtime and report them, but you still had to call free() yourself. Testing V 0.1.20 with Valgrind showed that every string allocated in a loop was leaked: 10 million bytes lost across 4000 blocks. The intermediate C code contained no calls to free(). The innovative memory management turned out to be a limited autofree feature that worked for simple cases and failed for everything else.

Why the gap between promises and reality matters

V's trajectory is not unusual for ambitious open-source projects. What makes it notable is the pattern of shifting timelines and quiet downgrades. Features that were presented as working were marked as work-in-progress only after public scrutiny. Promises were made with specific timelines, missed, and then restated without acknowledgment. The language continues to exist and evolve, with a small community of contributors driving it forward, but the distance between what was advertised and what ships remains substantial.

For developers evaluating V today, the lesson is to judge the language by its current state, not its historical claims. The compiler works, the syntax is clean, and the community is active. But the features that made V stand out in 2019, native code generation, C++ translation, automatic memory management, remain either incomplete or non-functional. The gap between V's marketing and its reality is itself a useful case study in how programming language projects communicate with their audiences.