
V Programming Language released - nilsocket
https://vlang.io/
======
lajawfe
Let's not consider it released until the source is released. So much confusion
surrounding this language.

Edit: The author has redacted the binary release and says will release the
binaries with the source on July 22nd [1], thus, this post is invalid at this
point as nothing is released.

[1]
[https://twitter.com/v_language/status/1141625734953390081](https://twitter.com/v_language/status/1141625734953390081)

------
59nadir
I find these languages that are developed behind closed doors and have no
source published a bit frustrating. Even more so when they make big promises.

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?

~~~
asplake
Not published yet. Perhaps the author considers publishing prematurely to be
more hassle than its worth?

~~~
lifthrasiir
If it's the intention, the author surely has been misguided. A drama is
already happening (for example, [1]). While I think it is technically possible
to deliver all of them (it should be noted that it is not exactly an
optimizing compiler, which makes many things easier), it is natural and
understandable that people doubt its premise before the full release.

[1]
[https://github.com/vlang/v/issues/35](https://github.com/vlang/v/issues/35)

~~~
amedvednikov
I'd hardly call it a drama. Claims like it's not possible to build features
without AST or codegen json decoders are just ridiculous.

~~~
gingerBill
That is not what I stated in the issue.

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.

~~~
lifthrasiir
I should stress that _that_ is also your misconception. For example, you can
implement generics without an AST if you don't care about performance; codegen
can either output a single binary mandatorily requiring a sort of vtable
(therefore every parametric code will be indirected), or output a partial
binary with holes where holes will be patched later (much faster but disallows
optimization across hole boundaries).

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.)

~~~
amedvednikov
No you don't understand :) It's IMPOSSIBLE without AST. The Odin creator says
so. That's why I'm a liar.

V simply generates functions for every type they're used with.

~~~
lifthrasiir
> V simply generates functions for every type it's 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?

------
lamchob
While it looks nice, it brags about it's compilation speed while
simultaneously not offering any optimizations. If you want to have
optimizations, C/C++ source-to-source compilation is required, which is slower
by factor of 10. After that, a traditional C/C++ compiler runs the
compilation/optimization, which again, costs time. What use is fast a
compilation, if the resulting program can be slower by orders of magnitude?

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.

~~~
s_y_n_t_a_x
You can build and test faster using the direct to machine code compiler, then
use the C compiler for a final production test and distribution.

~~~
lamchob
You are right in a scenario where testing is lightweight and quick. I'm sure
this can cover a lot of use cases. However, If the testing/development itself
involves heavy computation (large integration tests for example), there are
diminishing return from quick but unoptimized compilation.

------
AndyKelley
What happened to releasing the source code today?
[https://twitter.com/v_language/status/1137750611389288450](https://twitter.com/v_language/status/1137750611389288450)

~~~
lifthrasiir
[https://github.com/vlang/v](https://github.com/vlang/v) says the source code
will be released on 2019-06-22.

------
maxgraey
Hmm, autor promised he use some simple range/lifetime analysis for semi-auto
memory management. But seems it's not true:
[https://twitter.com/8vit_devel/status/1141573808320647168](https://twitter.com/8vit_devel/status/1141573808320647168)

------
keyle
I don't really get excited by new languages but I must say I really like what
I'm seeing here going through the docs. This is what I wanted nim to be, but
with the safety.

The standard library and package manager + packages will make or break V.

[edit] ow, not open source yet.

~~~
dom96
The safety? What safety does V offer that Nim doesn't?

------
danite
The too good to be true alarm bells in my head are ringing. There's almost no
way it delivers on all of the features listed here. Gonna need a lot of proof
to back all of this up.

~~~
esimov
It's a scam. You can promise bells and whistles as many as you want but you
have to prove it.

------
AndyKelley
This guy is a complete fraud. He's collecting $927/month on Patreon by
deceiving generous and hopeful programmers. The claims on the web page are
outright lies.

\----

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](https://twitter.com/v_language/status/1137750611389288450)

There's evidence that this person cannot be trusted:
[https://github.com/voltapp/volt/issues/143](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](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.

~~~
amedvednikov
Wow, calling me a fraud and a scam artist based on these "facts"?..

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](https://twitter.com/v_language/status/1137537130887077890)

~~~
lifthrasiir
> Hot code reloading will be available on June 22.

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 [1], but you don't seem to have high standards on what you say.

[1] [https://blog.vlang.io/post/13/Why-isn't-everything-
already-o...](https://blog.vlang.io/post/13/Why-isn't-everything-already-open-
source)

~~~
amedvednikov
You need to detect sarcasm. Did you think I was serious when I said I was
delaying by 2 days to clean up readme?

~~~
lifthrasiir
If you weren't serious at that time it'd be a bigger problem.

------
blondin
weird how other language creators are ganging up against the author here...

~~~
lifthrasiir
Because language creators do know what is possible and what is hard. I think
the Odin's creator has made some mistakes when presenting one's criticism [1]
but even without knowing much PL knowledge AndyKelley is very clearly showing
that it is shady.

[1]
[https://github.com/vlang/v/issues/35](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.)

~~~
amedvednikov
Yes, Andy Kelley being really reasonable:

[https://news.ycombinator.com/item?id=20231484](https://news.ycombinator.com/item?id=20231484)

Calling me a scammer because "V requires glfw and freetype". I have no words.

~~~
lifthrasiir
And also clang. If your initial release only has a code generation using
clang, it is your hard dependency. Windows doesn't have a native compiler and
it must have a compiler beforehand---so a bare compiler wouldn't work at all!
(I know that the initial release lacked Windows. But I have no reason to
believe that the Windows version will be different.)

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.

~~~
amedvednikov
C is the L0 language needed for bootstrapping anyway.

You say "also". What else?

~~~
lifthrasiir
> C is the L0 language needed for bootstrapping anyway.

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.

~~~
amedvednikov
The graphics libraries are not part of stdlib, UI only uses system libraries
that are preinstalled.

Next?

------
letters90
I'm curious but too lazy to look it up myself. SO I'll just ask.

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.

~~~
amedvednikov
V apps run on Windows XP without any issues. Rolling out a V application is
just releasing one .exe file.

~~~
lifthrasiir
It is not that simple. If you are not careful you may end up using more recent
winapi functions and/or constants that do not exist in XP. For example Rust
supports XP on a best-efforts basis and as a result has broken XP support from
time to time (the "tier 3" support [1] explicitly allows this situation).
Unless you can run an automated CI on XP (does that even exist?!) you'd better
support only recent OSes.

[1] [https://forge.rust-lang.org/platform-
support.html#tier-3](https://forge.rust-lang.org/platform-support.html#tier-3)

------
datashaman
Title is slightly misleading. Only binaries for MacOS have been released.
Windows and Linux are coming soon. And the source code is to be released on
22nd June.

~~~
ardaozkal
And macos binary was pulled.

------
onesmalldrop
thought this looked interesting a couple of months ago, still looks very
interesting now.

transpiring to c means you can sneak it in at work, which is nice

------
truth_seeker
No null

No global variables

No undefined values

No undefined behavior

No variable shadowing

Bounds checking

Option/Result types

Generics

Immutable variables by default

Pure functions by default

Immutable structs by default

me> Wow. That's a good feature set to have !

~~~
lajawfe
Yes, a very good feature set "to have". I think, at this point not even half
of them are implemented. The author is doing a major disservice by presenting
as if everything is complete in the main website.

~~~
amedvednikov
you can go to vlang.io/play and see for yourself instead of spreading
misinformation

~~~
lajawfe
I must clarify, not out of the features listed by GP, but the features listed
on the website. No ill will towards you, but the source of all the problems
seems to be - how you present the state of language on the website as if it
already has all the features noted there. And you seem to have different
standards for feature completeness [1], while others expect the feature to be
completely implemented, not just a proof of concept with tons of work still
required. Again to clarify, I do like the idea behind this language and hope
all the best for it.

[1]
[https://twitter.com/8vit_devel/status/1141573808320647168](https://twitter.com/8vit_devel/status/1141573808320647168)

------
esimov
I do not want to blame Go, since I'm programming in Go from quite a long time
and I love it, but to claim a programming language which is written in Go fast
is exaggerated and an outrageous lie. Go could not match the speed of C/C++ so
how can be this programming language declared as fast??

~~~
lamchob
It is not written in Go. Go was only used to bootstrap the first compiler.
Newer compiler versions are written in V itself.

~~~
esimov
Ok I see now, but still we do not have any evidence about the source code.

------
kingkong2022
The claims in the homepage are completely refuted by the readme in the
downloaded package. The compiler is not 400 kb dependency free. It requires
shit ton of stuff. The codegen as well as hot code reloading is not present,
so even the compiler performance claims and hcr on the homepage are lies. Even
Rust like memory management that they claimed is not there. Volt is said to be
written in Vlang using the UI present in this download. But the readme says
that the UI package does not run on Linux, so how can Volt be written in
Vlang?

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) [https://support.patreon.com/hc/en-
us/articles/204914235-How-...](https://support.patreon.com/hc/en-
us/articles/204914235-How-do-I-report-content-that-violates-community-
guidelines-)

People with patreon accounts should report this guy.

~~~
amedvednikov
> It requires shit ton of stuff.

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?

------
zelon88
I'm gonna jump in here too and ask; why are you doing all this to yourself?

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.

~~~
dang
> many of which from shills

This breaks the site guidelines. Please review them and follow them when
posting here.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

~~~
zelon88
What else should I call an account that was created today with 10 posts on
this one thread?

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.

~~~
dang
Internet users are a million times too quick to jump to the conclusion that
other internet users must be dishonest, shills, or spies, simply because they
hold a different view. The explanation is nearly always much more mundane.
Meanwhile such accusations are toxic in their own right—they have a poisonous
effect on HN. That's why the guidelines rule out making these insinuations.
I've posted a lot about this if you or anyone want more explanation:
[https://hn.algolia.com/?query=by:dang%20astroturfing&sort=by...](https://hn.algolia.com/?query=by:dang%20astroturfing&sort=byDate&dateRange=all&type=comment&storyText=false&prefix=true&page=0).

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.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

Edit: if you mean
[https://news.ycombinator.com/user?id=kingkong2022](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](https://news.ycombinator.com/newsfaq.html)).
That brings them to moderator attention. You could also have emailed us at
hn@ycombinator.com, which would have brought it to our attention sooner.

------
roenxi
Is there some sort of prize in the world of programming languages for coming
up with names where you have to append "programming language" to every search
query to find what you want?

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 [0].

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!

[0] [https://en.wikipedia.org/wiki/Go](https://en.wikipedia.org/wiki/Go)

~~~
ardaozkal
Worst part? There's already a vlang. [https://vlang.org/](https://vlang.org/)

------
ncmncm
There is no longer any excuse for Go to exist.

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++.

