Edit: The author has redacted the binary release and says will release the binaries with the source on July 22nd , thus, this post is invalid at this point as nothing is released.
Just like you can no longer charge for compiler, I don't think it's possible in the future to not publish the source. The truth is, there are plenty of actual open source alternatives to C (zig, et al.), what makes some shadowy language a reasonable alternative?
For the kind of features that you wanted in your language, not just generics, requires a form of AST (abstract syntax tree), and if you language does not have an AST, which is technically possible, then you cannot have a lot of the features you have been advertising.
You should have framed your question as follows: those features can be implemented without an AST, but an AST is a standard and reasonable way to do them and not using an AST would require a strong rationale. So what's that rationale? (And amedvednikov, this is my question for you.)
V simply generates functions for every type they're used with.
So you have a "template" function as written in the source code and a list of actual functions generated. You can either generate them as a final step or on the fly as you encounter; in either ways you probably have a mapping from the function name to the function body or something similar. How is that stored?
Other than that, the design of the language looks nice and I will give it a spin at some point. Maybe I'll convert some HPC benchmarks to V and see how they perform.
I think J. Blow commented in one of his videos that he might be able to put some optimization on the x64 compiler (such as dataflow optimization) when the language is mostly complete. Although builds will be slower because of this, I still trust Blow that he will make a faster compiler than GCC/Clang, because the compiler will be specialized to its language rather than being all-purpose. (Also, C++ takes ridiculously lot to just parse everything, while Jai is must simpler to parse). Maybe V's developer will also work on some optimizations after the basic compiler's finished.
On the other hand, the reason they tend to be slow in large c/c++ programs is the module model basically meaning “behold as every file in your project parses and interprets large portions of the host platform’s standard library”. All modern languages know to avoid that - honestly if you want masochism I’d be curious to compare the time-to-execute for modern js engines, simply because they have incredibly large amounts of pressure to get to running code as fast as possible.
The standard library and package manager + packages will make or break V.
 ow, not open source yet.
README.txt: Right now there are several dependencies that you need to install: clang, glfw, freetype, libcurl.
web page claim: 400 KB compiler with zero dependencies
README.txt: Missing features that will be available soon: x64 machine code generation without a C compiler
web page claim: V compiles ≈1.2 million lines of code per second per CPU core. (Intel i5-7500 @ 3.40GHz, SM0256L SSD, no optimization). Such speed is achieved by direct machine code generation and a strong modularity.
README.txt: Missing features that will be available soon: hot code reloading
web page claim: Hot code reloading. Get your changes instantly without recompiling.
README.txt: Missing features that will be available soon: REPL
web page claim: V has a REPL
README.txt: Missing features that will be available soon: cross compiling
web page claim: Easy cross compilation. To cross compile your software simply run v -os windows . or v -os linux . No extra steps required, even for GUI and graphical apps!
Furthermore it's really shady to release only closed source builds 2 days before a source release. Why the sudden change of mind? https://twitter.com/v_language/status/1137750611389288450
There's evidence that this person cannot be trusted: https://github.com/voltapp/volt/issues/143
Some quotes from that issue:
"Do you go read firefox history?"
"Yea, this is really unnerving. I feel like I need to invalidate all my firefox sessions now. What did you do?"
"Lol that's what you guys get for running proprietary software."
More evidence of false claims: https://github.com/vlang/v/issues/35
I'm all on board with friendly competition, but this is pretty hostile behavior to the open-source community. Be honest about what your software can and cannot do. And release source or GTFO.
The compiler has ZERO dependencies, as stated on the website. You can build it with `clang v.c`.
Do you really think the compiler needs glfw or freetype to function? It's for the graphics library to build things like the tetris.v example.
As for clang, It was made very clear that V compiles to C in addition to emitting native code, and that it's much more stable at the moment.
Hot code reloading will be available on June 22.
Cross compiling already works, and you saw this on twitter. How can you claim it's a lie? https://twitter.com/v_language/status/1137537130887077890
What the heck, so you have claimed that it's just a readme or source cleanup but that was actually a huge missing feature. You said that you have high standards , but you don't seem to have high standards on what you say.
Do you ship the compiler with those libraries that require those packages? If yes, then the compiler is not 400kb. The compiler nowadays never means only the compiler executable, it means the complete environment it ships with.
The modules can have gigabytes of dependencies, this doesn't make the compiler depend on them.
And thats what I am saying. You don't even need to add the size of your stdlib. A compiler does not include the stdlib as per your definition . So your compiler is actually much less than 400kb.
On windows, clang is about 100 mb download and it further requires msvc install which is around 1 gb download if you only download the build tools.
That in itself is a fucking 1.1 gb dependency.
Note: some of the comments on that issue have been deleted by the v-lang creator as they were criticizing the claims made.
However, advertising a product can do something and then releasing it stating it cannot do it yet, is one thing, but accepting money for a product that does not what is advertised, is fraud.
If the features were advertised as goals, that would not have been an issue. But these features were advertised as existing and ready to use.
Please do not give this individual money!!!
If you want to support new languages that do as advertised, please support my language Odin or Andrew Kelley's language Zig.
Both are very good languages as alternatives to C but with different philosophies behind them.
That is the only complaint. You are advertising under false pretenses and asking for money for early access to a product (through Patreon) which does match what is advertised.
Second of all, you haven't listed any of these "false pretenses". Your AST and runtime points are laughable. So is the "dependency" on glfw and freetype.
What about this? :)
Are you going to retract your statement and apologize?
Oh my. This is alarming. I have never thought that the author was already getting that much money out of this incomplete piece of software.
https://www.patreon.com/vlang is the one in question
but he also has https://www.patreon.com/voltapp
How does this even get voted so high here? Just on the claims?
The source of V or any substantial V project haven't been released, and the author making inaccurate claims about the compiler (and taking donations on Patreon, by the way.) Why should we accept without skepticism that (closed source app) was written with (closed source language)?
000000010001dc30 g 0f SECT 01 0000 [.text] _f_1
000000010001eba0 g 0f SECT 01 0000 [.text] _f_10
00000001000219a0 g 0f SECT 01 0000 [.text] _f_100
000000010004bae0 g 0f SECT 01 0000 [.text] _f_462
000000010002a430 g 0f SECT 01 0000 [.text] _f_463
0000000100037940 g 0f SECT 01 0000 [.text] _f_464
000000010001f2f0 g 0f SECT 01 0000 [.text] _f_465
0000000100020220 g 0f SECT 01 0000 [.text] _f_47
0000000100020240 g 0f SECT 01 0000 [.text] _f_48
00000001000202b0 g 0f SECT 01 0000 [.text] _f_49
00000001000182a0 g 0f SECT 01 0000 [.text] _string_add
000000010001a110 g 0f SECT 01 0000 [.text] _string_all_after
000000010001a020 g 0f SECT 01 0000 [.text] _string_all_before
000000010001a090 g 0f SECT 01 0000 [.text] _string_all_before_last
0000000100019ef0 g 0f SECT 01 0000 [.text] _string_at
0000000100018540 g 0f SECT 01 0000 [.text] _string_clone
0000000100018aa0 g 0f SECT 01 0000 [.text] _string_contains
0000000100018610 g 0f SECT 01 0000 [.text] _string_cstr
0000000100019470 g 0f SECT 01 0000 [.text] _string_ends_with
0000000100018b30 g 0f SECT 01 0000 [.text] _string_eq
(I had to rewrite the reply because I later realized that the binary was packed with UPX, I should have thoroughly inspected strings. Sorry for inconvenience.)
Delete everything and run away with the money? Kick down the can and delay source release once more? Apologies? ("but but it's pre-alpha software!")
now other language designers need to learn from this project
keep your language simple, keep dependency list tiny, make clean syntax, focus on efficiency and small file size, and you win patrons
but people often then bloat their project, with uneeded features, that makes language harder to read, and harder for tooling to support it
i love Zig, i'm not using it, but i plan to once package manager is ready and vscode plugin with autocomplete and debugging is available
please make it happen, open bounties if you can't
I also think it's natural for people, both language creators and users, to react badly when they see that someone is essentially succeeding by lying to people in a space where there are honest alternatives that already work.
 https://github.com/vlang/v/issues/35 (For example, there are ways to implement generics or interfaces without AST, much harder but a possible endeavor.)
Calling me a scammer because "V requires glfw and freetype". I have no words.
Don't tell me that it is a pre-alpha and will be updated on 22 June, that reads like a sure way to instantly kill your reputation. Always make sure that what you have presented (not what you will present) and what you have said align to each other.
You say "also". What else?
So it is your hard dependency. Describe so.
> You say "also". What else?
If you think that they are spreading the misinformation because some of claimed dependencies are actually for stdlib, you should think again. A substantial subset of HN users would think that "zero dependencies" promise extends to stdlib, as it is technically possible to have out-of-box UI and graphics in the stdlib and especially Go was famous of its independent crypto and network libraries. Your statement was not clear enough.
There are three problems. The first is that closed languages die . V is not Free Software, which is disappointing but not atypical; however, V is not even open source, which precludes a healthy community. Additionally, closed languages tend to have bad patterns like code dumps over the wall, poor community communication, untrustworthy binary behaviors , and delayed product/feature releases. Yes, it's certainly embarrassing to have years of history on display for everybody to see, but we all apparently have gotten over it. What's hiding in V's codebase? We don't know. As a best guess, I think that the author may be ashamed of the particular nature of their bootstrap.
The second is that V's author makes promises and claims which are then retracted, falsified, or untestable. Most notably, source for V's toolchain has been teased repeatedly as coming soon, but has never been released. Without an open toolchain, none of the claims made on V's front page  can be verified.
Finally, because we can't not talk about it, V isn't a very compelling language. At best, it could be seen as an iterative improvement on Go. If V were more open, then we could make more sincere and complete comparisions, but as it is, V's author alone gets to control the comparisons  and benchmarks . Maybe the best argument to be made is that there is room for a series of languages which focus on compile speed, where languages like Go, Jai, and V compete based primarily on how quickly they can transform zero-cost abstractions into low-level code in a single pass.
...But if that's the game, then it's only a matter of time until one of them rediscovers FORTH...
> Most notably, source for V's toolchain has been teased repeatedly as coming soon,
It hasn't been teased repeatedly. It's been "coming in June" since February.
Can the V toolchain translate C++ to V? It could in February  and May . You had only to document it ; will the feature be available at the end of the week?
Now, waiting for your reply on my previous question about the deadlines. Why lie?
I'll address all their claims and lies in a blog post after the open source release on June 22.
How far does the 'linux' specification go. Say I want to run a V program on AIX what kind of libraries will I need?
What about the 'windows' specification. Do the redistributables support windows 2000/7/Vista/8/8.1/10
We have a lot of different systems on our clients, mac as well. It would be nice to read concrete requirements for running to really see how much effort rolling out a V application would be.
macos was out, but got pulled.
transpiring to c means you can sneak it in at work, which is nice
No global variables
No undefined values
No undefined behavior
No variable shadowing
Immutable variables by default
Pure functions by default
Immutable structs by default
me> Wow. That's a good feature set to have !
And you keep posting after this?
This language can claim to be very close to C/C++ in terms of runtime performance characteristics
because it compiles to C.
I'm reading the comments, clicking the links to GH issues, reading websites and blogs and comments and you seem to have a following. A loyal one. A vested one. Sure there are detractors, but if you step back and look; all your detractors are fueled either by your inaction, or your lack of transparency. All your supporters trust you, which is what you want. So all you have to do to take the wind out of the sails of your detractors is come clean, stop setting arbitrary forcasts mere hours into the future (pointless, sloppy, rude to your paying supporters), and just be straight. People paid hundreds of dollars for vlang. Do you think they care if there are a few hacks holding it together? They WANT to help you with this, and you claim to "want" their help and support.... SO LISTEN TO THEM!
There are hundreds of comments in this thread (many of which from shills and throwaways) that you could chop off at the knees by simply not jerking everyone around. Do yourself, and vlang, a favor and either embrace open-source (and all that entails) or don't. Just do something to stop all the drama. I haven't been able to learn ANYTHING about vlang (and I don't know if I want to) because of all this bullshit.
This breaks the site guidelines. Please review them and follow them when posting here.
I also broke the rules intentionally by using caps instead of asterisks. For that I apologize, but regardless of HN rules there is something going on in this thread. More than simple honest discussion.
To pick just one possible explanation, sometimes people feel so strongly about a topic that they are propelled into making a new account where they had previously been lurking. I don't know which account you're referring to, so I don't know if that's the case here. However, you don't need to "call" them anything. You can respond if you want to, as long as you do so thoughtfully and substantively and without personal swipes.
Edit: if you mean https://news.ycombinator.com/user?id=kingkong2022, we banned that account for egregiously breaking the site guidelines. A better way to express your frustration would have been to flag the egregious comments (see https://news.ycombinator.com/newsfaq.html). That brings them to moderator attention. You could also have emailed us at firstname.lastname@example.org, which would have brought it to our attention sooner.
Someone who says no first then yes later is a "good guy."
Honesty I don't see why the hype behind Vlang and why so optimistic comments here.
Vlang feels worse than a pre alpha software with a good marketing team that is just trying to make money. It does not even have the features it claims it has. But just look at its patreon, it gets much more than odin lang, which IMO is much further into development than vlang is.
That said, it would not be so bad if the developer did not make false claims and just say that this is pre-alpha software, but instead he makes bold claims and fights for them aggresively (see issue by gingerbill linked elsewhere on this page), which can now be seen that all of them have been lies.
Edit: (posting my comment from below)
People with patreon accounts should report this guy.
No it doesn't. You can build the compiler with `clang v.c`
> But the readme says that the UI package does not run on Linux, so how can Volt be written in Vlang?
The UI package is not available for everyone on Linux yet. Doesn't mean I can't use it.
> hot code reloading is not present
It will be on June 22.
Why do you spread lies and even ask to report me based on these lies? Are you the developer of Odin, who started a similar thread 3 months ago?
Note: You also deleted many comments by other individuals criticizing your claims in that issue too.
Most features requiring AST? Really? Codegeneration not possible to implement json decoding?
It's just as ridiculous as claims here like V depening on glfw and freetype.
Stating that V has no dependencies and then requiring dependencies means the original statement is false.
You have instantly earned much reputation by releasing Volt at the first time; that reputation is much easier to lose as well. People easily gets disappointed, no matter what you have achieved (or think that you can achieved); you should be very careful. Or you can stack much reputation that your mistake or short-sighted action doesn't harm yourself.
 Not that I like this form of release. Proprietary languages simply don't work in the modern world.
My comment was sarcasm by the way.
And sorry for the delay, I was sleeping.
EDIT: s/open source/free/
You can't call an unreleased language proprietary.
Many current programmers think F/OSS as a norm and proprietary (released or not) as exceptionally shady. Even though some may think proprietary software is acceptable, something being F/OSS is a label with the non-trivial amount of value. Your act can be interpreted as claiming that value without actually being F/OSS, no matter what was your intention.
Without releasing it you're expecting people to put blind faith in you.
V compiler doesn't require glfw or freetype. It doesn't require anything.
p.s. It says in the docs that its name is not vlang. That's just the web domain.
If so, all the single letter languages are getting stomped by Go, which is already used for a verb, noun and a preexisting programming language .
The technology to pick new and easily searchable names has existed since it was invented in 2005 by computer scientist Randall Munroe of xkcd. Language designers should use it. There are still unique 4 letter combinations available!
There is no longer any reason for separate scripting languages.
There is no longer any legitimate reason to write C code.
Rust had better watch its back.
I may soon begin to resent C++.