1. 23
  1.  

  2. 32

    This guy is a far better hype man than he is anything else.

    edit:

    Try to use it yourself if you think it is good. Send me a message later if I was right or wrong.

    I didn’t say he was bad, actually I think he is a great hype man, one of the best in this space. The way he appeals to surface level curiosity while keeping facts just obscure enough to solicit donations[1] is a work of art. It is a valuable lesson to know how to manipulate people at a large scale. If he starts a marketing consultancy, I think he might do very well.

    To the author of V: I really want you to succeed, if everything promised worked as advertised It would be a great thing for everyone.

    [1] https://www.patreon.com/vlang

    1. 3

      In fairness I assumed this was work done in spare time and not something being paid for with $800 monthly donations, maybe I should have done more research.

      1. 3

        I am a bit jealous, I don’t know how to start an OSS project with so many donations. Being liberal with what you promise seems to help.

        I hope it is a “fake it till you make it” more than a “cut and run”. Obviously if everything promised worked as advertised It would be a great thing for everyone.

        1. 3

          Rates vary and my city tends to be expensive, but 800/mo seems unlikely to fund more than a little hobby work a week. I suppose if you were already setup (no debts to service) you could make it work in a cheap area…

          1. 7

            I think lots of stuff like this is done for ego and personal satisfaction rather than the money. The money is icing on the cake. There’s another benefit that hyping projects might bring. So, the job interview goes like this:

            Interviewer: “Do you have any prior projects with the impact that justifies the high-paying position you’re applying for?”

            V developer: “I made a language that (big claims here). Easier than Rust. I open-sourced it on Github. As you see, it had four, thousand stars in no time.”

            Interviewer: “Wow, that’s pretty impressive to pull that off and get so many users.”

            Yet, hardly anything was delivered. Add this project as another data point on why Github stars are meaningless to me. If anything, they make me more skeptical of a project.

            1. 3

              I never said it is livable, I just just think that is enough incentive to exaggerate the truth.

        2. 3

          Are you aware your comment above, as it appears at the time of me writing this reply, is a raw and pure ad hominem, with absolutely no merit-based argument at all? Could you please try to provide some verifiable technical criticism instead?

          1. 27

            Ok, the language itself has more than 3800 stars on github, but most of the libraries in this repository are empty stubs:

            Let’s compare to zig, an equivalent project made by a serious person with many contributors and 3000 stars on github:

            The difference? The V guy is a better hype man. The Zig guy spent far more time working on things. I didn’t say he was bad, actually I think he is a great hype man.

            1. 25

              musl-libc is another example of a project that has very little hype, but represents a significant contribution to the open source community at large, with incredibly high quality standards. It’s been around for years, yet making less than V on Patreon.

              I honestly feel a little guilty about this. I’ve done some marketing to hype up Zig and so I’m making more than Rich does with musl, even though it has been around longer than Zig as well. Furthermore Zig ships with musl and a lot of the standard library is ported from musl, so the Zig project benefits in a huge way from musl. I’m donating $5/mo on Patreon to musl, but I dunno, it doesn’t seem fair to give that low amount. But I’m also not making a living wage yet, so… it also doesn’t feel right to just give a large portion of my income away.

              1. 6

                For now everyone should look after themselves and not feel guilty, but I do think collectively we need to do something to fix the broken nature of open source funding.

                1. 6

                  And create a funding model that isn’t contingent on HN hype/Github stars.

                  1. 2

                    This is tantamount to, “nullify the power social influence has over allocation of resources.” Not saying some progress can’t be made, but realize what you’re up against here.

                    There are some political ideologies inadvertently end up trying to shift society towards social power being even more influential rather than less. Given how easy it is to monopolize celebrity, this is bad for solidarity & equality.

                2. 1

                  Thank you so much! That is exactly the kind of a comment I was hoping for, backed with some concrete references. This gives so much more substance and weight/value to me as a reader than the original one, significantly boosting the speed with which I can evaluate the subject. Thanks again!

                  1. -1

                    Language version 0.0.12 that’s been just released has not very mature libraries. Developed by 1 person. Sorry about that.

                    1. 5

                      For all the hype you’ve been generating, I think people expected some kind of 1.0 release, or at least all the promised features to actually be implemented.

                  2. 9

                    From the patreon page:

                    C/C++ translation
                    V can translate your entire C/C++ project and offer you the safety, simplicity, and up to 200x compilation speed up.
                    
                    Hot code reloading
                    Get your changes instantly without recompiling!
                    Since you also don't have to waste time to get to the state you are working on after every compilation, this can save a lot of precious minutes of your development time.
                    

                    Maybe it will reach these goals one day, but it doesn’t do them now.

                    I will give you some time to find that in the repository and verify it.

                    1. 0

                      https://github.com/vlang/doom

                      Full code next week, but you can already build a major file transpiled from C to V and replace the object file in the project.

                      1. 5

                        is that C++ too? How about the hot code reloading? It isn’t a full project either like you say.

                        1. 5

                          That’s one file though, not the entire game like you seem to be implying.

                    2. 1

                      I don’t know man, just from a few moments glance through this it looks like a serious effort that probably took him a significant amount of time. I can’t imagine it would be so great to have invested so much time and then see people being so critical, especially in an unfounded way.

                      1. 22

                        There’s some context here: for the past few months he’s been making pretty extreme claims about V’s features, and attacking anyone who expressed any skepticism. He also refused to explain how any of it works, just saying we should wait until the open release. Well… it’s the open source release and it turns out the skeptics were right.

                        1. -1

                          I never attacked anyone. Do you have examples of my attacks or extreme claims?

                          1. 41

                            My examples will be released in 2 weeks.

                        2. 7

                          It isn’t unfounded, see comment above - and any time anyone posts anything, you can expect criticism. It happens all the time.

                          I didn’t say he was bad, actually I think he is a great hype man.

                          1. -1

                            I only receive constant criticism like from you in this thread :) I don’t bother to post criticism. Any examples?

                            1. 5

                              I’d like to note that, to me, most of your replies here just look like damage control. This kind of comment is usually not well-received in technical forums such as Lobste.rs. Don’t respond to every comment you don’t like - let your work speak for itself!

                        3. 1

                          Hi

                          Can you please point out specific things that don’t work as expected or things that I “hype” on the website?

                          Thanks

                          1. 22
                            • hot code reloading
                            • C++ translation
                            • “a strong modularity” (this isn’t grammatically correct)
                            • compiles to native binaries without dependencies…except libcurl or other libraries you obviously depend on, not to mention a C compiler. That is a dependency whether you like it or not.
                            • you mention doom being translated to V, your repo only shows what looks like a single file being translated
                            • you give an example of a “powerful web framework” yet show no code to back up that claim
                            • you do concurrency in the most lazy and inefficient way possible and promise to have something that big companies struggle with by the end of this year
                            • you claim being able to cross compiling…except from non-macOS to macOS
                            • it only looks like you support amd64 processors from the code I read
                            • you claim no null yet have both perfect c interoperability and optionals. What happens when the c libraries the user wants to use require the use of null? What happens when the optional is not filled with the target data?

                            Need I go on?

                            1. 4

                              Can you substantiate your claim that

                              V compiles ≈1.2 million lines of code per second per CPU core

                              from the website?

                              1. 4

                                Generating 1.2 million lines of code with:

                                print "fn main() {"
                                
                                for i = 0, 1200000, 1
                                do
                                  print "println('hello, world ')"
                                end
                                
                                print "}"
                                

                                I got the following error:

                                $ time v 1point2mil.v
                                pass=2 fn=`main`
                                panic: 1point2mil.v:50003
                                more than 50 000 statements in function `main`
                                        2.43 real         2.13 user         0.15 sys
                                

                                Note that this is 50,000 ish lines of code in TWO SECONDS.

                                1. 3

                                  Generating 1.2 million lines of code with: I patched the compiler to remove the arbitrary 50’000 statement restriction (and also disabled calling out to the C compiler, so that it doesn’t artificially inflate compilation times), and I got these times:

                                  % time compiler/v test.v
                                  
                                  Edit: remembered another fun one: The generated C has a baseline of 69 warnings (I did not make that up) then one for every string literal, since the type of `tos` uses `unsigned char *` instead of `char *`.
                                  /home/matheus//.vlang//test.c
                                  14.58user 0.60system 0:15.61elapsed 97%CPU (0avgtext+0avgdata 1311836maxresident)k
                                  0inputs+91504outputs (0major+316215minor)pagefaults 0swaps
                                  

                                  Some other things I also noticed:

                                  • The 1000 byte global allocation at the start is used for format string literals suffixed with a !. If you generate a string that exceeds this length, the generated code aborts with an assertion failure from malloc().
                                  % cat test.v
                                  fn main() {
                                  x := 1
                                  println('$x [redacted repetitions]'!)}
                                  % v test.v; clang ~/.vlang/test.c -w; ./a.out
                                  /home/matheus//.vlang//test.c
                                  malloc(): corrupted top size
                                  fish: “./a.out” terminated by signal SIGABRT (Abort)
                                  
                                  • V supports goto but doesn’t check whether labels are defined, so they crash in the C compiler;
                                  • V doesn’t ever convert their integer literals to integers internally; There’s a check for division by zero, but it’s comparing the literal to '0' - the string. So this won’t compile:
                                  fn main() {
                                    x := 1 / 0
                                    println('$x')
                                  }
                                  

                                  But this does:

                                  fn main() {
                                    x := 1 / 00
                                    println('$x')
                                  }
                                  
                          2. 6

                            Hmmm, I’m coming into this fresh and ignorant so it’s interesting to see people here discuss the weird history and person behind the projects. My hot take:

                            • Looks a lot like go and was obviously heavily inspired by it.
                            • Lots of things that I would think are hard problems have been punted or WIP yet seem to be core features. E.g., arbitrary key types for maps, generics, memory management, concurrency specifics
                            • Error handling seems to be oddly bolted on? Rather than maybe syntactic sugar on top of a generic type it’s special cases all around

                            That probably sounded more negative than I meant it to – it just seems like it’s very early. If everything comes together I think it could be pretty compelling.

                            1. 5

                              I am curious why v.c isn’t in the repo, but on the web site. Seems odd… perhaps a thing that’s meant to be addressed at some point, but low priority…

                              1. 1

                                It’s 15k lines of code with constant changes, it’s not really supposed to be in the repo. It’s more like install.exe :)

                                1. 6

                                  It should definitely be versioned in one way or another to avoid versions confusions. Having a record of changes and also precise versions that you can point people to is essential for packaging. You can put it in a different repo if you don’t want to spoil the history.

                              2. 5

                                I’m with @ac on this. Great at marketing. HN thread here with some of the claims from a few months ago. Be interesting to compare and contrast across Patreon, it, and the repo.

                                1. 1

                                  Finally! Now for the third party review