iTranslated by AI
A Developer's Perspective on the V Language and Its (Exaggerated) Marketing
About V Language
Do you remember V language, which was a hot topic for a while?
It was a language that debuted touting various star features like a simple syntax inspired by Go, NoGC yet memory management without the complexity of Rust, small binary sizes, fast compilation, and hot reloading.
Between announcing but not releasing, and releasing binaries but not the source code, the way information was released to drum up anticipation initially made it quite a topic, but it's undeniable that it feels like no one talks about it anymore.
By the way, after my company vanished and I became unemployed, I started participating in V language development a few months ago. At the time of writing, I am the 23rd contributor overall and 7th over the last month.
As far as I know, there are almost no Japanese developers active in the project.
So, now that I've gotten used to the community and have started to understand V language little by little, I'd like to write about the current state of V.
Advertising and Implementation
V language has had quite aggressive promotion from the start, and that hasn't changed today.
On the official website, it claims things like:
- A compiler faster and smaller than other languages (less than 1s build time and less than 2 MB binary size)
- Simple and safe automatic memory management without GC
- C translation (wip)
- Cross-compilation
- Run everywhere
Specifically, the speed and memory management aspects are often highlighted as flagship features.
To get straight to the conclusion, there are many parts that I have to call exaggerated advertising.
Speaking as a developer, I'll offer an excuse: there's no intent to lie in the ads. We develop with those goals in mind, and development progresses day by day. However, it is certainly exaggerated, and I personally think it's a bit of an issue.
This promotion dates back to before V became OSS, and it likely reflects the policy of the creator, Alex. Furthermore, no major opposing views have surfaced within the community, and there is no movement to revise the advertising.
Compiler
The official website states that the V compiler is small and has short compilation times. Let's verify how it actually performs.[1][2]
Size
The size of v.c, which is the V compiler converted to C, was indeed under 2MB in the past. It currently slightly exceeds this, so there is a proposal on Discord to fix it.
By the way, the V compiler is essentially implemented as a transpiler to C. While x86 and JS backends exist, they are currently experimental extras.
As a result, the V compiler requires a C compiler. However, the V compiler binary obviously does not include a C compiler. The official website compares it with languages like Go and Swift, but since those are self-contained binary sizes, comparing them is, I must say, deceptive.
However, it's not a lie that the size is small. The zip file downloadable from the official site is less than 20 MB when extracted, and it includes the standard library, source code, and dependencies like tcc, allowing it to function as a compiler on its own.
Compilation Time
Furthermore, the official website states that the compilation time is less than 1 second.
Indeed, V's self-compilation is fast. When I measured it, self-compilation completed in about 1.5 seconds. Depending on the machine, the "less than 1 second" claim might not be a lie.
Upon checking, vlib/v has about 40,000 lines excluding tests. Since the official site says it can compile 80,000 lines, this too might not be a lie depending on the machine.
That said, since the official site mentions an i5-7500, I still feel the description might be a bit of a stretch, but in a demo video[3] where they claim to be using a 7-year-old laptop, the compilation is several times faster than my environment, so it might be an environment issue.
There are also pointers that it's not the V compiler that's fast, but the C compiler, given that V is a transpiler to C. While that aspect is certainly significant, the V compiler itself is reasonably fast (V handles everything up to parsing, type checking, and code generation, but the bulk of the time spent in compilation is the C compilation).
By the way, all the compilation times I've mentioned so far are without optimization. When optimization is enabled, self-compilation takes about 15 seconds in my environment. It's still plenty fast, but the feeling of it being slightly deceptive is undeniable.
Cross-compilation
The official website states that cross-compilation is easy. This is a bit subjective, as the definition of "easy" varies from person to person. It is not as simple as Golang, where you just add an option. For example, to compile for Windows, you need to install mingw's gcc.
Since it is essentially a transpiler to C, cross-compilation is certainly possible as long as there is a corresponding C compiler.
Run everywhere
This is the same as the above. If a C compiler is available, you can naturally compile and run the code.
In CI, tests are executed on Linux, Windows, and macOS, as well as FreeBSD, Solaris, Dragonfly BSD, and others.
There are also videos of it running on actual Android devices and other smartphones, and it seems the direction is to make the GUI library work on mobile in the future as well.
Memory Management
V has no GC and manages memory automatically. Furthermore, it doesn't have the complexity of Rust; I write it with the same feeling as Go.
The memory management in V seems to be based on the memory management of a language called Lobster[4].
As of version 0.2, it works reasonably well, and "Ved," a text editor written in V, operates without memory leaks.
However, at present, the behavior is not perfect, and memory leaks still occur.
C translation
It's marked as WIP and is currently unavailable. Furthermore, the development status is not public, so it's unclear how much progress has been made. It is scheduled for release in v0.3.
The creator, Alex, seems enthusiastic about translation from other languages, so I don't think it will be abandoned. There is also a movement to implement translation from Go.
Safety
No null
Sorry. That's a lie.
V has references, and when references are used for struct fields, a de facto null is used as the default value. Therefore, the possibility of being null always follows reference fields. While it's true that empty references don't occur except during initialization, I believe calling it "No null" is a lie.
Also, although users probably won't use them much, things like voidptr are provided for the compiler and can be used outside of it as well.
About the V Language Community
The V language community is extremely active. A fair number of issues and PRs are submitted and merged every day. The pace is very fast; if you submit a PR, you'll often receive a comment within 24 hours, and it's frequently merged immediately.
Development is active regardless of weekdays or holidays, even during Christmas and New Year's.
In my personal view, many V language developers are the type who just keep implementing things, and various features are added quickly. Recently, the Language Server reached a useful level relatively soon after development began.
On the other hand, reviews are lenient, and there are many minor bugs. I am a rare type of developer in V, as I mainly focus on fixing discovered bugs.
Finally
There are certainly exaggerated aspects to V language's advertising, and it's true that it goes overboard at times. However, it's not intended to lie or deceive anyone.
V language's implementation pace is fast, with features being added daily. After the next release, v0.3, the syntax will be frozen for v1.0. While it is not yet a language ready for production use, that day may not be far off.
As mentioned earlier, V language tends to prioritize feature implementation, resulting in many small things being overlooked. Since the number of developers is not large, more hands are always needed. PRs are often merged quite easily, making it an accessible OSS project, so if you're interested, please try sending a PR.
Links
Side Note: Subprojects
What happened to volt?
Originally, V language was developed specifically to create a GUI application called volt.
While V language is being actively developed, there has been no announcement regarding volt, and the original official website has disappeared.
I also assumed the project itself had vanished, but it seems that's not the case. Although the domain has changed, an official website still exists.
Comments like "Is it gone?" appear occasionally on Discord, and each time the reply is "the beta version will be available for download soon," suggesting development is continuing. However, since they are always saying "soon," it's unclear when it will actually happen.
What happened to vOS?
There was once some talk about an attempt to create an OS called vOS using the V language.
However, at this point, it hasn't progressed much at all.
That said, the project hasn't disappeared; it seems to be in a state of waiting for the language features to stabilize. On Discord, it's been said that they will proceed once the language features are stable.
vbrowser
Within the V language community, there is also a project to build a browser called vbrowser from scratch. To be honest, I'm not sure how serious they are about this.
V Android Bootstrapper (vab)
This is a tool for creating Android apps with the V language. I haven't tried it in detail, so I don't know for sure, but I have seen demos running on actual devices, so it seems to be usable to some extent.
-
The environment used is WSL2, CPU: Ryzen7 3800X, 40GB 2133MHz, Storage: CT500MX500SSD1. ↩︎
-
Using the clang backend. ↩︎
-
It was mentioned on Discord, but it hasn't been officially stated, and since I haven't read the memory management implementation myself, I don't know to what extent it is influenced. ↩︎

Discussion