GitHub repo Discuss on Slack @vlang_io /r/vlang
Subscribe to development updates:
Donate via PayPal

The V Programming Language

Fast, safe, compiled language created for developing Volt, soon available for everyone.

Open source release in June 2019. Early access on April 15.
Install V from source in 0.5 seconds
wget vlang.io/v.c && gcc -o v v.c
fn main() {
	types := ['game', 'web', 'tools', 'GUI']
	for typ in types {
		println('Hello, $typ developers!')
	}
}	

Fast compilation

V compiles 1.5 million lines of code per second per CPU core
cd doom3/
wc -l doom3.v     # 458 713
time v doom3.v    # 0.5s *
Compilation speed benchmark and comparison with other languages.

Safety

  • No global state
  • No null
  • No undefined values
  • Option types
  • Generics
  • Immutability by default
  • Partially pure functions
  • C/C++ translation

    V can translate your entire C/C++ project and offer you the safety, simplicity, and up to 200x compilation speed up.
    std::vector<std::string> s;
    s.push_back("V is ");
    s.push_back("awesome");
    std::cout << s.size(); 
    	s := []string 
    	s << 'V is '
    	s << 'awesome'
    	println(s.len)
    Read about translating Doom & Doom 3, LevelDB, SQLite (coming in March).

    400 KB compiler with zero dependencies *

    The entire language and its standard library are less than 400 KB. You can build V in 0.3 seconds.

    For comparison:

    Space requiredBuild time
    Go525 MB1m 33s
    Rust30 GB45m
    gcc8 GB50m
    Clang15-20 GB25m
    Swift70 GB *90m
    V0.4 MB0.3s

    Performance

  • As fast as C
  • Minimal amount of allocations
  • Built-in serialization without reflection
  • Hot code reloading

    Get your changes instantly without recompiling!

    Since you also don't have to waste time to get to the state you are working on after every compilation, this can save a lot of precious minutes of your development time.

    Demonstration of hot code reloading.

    Simple language for building maintainable programs

    You can learn the entire language by going through the documentation in half an hour.

    Despite being simple, it gives a lot of power to the developer. Anything you can do in other languages, you can do in V.

    REPL

     v
     >> data := http.get('https://vlang.io/utc_now')? 
     >> data 
     '1551205308' 
    

    Native cross platform UI library

    Build native apps that look native. You no longer need to embed a browser to develop cross platform apps quickly.

    Run everywhere

    V can compile to (human readable) C, so you get the great platform support and optimization of gcc and Clang.

    FAQ

    Why create V when there are already so many languages? Why not use Go, Rust, C++, Python etc?

    Detailed comparison of V and other languages.


    What language is V written in?

    V. The compiler can compile itself. The original version was written in Go.


    Does V use LLVM?

    No. V compiles directly to machine code. It's one of the main reasons it's so light and fast. Right now only x64 architecture/Mach-O format are supported. Once V is open-sourced, other architectures and formats should be implemented relatively quickly.

    V can also emit human readable C, which can then be compiled to run on any platform. This way the compilation speed is about 10 times slower (≈200k lines/second).


    What about optimization?

    For now V emits C and uses GCC/Clang for optimized production builds. You get access to sophisticated optimization.

    Such builds are compiled ≈150 times slower than V development builds (but are still faster than C++ builds).

    This can be a problem for industries where optimization is required during development (for example AAA games). In this case hot code reloading can be used.

    In the future V will have its own optimizer.


    Is there garbage collection?

    No. V's memory management is similar to Rust but much easier to use. More information about it will be posted in the near future.


    Is there going to be a package manager?

    Yes! V is a very modular language and encourages creation of modules that are easy to reuse. There will be a central package manager, and installing modules will be as easy as

    v install sqlite

    Is V going to change a lot before v1.0?

    No. The things you can learn from documentation today are going to stay the same. It's one of the benefits of a simple language.

    When designing V, I spent a lot of time on research to make sure I won't have to change things in the future.

    Even if something does change, there will be an automatic migration tool.


    What operating systems are supported?

    Windows, macOS, Linux, *BSD. On release, only Linux and macOS.


    Why "V"?

    Initially the language had the same name as the product it was created for: Volt. The extension was ".v", I didn't want to mess up git history, so I decided to name it V :)

    It's a simple name that reflects the simplicity of the language and it's easy to pronounce for everyone in the world.

    Please note that the name of the language is "V", not "Vlang" or "V-Lang" etc.

    Under which license is V going to be published?

    MIT.



    Have an unanswered question? Contact me.

    Software built in V

    V

    V itself is written in V.

    Volt

    Native desktop client for Slack, Skype, Matrix, Telegram, Twitch and many more services.

    Filey

    Cross platform file manager with Miller Columns and built-in selective sync with major cloud platforms.

    Vid

    Open source 200 KB editor with the performance of Sublime Text.

    C/C++ to V translator

    This tool supports the latest standard of notoriously complex C++ and allows full automatic conversion to human readable code.

    V ui

    Cross platform widget toolkit using native APIs.

    gitly

    Open-source light and fast alternative to GitHub/GitLab.