ted.neward@newardassociates.com | Blog: http://blogs.newardassociates.com | Github: tedneward | LinkedIn: tedneward
introduce the core V syntax
explore the V type system and semantics
get a sense of how to use V well
Code: https://github.com/tedneward/Demo-V
Slides: http://www.newardassociates.com/presentations/BusyDevsGuide/V.html
"V is a statically typed compiled programming language designed for building maintainable software.
"It's similar to Go and its design has also been influenced by Oberon, Rust, Swift, Kotlin, and Python.
"V is a very simple language. Going through this documentation will take you about a weekend, and by the end of it you will have pretty much learned the entire language.
"The language promotes writing simple and clear code with minimal abstraction.
"Despite being simple, V gives the developer a lot of power. Anything you can do in other languages, you can do in V."
Transpiles to C
including itself!
can also do C to V translation
Flexible memory management
full GC, "autofree", none, or arena (pre)allocation
C interoperability; includes Python and Ruby interop examples
Fast compilation; native, JavaScript, and WebAssembly backends
Single binary output (no dependencies)
https://play.vlang.io/
Good for taking just a quick peek
But as with all online playgrounds, limits the full exploration experience
macOS, Linux: brew install vlang
Windows:
Docker: docker run -it --name v-container thevlang/vlang /bin/bash (Debian Buster)
Build from source: git clone --depth=1 https://github.com/vlang/v; cd v; make
on Windows, use make.bat
Build docker image from source
same as above
docker build -t vlang .
docker run --rm -it vlang:latest
V uses tcc (Tiny C Compiler) as a bootstrap for development builds
Prod builds are better done using clang/gcc/msvc
VSCode
Vim
JetBrains
Emacs
Sublime Text, Atom, zed
... plus a generic language server for any you want to add
Verify: v --version
as of Nov 2025, returns "0.4.12"
REPL: v or v repl
help to see full (short) list of commands
exit, Ctrl-C, or Ctrl-D to exit
REPL: What time is it now, in UTC?
>>> import net.http
>>> data := http.get('https://vlang.io/utc_now')!
>>> data.body
1565977541
Create a new V project in a new directory: v new
Scaffolds out a few files
.editorconfig
.gitattributes
.gitignore
.git (Directory)
main.v
v.mod
Code
module main
fn main() {
println('Hello World!')
}
Run
$ v run main.v Hello World! $
Website: https://vlang.io/
Documentation: https://docs.vlang.io/introduction.html
Tutorials:
Nothing written, just examples in GitHub repo
https://github.com/vlang/v/blob/master/tutorials
Stdlib documentation: https://modules.vlang.io/
Blog: https://vlang.veery.blog/blog
it's... not great, very clearly an alpha/experiment
"Getting Started with V Programming"
https://www.amazon.com/gp/product/1839213434
"Randomness Revisited using the V Programming Language"
https://novapublishers.com/shop/randomness-revisited-using-the-v-programming-language
Architect, Engineering Manager/Leader, "force multiplier"
http://www.newardassociates.com
http://blogs.newardassociates.com
Sr Distinguished Engineer, Capital One
Educative (http://educative.io) Author
Performance Management for Engineering Managers
Books
Developer Relations Activity Patterns (w/Woodruff, et al; APress, forthcoming)
Professional F# 2.0 (w/Erickson, et al; Wrox, 2010)
Effective Enterprise Java (Addison-Wesley, 2004)
SSCLI Essentials (w/Stutz, et al; OReilly, 2003)
Server-Based Java Programming (Manning, 2000)