Live data from Hacker News

V Language Review

mawfig.github.io

241–250 of 336 posts

Re: V Language Review

#241

Earlier quoted context omitted.

Hate mail? Really? Care to post an example?

Hate mail is fairly typical in these circumstances. So is people asking for evidence. The possible next stages are also predictable: 1. They don't post it, and get accused of lying. 2. They post one of the tamer examples, and get accused of overreacting to nothing. 3. They post a median example, and get told that people reacting with vigour is normal and it's not about them. 4. They post a very strong example, hurtin…

Yes, there is a good possible outcome - they post it, we see it, and then, if possible, we take corrective actions.

Especially after writing "people will assume that being an asshole is a representative sample of those groups. It is not, but logic is not this species' strong suit."

=> xena does acknowledge, that most people will assume that the whole V community is hateful, and even then, used terms like "V cult" and "hatemail".

Accusing an entire community of people of hate, for the actions of a single one, is not nice at all, especially, when it is done without evidence, with just vague descriptions.

Have you considered, that in all these, it may be the V developers, that are in the minority???

Re: V Language Review

#242
post #143

Earlier quoted context omitted.

> I would encourage you to respond to the actual points raised in my post. ok, here is the first thing that I noticed, reading your blog post/review. > No undefined values ... > C allows you to use an uninitialized variable which can result in Undefined Behavior. I’ll assume that’s what this means. ... > Typically, uninitialized values come from a memory allocation that hasn’t been written to. ... > Let’s see if we c…

Hmm. So the claim article was examining here was "no undefined values", and you point out that the value is actually initialized to 0 and is thus not undefined. However, the vlang.io page also makes the separate claim (as mentioned in the article) of "no null". But you seem to be saying that the bug in this case was actually a null pointer?

Yes, it is a null pointer, produced by the initialization to 0, as you noticed.

That is the current state - V wants to prevent setting pointers to arbitrary values, including 0, outside of unsafe code, but not all cases are checked yet, and you can get one. For example, you can also still cast numbers to pointers without unsafe{}:

    x := voidptr(0)
    println(x)
... and that will compile without an error, and produce `0x0`.

You can also search the issues, and find other examples of code, that ultimately produced null pointers.

Re: V Language Review

#243

Earlier quoted context omitted.

Can you elaborate how language features failed V? And what claims were extraordinary? Like the language compiling itself in https://www.youtube.com/watch?v=pvP6wmcl_Sc

Look, you are doing what I've just said not to do. I have nothing to say because the OP did most of claims already, you should directly respond to the OP. And you are slightly altering the very claim you've already said; the OP specificially tests the claim that "V compiles [...] ~1 million (x86 and tcc backends) lines of code per second per CPU core", which I can easily verify on my machine (1m_helloworld.v took 25.…

You made a claim:

> extraordinary claims failed V.

I asked you to list such claims. You fail to do so.

There's no way it takes 15s to compile 1m_helloworld.v. You're probably using a debug build of V.

What's your hardware? CPU/SSD.

Re: V Language Review

#244
post #238

Earlier quoted context omitted.

All the features you listed are there, maybe with bugs, which is expected for a 0.2/0.3 version, but they are there.

If someone advertises their language as having no Null, no reading from uninitialized memory, and no mutation of immutable values, then I really do expect to be able to rely on those being completely absent. It is dishonest and shameful to say "No null" on the front page of the website when the developers are well aware of ways that their system fails to actually prevent null references. If I'm buying a sandwich adve…

No, you would look at the version of the language, realize it's 0.2 and not production ready yet.

Re: V Language Review

#245

Earlier quoted context omitted.

Also, we now have an operating system Vinix, which uses autofree. Does that work as a proof for you or is that also not enough?

And that's why vinix [1] is full of manual free calls? That tells how good autofree is, isn't it? Can you compile v compiler with autofree? Last time I checked, you can't. [1] https://github.com/vlang/vinix/search?q=free&type=code

Because surprise it's 0.2, and autofree has bugs, can you imagine?

Re: V Language Review

#247
post #42

Earlier quoted context omitted.

Every evaluation in my blog is fully reproducible from the version of V I linked to and I've included all the source code used as well. My post stands on it's own. Instead of insinuating I'm some kind of competitor or have a personal agenda, I would encourage you to respond to the actual points raised in my post.

> I would encourage you to respond to the actual points raised in my post. ok, here is the first thing that I noticed, reading your blog post/review. > No undefined values ... > C allows you to use an uninitialized variable which can result in Undefined Behavior. I’ll assume that’s what this means. ... > Typically, uninitialized values come from a memory allocation that hasn’t been written to. ... > Let’s see if we c…

> ...apparently people these days have an entire month to dedicate on writing a "review" with a "Rules of engagement" section, but do not have 5 minutes to submit a github issue...

You would think that someone taking that long to do an evaluation of claims would reach out to the V developers in some way. Like via bug report, e-mail, discord, or discussion... If a person doesn't want to give the appearance of doing an attack or "hit piece", you would think they would at least create some plausible deniability for themselves, by taking in account the perspective or response of the language developers.

I'm glad you are taking the time to do counter points and add issues on GitHub (https://github.com/vlang/v/issues), as this situation can be turned to being helpful for V. Whatever is in the evaluation that has some validity, can then be corrected or V developers can point how the evaluation was in error or mistaken.

Re: V Language Review

#248

Earlier quoted context omitted.

Look, you are doing what I've just said not to do. I have nothing to say because the OP did most of claims already, you should directly respond to the OP. And you are slightly altering the very claim you've already said; the OP specificially tests the claim that "V compiles [...] ~1 million (x86 and tcc backends) lines of code per second per CPU core", which I can easily verify on my machine (1m_helloworld.v took 25.…

You made a claim: > extraordinary claims failed V. I asked you to list such claims. You fail to do so. There's no way it takes 15s to compile 1m_helloworld.v. You're probably using a debug build of V. What's your hardware? CPU/SSD.

> There's no way it takes 15s to compile 1m_helloworld.v. You're probably using a debug build of V.

You don't have to guess because I can give you my log. I have exactly followed what the OP did, except for more recent revision because I couldn't get it compiled in my environment.

    $ git clone https://github.com/vlang/v/
    $ cd v
    $ git checkout 0e4198f23b2b9a52d72f61dd40d019412b809791

    $ VFLAGS="-prod" make
    make fresh_vc
    make[1]: Entering directory '/tmp/v'
    rm -rf ./vc
    git clone --depth 1 --quiet --single-branch https://github.com/vlang/vc ./vc
    make[1]: Leaving directory '/tmp/v'
    cd ./vc && git clean -xf && git pull --quiet
    make fresh_tcc
    make[1]: Entering directory '/tmp/v'
    rm -rf ./thirdparty/tcc
    git clone --depth 1 --quiet --single-branch --branch thirdparty-linux-amd64 https://github.com/vlang/tccbin ./thirdparty/tcc
    make[2]: Entering directory '/tmp/v'
    make[2]: Leaving directory '/tmp/v'
    make[1]: Leaving directory '/tmp/v'
    cd ./thirdparty/tcc && git clean -xf && git pull --quiet
    cc  -std=gnu99 -w -o v1.exe ./vc/v.c -lm -lpthread
    ./v1.exe -no-parallel -o v2.exe -prod cmd/v
    ./v2.exe -o ./v -prod cmd/v
    rm -rf v1.exe v2.exe
    Note: building an optimized binary takes much longer. It shouldn't be used with `v run`.
    Use `v run` without optimization, or build an optimized binary with -prod first, then run it separately.

    Note: `tcc` was not used, so unless you install it yourself, your backend
    C compiler will be `cc`, which is usually either `clang`, `gcc` or `msvc`.

    These C compilers, are several times slower at compiling C source code,
    compared to `tcc`. They do produce more optimised executables, but that
    is done at the cost of compilation speed.

    V has been successfully built
    V 0.2.4 0e4198f

    $ cat > t.sh && chmod a+x t.sh && ./t.sh > 1m_helloworld.v
    #!/bin/bash
    echo 'fn main() {'
    for i in {3..1000000}
    do
        echo '    println("hello world")'
    done
    echo '}'

    $ time ./v 1m_helloworld.v
    parsed 100000 statements so far from fn main.main ...
    parsed 200000 statements so far from fn main.main ...
    parsed 300000 statements so far from fn main.main ...
    parsed 400000 statements so far from fn main.main ...
    parsed 500000 statements so far from fn main.main ...
    parsed 600000 statements so far from fn main.main ...
    parsed 700000 statements so far from fn main.main ...
    parsed 800000 statements so far from fn main.main ...
    parsed 900000 statements so far from fn main.main ...

    real    0m14.929s
    user    0m6.516s
    sys     0m8.031s
I have also verified that TCC was indeed in use:

    $ mv thirdparty/tcc/tcc.exe thirdparty/tcc/tcc.exe.orig

    $ time ./v 1m_helloworld.v
    parsed 100000 statements so far from fn main.main ...
    parsed 200000 statements so far from fn main.main ...
    parsed 300000 statements so far from fn main.main ...
    parsed 400000 statements so far from fn main.main ...
    parsed 500000 statements so far from fn main.main ...
    parsed 600000 statements so far from fn main.main ...
    parsed 700000 statements so far from fn main.main ...
    parsed 800000 statements so far from fn main.main ...
    parsed 900000 statements so far from fn main.main ...
    ==================
    cc: internal compiler error: Killed (program cc1)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See  for instructions.
    ...
    ==================
    (Use `v -cg` to print the entire error message)

    builder error:
    ==================
    C error. This should never happen.

    This is a compiler bug, please report it using `v bug file.v`.

    https://github.com/vlang/v/issues/new/choose

    You can also use #help on Discord: https://discord.gg/vlang


    real    6m50.090s
    user    6m8.375s
    sys     0m31.094s
(I gave up when the gcc memory usage ballooned up to 20 GB.)

> What's your hardware? CPU/SSD.

i7-7700 3.60 GHz, 48 GB of RAM, SSD in use, Windows 10 WSL (that's probably why kernel time is higher than average, otherwise my userland time agrees with the OP).

Re: V Language Review

#249
post #95

I never understood the motivations behind V. It's clearly not a hobby project started out by a developer who is genuinely experimenting with PLs and want to put out something unique. It feels more like a stunt or a flair to either extort money or become famous. All that would be perfectly okay if V did what it claims to do but the author fanatically makes exciting claims but implements only fluff to hide the underlyi…

> It's clearly not a hobby project started out by a developer who is genuinely experimenting with PLs and want to put out something unique. It feels more like a stunt or a flair to either extort money or become famous. Is that obvious? Yes, if I put on my cynical hat it pattern matches a money-grab or some other sort of fraud, but if I put on my charitable-interpretation hat V also perfectly pattern matches my idea o…

The V language pattern matches with new programming language initiatives such as Odin or Zig. It is in the category of both C and Go alternatives.

Note- just by being a strong Go alternative by itself, one can see possible "behind the scenes" conflicts and motives. Though both V and Odin really should be fully embraced, because they continue the direction and changes in thinking started by Go, while providing features that such users might crave or have wanted.

V has been more successful than other newer programming languages at getting sponsors and supporters (check V's GitHub or vlang.io), to include publicity, both very good and at times negative (which appears to include angry detractors). It also has been developing at a more rapid pace than other languages in its category.

From looking at the history, some of the controversy appears to come from years ago and whether or not the language was real or was going to be released, because it was already "advertising" itself and had sponsors. Keep in mind that other languages have a very hard time at getting sponsors, supporters, or users. So, that another language getting what they are not able to or feel they deserve, can become a source of conflict as well.

My opinion is that the V creator did nothing wrong, because it was a very smart decision to attract sponsors and users, and the creator did release the language. This alone already separated V from the many languages we never know or hear about, the ability to get enough sponsors and supporters to sustain growth and momentum.

Yeah, it's might seem great to be a solo developer making what he/she feels is the perfect language as a hobby, but at some point the enthusiasm stops or the person realizes what's the point if nobody cares and nobody uses it.

Another aspect of this situation is it appears detractors were running with the narrative that V was "fake" or "vaporware", and then when it was actually released, they had to reset their narratives. You can't claim that something that exists and is used by many, is "fake" or non-existent. So then the attacks appear to then go for whatever might stick. Anything about the language, which is "not perfect" or as they feel is claimed, is then targeted. This is why we have these odd and controversial takedown attempts of a language which is still in alpha and evolving. I'm very much not saying that people shouldn't be criticizing or pointing out flaws, but rather it doesn't need the viciousness or underhandedness of trying to persuade people to stop using or attempts to kill it off.

Ultimately, just don't think that such tactics are going to work, because V has such strong community support and is continually improving. V is well on the path of becoming a very viable and highly useful language.

Re: V Language Review

#250
post #219
post #147

Earlier quoted context omitted.

The three securities they guarantee and cannot hold. Fearless concurrency. Java also promised memory safety. I still get Null pointer segfaults in Java code.

If you know of a case where rust code violates memory safety without the use of an unsafe block, file a bug and it will probably be fixed within a release or two. "Fearless concurrency" is more subjective, but rust code (again with the caveat that there isn't unsafe code, or unsafe cose upholds all unvariants) dows eliminate certain classes of concurrency bugs. Although, dreadlocks are definitely possible, and certai…

do you your self a favor and search their ticket system for stack overflow. the list gets longer, not smaller.

and looking at their compiler it's clear why. stack-allocation of vars is fine and dandy, but comparable to vlang's famous unbounded autofree system. alloca() is dangerous for a reason.

unsafe vec, really?? mutexes in threads, really?? concurrent blocking IO in this decade??

also read their docs about their unsafeties, and concurrency deficiencies. compare that to the docs of real safe languages. you won't find such chapters, because safe languages are safe, not just almost-safe.

Post reply on HN