5 min read

Yesterday, a new statically-typed programming language named V was open sourced. It is described as a simple, fast, and compiled language for creating maintainable software. Its creator, Alex Medvednikov, says that it is very similar to Go and is inspired by Oberon, Rust, and Swift.

What to expect from V programming language

Fast compilation

V can compile up to 1.2 million lines of code per second per CPU. It achieves this by direct machine code generation and strong modularity. If we decide to emit C code, the compilation speed drops to approximately 100k of code per second per CPU.

Medvednikov mentions that direct machine code generation is still in its very early stages and right now only supports x64/Mach-O. He plans to make this feature stable by the end of this year.


Safety

It seems to be an ideal language because it has no null, global variables, undefined values, undefined behavior, variable shadowing, and does bound checking. It supports immutable variables, pure functions, and immutable structs by default. Generics are right now work in progress and are planned for next month.

Performance

According to the website, V is as fast as C, requires a minimal amount of allocations, and supports built-in serialization without runtime reflection. It compiles to native binaries without any dependencies.

Just a 0.4 MB compiler

Compared to Go, Rust, GCC, and Clang, the space required and build time of V are very very less. The entire language and standard library is just 400 KB and you can build it in 0.4s. By the end of this year, the author aims to bring this build time down to 0.15s.

C/ C++ translation

V allows you to translate your V code to C or C++. However, this feature is at a very early stage, given that C and C++ are a very complex language. The creator aims to make this feature stable by the end of this year.

What do developers think about this language?

As much as developers like to have a great language to build applications, many felt that V is too good to be true. Looking at the claims made on the site some developers thought that the creator is either not being truthful about the capabilities of V or is scamming people.

A language that has the simplicity of Go and the memory management model of Rust is what everyone desires. However, the main reason that makes people skeptical about V is that there is not much proof behind the hard claims it makes. A user on Hacker news commented, “…V’s author makes promises and claims which are then retracted, falsified, or untestable. Most notably, the source for V’s toolchain has been teased repeatedly as coming soon but has never been released. Without an open toolchain, none of the claims made on V’s front page [2] can be verified.

Another thing that makes this case concerning is that the V programming language is currently in alpha stage and is incomplete. Despite that, the creator is making $827 per month from his Patreon account. “However, advertising a product can do something and then releasing it stating it cannot do it yet, is one thing, but accepting money for a product that does not what is advertised, is a fraud,” a user commented.

Some developers are also speculating that the creator is maybe just embarrassed to open source his code because of bad coding pattern choices. A user speculates, “V is not Free Software, which is disappointing but not atypical; however, V is not even open source, which precludes a healthy community. Additionally, closed languages tend to have bad patterns like code dumps over the wall, poor community communication, untrustworthy binary behaviors, and delayed product/feature releases. Yes, it’s certainly embarrassing to have years of history on display for everybody to see, but we all apparently have gotten over it. What’s hiding in V’s codebase? We don’t know. As a best guess, I think that the author may be ashamed of the particular nature of their bootstrap.

The features listed on the official website are incredible. The only concern was that the creator was not being transparent about how he plans to achieve them. Also, as this was closed source earlier, there was no way for others to verify the performance guarantees it promises that’s why so much confusion happened.

Alex Medvednikov on why you can trust V programming

On an issue that was reported on GitHub, the creator commented, “So you either believe me or you don’t, we’ll see who is right in June. But please don’t call me a liar, scammer and spread misinformation.” Medvednikov was maybe overwhelmed by the responses and speculations, he was seeing on different discussion forums. Developing a whole new language requires a lot of work and perhaps his deadlines are ambitious.

Going by the release announcement Medvednikov made yesterday, he is aware that the language designing process hasn’t been the most elegant version of his vision. He wrote, “There are lots of hacks I’m really embarrassed about, like using os.system() instead of native API calls, especially on Windows. There’s a lot of ugly C code with #, which I regret adding at all.

Here’s great advice shared by a developer on V’s GitHub repository:

Take your time, good software takes time. It’s easy to get overwhelmed building Free software: sometimes it’s better to say “no” or “not for now” in order to build great things in the long run 🙂

Visit the official website of the V programming language for more detail.

Read Next

Docker and Microsoft collaborate over WSL 2, future of Docker Desktop for Windows is near

Pull Panda is now a part of GitHub; code review workflows now get better!

Scala 2.13 is here with overhauled collections, improved compiler performance, and more!