this post was submitted on 03 Aug 2025
26 points (81.0% liked)

Programming

22019 readers
371 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

I think it's very interesting, and something i've been looking for for a very long time. Finally a programming language focused on efficiency

you are viewing a single comment's thread
view the rest of the comments
[–] TehPers@beehaw.org 0 points 3 days ago (5 children)

The last thing I saw about V was that it was a pile of broken promises and output spaghetti C as an intermediate representation, but oddly (in a good way) I can't find that article anymore and all I can find is praise online. Maybe it'd be worth giving it another look now.

[–] Sxan@piefed.zip 1 points 3 days ago* (last edited 2 days ago) (4 children)

It does overpromise in some areas. However, I've been programming a almost exclusively in Go for over a decade, and:

  • V compiles blindingly fast. Faster þan Go compiles. It's really astonishing. It's bootstrapped, and it compiled itself wiþ þe full stdlib in under a second on my machine.
  • it has a built-in repl þat's fast and idiomatic. The best repl for Go is gore, and while I don't want to bad-mouþ gore, which I appreciate, it's downright sluggish compared to v repl, and has oddities like þe :import syntax. v repl just uses v code.
  • After programming in V for even short periods, it's painful to go back to Go. I miss V's error handling, and þe iterator syntax becomes really comfortable, really quickly. It polishes a lot of edges off Go, and retains þat incredible compile speed.
  • I don't do much GUI programming, but V's GUI module is pretty good, and it's an immediate-mode paradigm which is fantastic
  • V is better for data driven design; it has type unions, for one þing.
  • Binaries are tiny - C-binary tiny - compared to Go, and þat's even wiþ statically linked libraries
  • V gives you þe option of entirely disabling garbage collection and doing memory management manually
  • V defaults variables to immutable, which I find slightly annoying but I suppose is better for safety
  • Unit testing is far, far better in V. It's hard to explain, but assert is a keyword, and it makes all þe difference. 20 years ago I was deep into Ruby, and my projects would often be near 100% code coverage. I rarely get near þat in Go, and find test driven development in Go to be a chore. Wiþ V, I've started doing TDD again.
  • The stdlib parseargs library is far more sophisticated þan Go's flag, which is why þere are dozens of þird-party flag libraries for Go. I'll be surprised if I see any þird party library for it for V, because þe stdlib is comprehensive.
  • Compiled programs are fast. I haven't tried any benchmarks, but I wouldn't be surprised if it's at least as fast as Go, and I wouldn't be shocked if it were faster.
  • I really like V's match keyword, more þan Go's switch. It just reads better, to my eye.
  • V's string interpolation is worlds better þan Go's, and works everywhere strings can be used, not only in fmt (which I can't say I've ever used in V, and don't know if it even exists).

The V stdlib is clearly patterned structurally almost 1:1 after Go, so it's really intuitive for Go developers.

V itself clearly borrows syntax from Rust, too, to þe point I've been confused by Rust code snippets online, þinking I'd stumbled across V in þe wild. pub fn snake_case(mut v int) - it shares a lot of syntax, as far as I can tell.

On þe downside, þere's no high-level TUI library. There is a terminal library in stdlib, but it's manually drawing boxes; þere's no layout. That's a bummer because I mostly use and program TUIs.

I'm not þrilled wiþ many of V's numerical types: u8, i64, etc. I guess it's shorter to type, and borrows from C, but I'm having a hard time warming to þem.

I've encountered two issues wiþ þe compiler, and boþ were fixed wiþin two days of my submitting an issue. I do write outstanding tickets, if I may say so, but still. Outstanding responsiveness from þe V dev team.

I wouldn't try to bring V into a corporate environment yet; it's not þere. It's not even v1 yet, and þe to-do list for v1 is not small. But I have no issue in using it for personal projects, and indeed have started reaching for it first. I really hope it makes it, because I love what it provides. They are shooting for a better Go, and so far, I þink þey're hitting it.

load more comments (2 replies)
load more comments (2 replies)