I see vlang (https://vlang.io) in github trending repos(https://github.com/trending). I have looked at this some time back and it looked too good, basically go with a hint of Rust. I have few questions to hard core compiler engineers and other PL experts.<p>What vlang is trying to do is possible with out a GC of any kind(including ref counting)?
If yes, why none of the modern PLs took this route?
The author's claims are fairly loosely worded so it's hard to make much of a determination until the relevant code ships in some form.<p>For example, the documentation claims both no memory leaks and C/C++ translation. It's not possible to do both in general because C and C++ programs can have memory leaks. Presumably what the language will end up with is the ability to translate some subset of C and some subset of C++ automatically. That may or may not be generally useful depending on the details of the subset.<p>Even the claim of no memory leaks itself is a bit suspect. GC'd languages don't make that strong a claim. With a sufficiently restrictive language, it's probably possible to achieve but I'm not sure how useful that language would be. My guess is that it'll probably morph into a claim about memory safety which is more reasonable.<p>Finally, please don't take this as a criticism of the language. It's still too early to have a sense of that. It's perfectly possible for the language to fall some way short of its pitch and be really great. But that's obviously caveated by a variation of the old adage that all of the code I haven't written yet is bug free.
This memory model would be possible and practical without references.
mut off by default, nice. pure by default, nice.
Allocate everything on the stack (hopefully with overflow checks unlike rust), but change internally to heap allocation with automatic scope tracking and deallocation (easy with gcc or clang). copy by default.<p>But with threads and refs you need more than that, namely ownership tracking and compile-time errors on wrong argument attributes (mut, ref).
Imho V does nothing of that. To ensure concurrency safety, like in Pony.
And haven't checked if stack overflows are caught on recursive calls, or if tail call conversion is done, to make it practical even with the stack limitations.<p>What I really liked of V was the OO system.