V (Vlang)
A simple, fast compiled language for developing maintainable software, with C-like performance and Go-like simplicity.
Created by Alexander Medvednikov
V (also known as Vlang) is a statically typed, compiled programming language created by Alexander Medvednikov in 2019. V aims to combine the simplicity of Go with the performance characteristics of C, while incorporating safety features inspired by Rust – all in a language designed to be learnable in a weekend.
History & Origins
V was born from frustration with the complexity and tradeoffs of existing systems programming languages. Alexander Medvednikov began developing V as a personal project in early 2019, originally intending it for private use. Public interest led him to open-source it under the MIT License on June 22, 2019.
The language attracted significant attention upon release, though it also drew scrutiny for ambitious early claims about features and performance. Since then, V has matured through its beta releases, steadily delivering on its goals of simplicity and fast compilation.
Design Goals
V was designed with specific goals in mind:
- Fast compilation - The self-hosted compiler, written in V, reportedly compiles itself in under a second on typical hardware
- Simplicity - A small language with no hidden control flow
- Safety - No null, no undefined behavior, immutability by default
- C interop - V compiles to human-readable C, leveraging GCC and Clang backends
- No dependencies - The standard library avoids external dependencies
Language Design
V takes an opinionated approach to language design. Many features common in other languages are deliberately omitted:
- No classes or inheritance - Structs with methods and interfaces (similar to Go)
- No global variables by default
- No exceptions - Error handling uses
Resulttypes withorblocks - No macros - Code is explicit
- Immutability by default - Variables, structs, and function arguments are immutable unless marked
mut
Variables and Types
| |
Error Handling
V uses a Result type with or blocks instead of exceptions:
| |
Compilation Model
V compiles source code to human-readable C, which is then compiled by a C compiler (GCC, Clang, or MSVC). This approach provides:
- Broad platform support through existing C compiler infrastructure
- Optimization benefits from mature C compiler backends
- Easy interoperability with C libraries
Cross-compilation is built in: v -os windows or v -os linux works from the command line for targeting Windows, Linux, and FreeBSD.
Concurrency
V supports Go-style concurrency with lightweight threads and channels:
| |
Built-in Tooling
V includes a comprehensive toolchain:
v run- Compile and execute in one stepv fmt- Auto-format source code (enforces consistent style)v test- Built-in testing frameworkv doc- Generate documentationv vet- Static analysis and lintingv translate- C to V translation tool (C2V)
V vs. Go Comparison
V is frequently compared to Go due to similar syntax and design philosophy:
| Feature | V | Go |
|---|---|---|
| Null safety | No null | nil exists |
| Mutability | Immutable by default | Mutable by default |
| Error handling | Result type with or | Multiple return values |
| Generics | Yes | Yes (since Go 1.18) |
| Compilation | To C, then native | Direct to native |
| Garbage collection | Autofree + optional GC | GC |
Platform Support
According to the official documentation, V supports Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD, and DragonflyBSD. Cross-compilation between supported platforms is built into the compiler.
Current Status
V remains in active development and is pre-1.0. The API and language features may change before a stable 1.0 release. V 0.5.0 was released on December 31, 2025, with approximately 3,700 fixes since V 0.4.
The V Community
- vlang.io - Official website
- docs.vlang.io - Language documentation
- GitHub - github.com/vlang/v
- Discord - Active community chat
Timeline
Notable Uses & Legacy
Vinix
An operating system kernel written in V, capable of running bash, GCC, V itself, and nano.
Gitly
A lightweight alternative to GitHub/GitLab, built entirely in V.
Veb
V's built-in web framework, included as part of the standard library.
Boundstone
A Minecraft: Bedrock Edition server implementation written in V.
Language Influence
Influenced By
Running Today
Run examples using the official Docker image:
docker pull thevlang/vlang:alpineExample usage:
docker run --rm -v $(pwd):/app -w /app thevlang/vlang:alpine v run hello.v