When Alexander Medvednikov announced the V language it was to both cheers of “This is the best language I’ve seen!” and skepticism “These claims can’t possibly be true”. Controversies have dogged the V language to the point that actual contributors and users have very little tolerance to critics. As one Hacker News user put it: “Vlang is infamous for crowdfunding on the back of many extremely grandiose, but not actually implemented claims.” link But lost in the noise is a simpler question: is it actually good as a language? So rather than diving into the history of the language, let’s start with first impressions. First impressions Out of the box, running just v launches a REPL. This enforces the feel of a high level language even if the compiler warns that it’s “highly experimental”. As expected, the “Hello, world” is simple and script-like: fn main() { println("Hello, world!") } Again, similar to scripting languages, V has its own package repository somewhat unimaginatively called VPM. While not beating Odin, it’s close: just type v install raylib and it’s downloaded. Using the Raylib bindings clearly shows that they are generated: raylib.is_key_down(int(raylib.KeyboardKey.key_down)) is not particularly reasonable compared to Zig’s rl.IsKeyDown(rl.KEY_LEFT) or Odin’s rl.IsKeyDown(.LEFT), but inevitable with the C-to-V conversion the bindings rely on. import raylib fn main() { raylib.init_window(1280, 768, 'Testing') mut pos := raylib.Vector2{640, 320} for !raylib.window_should_close() { raylib.begin_drawing() raylib.clear_background(raylib.blue) raylib.draw_rectangle_v(pos, raylib.Vector2{32, 32}, raylib.green) if raylib.is_key_down(int(raylib.KeyboardKey.key_left)) { pos.x -= 400 * raylib.get_frame_time() } if raylib.is_key_down(int(raylib.KeyboardKey.key_right)) { pos.x += 400 * raylib.get_frame_time() } if raylib.is_key_down(int(raylib.KeyboardKey.key_up)) { pos.y -= 400 * raylib.get_frame_time() } if raylib.is_key_down(int(raylib.KeyboardKey.key_down)) { pos.y...
First seen: 2025-05-18 00:49
Last seen: 2025-05-18 00:49