1. 53

  2. 37

    I appreciate you giving V another chance and taking a more constructive approach, but how are people still taking this seriously? I don’t understand how people are eating up a product that doesn’t exist yet. None of the features that were claimed are here.

    Memory Management

    As an example, how is memory being cleaned up? The answer to that question determines where the language can and will be used. Is there a GC? Then it probably won’t be used on embedded devices. The answer?

    (Work in progress) There’s no garbage collection or reference counting. V cleans everything up during compilation. If your V program compiles, it’s guaranteed that it’s going to be leak free.

    How? How does it clean up everything during compilation? If V adds something similar to linear types then it will be targeting a completely different audience than the one it has now and the language will change dramatically. People still complain about Rust’s steep learning curve. If V did the same, it would alienate its entire userbase.

    this compile leaked 3,861,785 bytes of ram last time. This means that the compiler has overall gained 0.8 megabytes of leak in the last 6 months

    This is ridiculous! Is this massive problem being completely ignored? V is not cleaning up everything during compilation! I’m scared to profile the slack client.

    Compilation Times

    Claim that is currently on the website:

    Intel i5-7500 @ 3.40GHz, SM0256L SSD, no optimization

    between ≈100k and 1.2 million lines of code per second per CPU core

    @cadey’s setup & time:

    Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz

    average of 2000 lines of code per second

    2k vs. 100k is a huge difference. How on earth are the numbers this off? It’s hard to believe that there is this big of a discrepancy depending on what machine you have, but if there is: don’t put this on the front page of your website. This is false advertising.

    A few weeks ago, Alex changed the benchmark at https://fast.vlang.io/. He changed one line in a commit titled do not allow calloc(0) that had nothing to do with the benchmark:


    - Running on a $3.5 instance. <br><br>
    + Running on a 2014 MacBook Pro. <br><br>

    This is incredibly suspicious! The times for the commits that are currently on the site date back to 2019-11-07 17:38. Did he rerun all of those commits on this mysterious macbook? I would bet not. Why hasn’t that page been updated since he made that commit? It appears the benchmark has been turned off. The 13 commits in the table before that are titled fast and link to commits that don’t exist. I have no idea what is going on here: https://archive.is/aHssL

    Pure by Default

    Currently @ https://vlang.io/docs#recvs :

    V functions are pure by default, meaning that their return values are only determined by their arguments, and their evaluation has no side effects.

    Hello World in V:

    fn main() {
    	println('hello world')

    Well that sure as hell looks like a side effect to me. No monads here, just a complete lack of understanding. To mutate function arguments or struct fields, you add the mut keyword. Side effects don’t look like they’re checked at all, meaning that V functions are not pure by default.

    Release Dates

    1.0 was set to be released by the end of 2019.This was a huge claim, and it obviously fell flat on its face. We’re still on 0.1 and only a few languages features have been added since V started getting traction.

    This is confusing to me given he claims that 0.2 will be out in January, but whatever I can let this slide.

    V makes enormous claims but doesn’t explain how it will do anything. The many features we were expecting aren’t here. I can not let this slide because he is still blatantly lying.

    If I misunderstood anything here, please correct me!

    1. 12

      I understand the article to be a kind of a hobby pleasure, if maybe slightly perverse, of hunting and diplomatically dissecting all the false claims the V’s author was and is making about the language. I totally appreciate this as such, and also find a pleasure in reading it, thoroughly enjoying the showing off of diligence, precision and mastery of subtle diplomatic and ironic expression on the part of @cadey. I do sometimes have to use a similar device in my life, so I am fully aware how much self-control it takes and proves one has, and know how much the author longs for the text to be properly understood, especially given that this is a tough balancing act, because in writing it’s hard to signal sarcasm. Finally, I also appreciate the articles providing an up-to-date stream of nice reference links for other fellow engineers, like myself, tired of the weird PR distortion field around V - thus making them a generous public service act.

    2. 11

      For comparison, this compile leaked 3,861,785 bytes of ram last time. This means that the compiler has overall gained 0.8 megabytes of leak in the last 6 months. This is worrying, given that V claims to not have a garbage collector. I can only wonder how much ram was leaked when building that giant module.

      I may be mistaken, but I believe that the design of the original Go compiler used to leak memory on purpose. It’s a short lived process, where speed is desired. Who cares if it leaks its memory, when the operating system will free it all at once a couple of seconds later?

      1. 17

        Yes, but given that the V compiler is written in V and:

        If your V program compiles, it’s guaranteed that it’s going to be leak free.


        I get it says “work in progress”, but it looks hypocritical to say “no leaks here” and then have one of the biggest examples of V code leak like a sieve.

        1. 3

          Fair. I didn’t realize there was a claim like that.

        2. 10

          You can’t have double-free bugs if you never free memory. taps head

          1. 7

            Thank you. Someday I hope to learn to be as precisely, factually, politely snarky as you are. I particularly like your ending quote.

            1. 8

              Write! I’ve written 107 articles for my blog and I’ve been working on refining my craft. This might also be an interesting read for you, it’s a security vulnerability report about mysqljs.com. Also I Put Words on this Webpage so You Have to Listen to Me Now.

            2. 5

              Lol…you were very polite. I don’t know what’s up with this guy but my god, you were so nice. Taking the time to politely dissect this for everyone is a great service. I think I can say thank you on behalf of everyone.

              What do you think was the actual goal of this project? (Conspiracy time!)

              1. 10

                I think the actual goal of this project was to fill a niche that the V guy saw was unfilled. Really I see V filling the same niche as Go, but without the weight of Go. I see V filling the same niche as Nim, but without the oddness of Nim (Nim is really great but for some developers they consider it an odd thing).

                Also, building a programming language from scratch like the V guy has done is a fantastic exercise in learning how a bunch of absurdly low level tools work. It also lets you understand ABI compatibility and a bunch of other things. If this was purely a learning project I wouldn’t be this aggressive. But this guy hyped it up and took donations.

                1. 2

                  but without the oddness of Nim (Nim is really great but for some developers they consider it an odd thing).

                  That might be worth elaborating on given how many encourage Python developers to try it out. I’ve seen a lot of Python developers switch to Go, too.

                  1. 3

                    Nim has the following features people (that i have tried to shill Nim to) find odd:

                    • Case insensitivity (not a problem to me)
                    • Use of strong spacing for scoping (not a problem to me)
                    • No threaded async (apparently they’re working on fixing this)
                    • It uses a GC (they are working on removing it)
                2. 3

                  I don’t think there’s a conspiracy; it’s easy to get ahead of yourself & he may have just been overly optimistic, a common trait for programmers early in their careers.

                3. 5

                  Can we just take a second to appreciate how, because the author wanted their website to be christmas themed, it’s eating up almost 100% of a core (at least on my laptop in Firefox)?

                  It looks nice, I get wanting to do it… but I think I’ll read this article when I’m not on battery.

                  1. 4

                    Here’s a flat version: https://github.com/Xe/site/blob/master/blog/v-vvork-in-progress-2020-01-03.markdown

                    EDIT: also I disabled the snow theme, you may need to hard-refresh due to how i designed the caching strategy

                    1. 3

                      I should’ve been less crass, was slightly grumpy from many hours in a car. Sorry. I really enjoyed the article though.

                      Now I’m curious if there’s some nice way to add a snow theme without negatively affecting power consumption. I’m thinking the main thing we want to do is to go far away from 60 FPS to let the CPU sleep. Maybe, if we drew snow flakes in a pixel-art-y style, it’d look natural for them to only move every half a second or something?

                      1. 1

                        It’s all good, it’s a christmas thing anyways; christmas and the new year has come and passed.

                        I don’t think I know enough CSS to do that :(

                        1. 2

                          I don’t know enough CSS to do it either, but I threw this together with javascript: https://s.mort.coffee/snowfall/

                          As it is, it’s not extremely practical; it should at least go behind the text, maybe the flakes should be smaller and maybe the velocity shouldn’t be changing as much, but at least it’s a start. It’s also relatively battery friendly (compared to an animation running at 60 FPS :p)

                  2. 3

                    Compiling 1.2M LoC is probably I/O bound, especially the first time. Does it get any faster if you compile them a 2nd time immediately, while the files are still in the FS cache?

                    1. 3

                      It depends upon the compiler. I did the 1.2 million lines of code benchmark for C, then for nasm and finally Lua and the best was Lua (1.6 seconds) and second was nasm (38 seconds). C (okay, GCC) had abysmal times.

                      1. 3

                        Nope, somehow it’s slower. Most of it is CPU bound.

                        1. 2

                          Wow! How much slower?

                          1. 2

                            10 minutes 30 seconds, i think my server must have just had a higher load then. It takes an annoyingly long time to run lol.

                      2. 3

                        Memory management is still marked as “work in progress”, and even what it explain lacks dynamic allocation scenario completely. It’s not like Rust at all. The author claimed memory management part will be “implemented” by end of 2019, but there’s nothing so far even in 2020.

                        1. 5

                          This is why I waited until the end of 2019 to finalize and publish this article :)

                        2. 3

                          Just wanted to chime in that I love the article title.

                          1. 2

                            Thanks! There’s actually linguistic history behind it too! See this video for more information (also see the entire channel, Conlang Critic is awesome).

                          2. 2

                            Website is unavailable.

                            1. 2

                              It works for me now, and worked 1.5 hours ago.

                              1. 2

                                Not working for me( Says can’t establish secure connection.

                                1. 3

                                  What OS/browser are you using? Here’s the backup github link just in case.

                                  1. 1

                                    Safari, iPhone 11

                                    1. 2

                                      What country are you viewing it from? I think Russia blocks my site because it’s on DigitalOcean.

                                      1. 1

                                        Not a Safari or iPhone issue, works fine here (US).

                                        1. 1

                                          Yeah, I was confused too. I develop on iPadOS personally.

                                        2. 1

                                          Yes, I’m from Russia. But DO is available.

                                        3. 1

                                          Still not working

                                2. -10

                                  You definitely seem to have ‘issues’ with this project and your V posts are heavily biased. How about instead of shooting projects down, contribute to them to make them better. That is more in the spirit of open source.

                                  1. 26

                                    I would, but I’ve been blocked from the V github repo with no option for appeal or reversal.

                                    1. 5

                                      Do you know what caused you to be blocked?

                                      1. 8
                                    2. 23

                                      The history of V so far has been pretty… interesting. Lots of marketing and sparse substance. It came across to me as frequently “snake oil” like.
                                      I think if it hadn’t have been so over-hyped and over-sold to start with, people would be a lot more accepting of shortcomings and date slippages.

                                      1. 12

                                        Also wasn’t the author notoriously aggressive with all his skeptics? O remember him attacking Andrew Kelley a whole bunch for calling out some of the wilder claims.

                                        1. 2

                                          Yup, I remember that too.

                                      2. 16

                                        Didn’t expect to see this comment here. I’ll post the same reply I have you on the orange site:

                                        It’s perfectly fine to critique without contributing. You’ll also notice this:

                                        I can’t open issues myself because I’ve been banned from the V issue tracker, or I would have already.

                                        Also this from their previous article on V:

                                        I hope this feedback can help make V a productive tool for programming. It’s a shame it seems to have been hyped so much for comparatively so little as a result. The developer has been hyping and selling this language like it’s the new sliced bread. It is not. This is a very alpha product. I bet you could use it for productive development as is if you really stuck your head into it, but as it stands I recommend against using it for anything.

                                        1. 12

                                          I also think that there is value in calling out false and)or overhyped claims. It’s not like this is a student’s first project or something similarly worthy of a gentle hand. It also isn’t like V is providing anything very unique.