1,578 karma · joined November 15, 2016
Like complaining that V depends on OpenGl, Git, libc, and electricity!
If you've been dreaming about a language like this, give it a try. Spend 20 minutes on it, and form your opinion.
I'm sure you'll like it!
You don't have to use GC in V. It has optional manual management/autofree/arena.
V works just fine for low level stuff, we have a full os/kernel written in V, which can already run g++ and doom.
That's why we're working on Go2V, which will be able to fully translate Go code to V. (Having a language so similar to Go also helps.)
It's already been partially used in our translation of Go's crypto modules:
For example:
// os.v
fn open(path string) !File {}
// main.v
file := os.open('out.txt') or { panic('failed to open: $err') }
file := os.open('out.txt') or { return }
file := os.open('out.txt')! // propagate the error
if file := os.open('out.txt') {} // alternative scoped syntaxAny chance you could add `git pull` support as well?
By the way, the array hack was fixed, thanks for reporting.
If you find similar bugs, don't hesitate to report them.
The HN comment you referenced is from 2019. I was very anti-GC back then, that's why I didn't want to have a GC, but a model similar to Rust. After playing with GC, I realized it worked really well with V, and offered a better performance.
There's an article about these decisions on V's blog. They can change over years, you know.
If a project leader changes their mind on a technical decision over years and explains the reasons, that doesn't make them a liar.
The end goal is having good performance, flexible memory management, minimal resource usage.
can you please list any examples here?
Can you please list here actual examples of under delivering and misrepresenting?
Really sad that comments with opposing views can be so easily removed by downvoting.
e.g. Here's DOOM running in V (translated from C). Seems pretty serious:
https://www.youtube.com/watch?v=6oXrz3oRoEg
Also, can you look at this recent 0.4 changelog with 370 items and say the language is not serious?
Nothing in this article is relevant, but it still stays up, the only article in the blog.
But they are not as stable as OS thread support right now (will be much more stable in 0.4.1), and alas no Windows support yet.
Very excited about this release!
2160 commits pushed to master, 1205 bugs closed since V 0.3.
The changelog is huge: it has 370 items.
The highlights are coroutines with the scheduler, vweb improvements (live reloading, controllers, middleware, better multithreaded performance) and generally improved stability.
It's pretty much Go with Option/Result that forces you to handle errors:
f := os.create('foo.txt') or { println(err) return }