1. 141
    V is for Vaporware programming rant christine.website
    1. 52

      Ouch. All I can do is reference this Gabe Newell quote.

      Don’t ever, ever try to lie to the Internet, because they will catch you. They will deconstruct your spin. They will remember everything you ever say for eternity.

    2. 34

      Able to translate arbitrary C/C++ code to V

      I’m sorry, writing a C++ compiler is essentially impossible unless you have the GDP of a small country, or you’re just building a wrapper around gcc or llvm. Translating C++ into anything other than C++ is even more ludicrous.

      That promise combined with the 400k promise should be enough to tell how much of a lie this is.

      I wish this were true, because D does try to be somewhat C++ compatible, but it’s very difficult to catch up. If anything could interop with C++ the way they do with C, that would be a huge, big deal. I really wish there was some easy upgrade path away from C++, but this is a fantastical creature that doesn’t exist.

      1. 20

        TBF, walter bright wrote a c++ compiler on his own. On the other hand, walter bright is also very good at writing compilers, it was a very old version, and no one else has done it.

        1. 3

          True about Walter. Were there no others? I suppose Watcom was developed by a group (aside/wool-gathering… Used v10.x circa 1995 on Win NT 3.5 and OS/2, I still have a 1997 boxed edition of v11 from when they were owned by Powersoft).

        2. 2

          He wrote a C++ compiler on his own… last century. C++ has grown a lot since then.

          1. 4

            it [c++] was a very old version

            I mentioned that

      2. 8

        Translating C++ into anything other than C++ is even more ludicrous.

        It was one of the things that made me call bullshit fast. You might be overstating the difficulty, though. The ZL language was a C++-like language that translates to C using one person working for a few years. I’m assuming the author worked part- or full-time for several years on that. Doing what V author describes wouldn’t take that big of a pile of money given what Atkison built.

        Also, aside from a wrapper, they might just use one of the tools that parse C++ before doing their own stuff from there. Both compilers and program analysis frameworks can do a lot of heavy lifting. Going from an ultra-hard job to a really-hard job.

      3. 3

        Swig translates C++ into a bunch of other languages. But it only translates C++ declarations into FFI code in the target language, and I don’t think it works for 100% of C++.

        1. 4

          Yeah, D also has a somewhat comparable level of interop with C++. If your templates get slightly complex, well, that’s as far as your interop goes.

          It’s a rather hopeless task to really have all of C++; even the actual compilers have trouble keeping up.

    3. 32

      One nit: the section about memory safety uses an example of a memory leak as a counter, but leaking memory is not generally an unsafe thing to do. Those examples still look bad, but it’s not quite correct to put that under a section about memory safety.

      More generally, I don’t understand how things like this get attention. V is not the only programming language that has received a lot of attention and made some claims without providing the tools for others to verify it. Once I see that I can’t test it for myself, absent any other compelling evidence, I just close the browser window and forget about it until something changes.

      What I’m trying to say is that while the author of V has clearly made some missteps here, this is also a lesson for the rest of us: demand evidence before hyping stuff. This article was likely only written because V received so much attention from us in the first place.

      1. 9

        To be honest, I don’t know why, but it offended my sensibilities. It probably is better to let people get burnt for themselves, it isn’t the end of the world and maybe it is a good lesson.

        1. 7

          Sure. It offended my sensibilities too. But there are a lot of people whose sensibilities were apparently not offended. There’s a lesson here for them I think.

    4. 23

      I think I’m just going soft–this writeup is something that years ago I would’ve been jealous to have written!

      That said…I kind of hope the author of V doesn’t get too discouraged and they address this stuff and keep working on their language.

      1. 14

        I think we all want the language to succeed. The difference between “I can cure cancer” vs “I am working on a cure for cancer” is huge. Now the site has changed I am more ok with it.

      2. 11

        I actually want V to succeed. Having a cross platform GUI development tool is part of what we need badly to end the web app insanity. Just not like this exact implementation.

        1. 13

          There’s plenty of cross platform GUI things though? Qt/QML is probably the most complete one, with fast OpenGL rendering, accessibility, internationalization, and countless other things a UI toolkit has to have. Google is reinventing that with Flutter thanks to NIH syndrome (or licensing issues, or whatever).

          Developing a full, solid UI toolkit is not an easy problem and it’s been done a hundred times already. So I don’t think there’s a technical solution to the “I want people to use non-web cross-platform GUI tools” problem. What needs to be done is more promotion, more resources, documentation, tutorials, support for the existing tools.

          (and I don’t like the Web Hate Bandwagon either. the web platform is awesome :P)

          1. 11

            Absolutely. There are dozens (if not hundreds) of cross-platform GUI libraries, and five or six are at the intersection of well-maintained, frequently used, and featureful.

            All of them, as far as I can tell, are ugly & awkward to use, but none of them are as ugly or awkward to use as web tech.

            That said, almost all these libraries have their own universe & their own idioms that typically don’t match any of the idioms of languages they bind to (and in some cases, such as with GTK and QT, they have totally distinct type systems and build systems). Writing code in Tkinter is too much like writing code in Wish and not enough like writing code in Python. There’s a certain amount of intellectual work to be done to learn a new system like this (and these systems are typically grown organically, so even if you’re using a properly-designed host language, you’re locked into memorizing and dealing with ugly corners of fossilized design by your GUI toolkit), and I think this is what keeps so many people locked into webtech: they have, at great cost to their sanity and the length of their lives, memorized the most obvious ugly corners of CSS, HTML, JavaScript, browser behavior, and perhaps 3 creaking leviathans of web frameworks, and learning to navigate the treacherous twists of QT and the names and habits of the strange beasts in its depths seems rightly daunting.

          2. 5

            Problem is that V promised cross platform GUI with tiny amounts of space requirements, which sounds great to me.

            pyside2 is smth like 80MiB, pyqt is smth like 60MiB, which are absolutely massive compared to ~400KiB of V.

            But sadly it turned out to be vaporwave. Oh well. It would be nice to have that (a graphics library that’s easy, cross platform, well documented and not massive) one day.

            1. 3

              Anything that promises to be tiny is either cheating (big stuff is still coming somewhere else) or is a toy :)

              Honestly the obsession with tininess is just a big waste of energy.

              1. 3

                I always thought the heavy software taking up more CPU and RAM was a waste of energy. ;)

            2. 3

              There’s always TK, if you don’t care about alpha support or 24-bit colors. It seems to ship with python (as TKInter).

              1. 1

                tk support needs to be compiled in and isn’t available by default on all distros.

                1. 2

                  True. It’s as close to built-in as you can get with python, though. (Like, curses also ships with python, but if you’re building from scratch & you don’t have curses installed, the python bindings will not provide it.) Some binary distros will let you not install X, & will split off TK & tkinter to support Xless systems.

                  That said, last I looked, Tk ships with the binary windows and Mac OS classic versions of python.

                  (IIRC, TK also runs on less-common systems like riscos, though I’ve never seen it do so. I’ve also heard tell of a curses frontend to TK, for folks who don’t have a bitmapped display at all, but I don’t know how much it supports or how well it’s been maintained. Basically, it’s way more cross-platform than most of the stuff that gets called cross-platform.)

            3. -3

              V UI is in fact not vaporware, it’s right here: https://github.com/vlang/ui

              You also confused statements about what is being planned with what has already been implemented.

        2. 11

          It seems to me much of this already exists with Rebol.

          1. 8

            Rebol was the first thing that popped into my head when I was reading about V. It is also quite shit for doing anything (I’ve tried for something like a year) and it taught me that one-person projects done by brilliant coders are not good enough, even if they claim superior features. Community counts.

        3. 3

          I am working on curing cancer. Hit my Patreon!

          1. 3

            An honest crackpot is ok . If you do terrible cancer research, but you actually are doing something, all good. Open source helps people see what is going on regardless, then they can make a properly informed decision to throw money away. Before it was more like “I definitely cured cancer, coming soon, donate now.”

            So do some cancer laboratory tours with investors and go ahead :) I hope you succeed lol.

            1. 4

              Regarding my own work, I was kidding about actually doing cancer research (though I have a minor in molecular and cell biology in my Masters from UC Berkeley). I am, however, quite serious about solving the high performance cross-platform GUI problem.

              1. 4

                Good luck :), definitely something people struggle with.

    5. 20

      Well done, one comment on this quote:

      Yes it is somewhat crazy to have 1.2 million statements in a single function, but as a compiler author it’s generally not your position to make these kinds of judgments. If the user wants to have 1.2 million statements in a function, let them.

      Even the C standard has some fairly arbitrary limits conforming compilers may enforce (though most allow you to break the limits), so technically a C compiler can make these judgements.

      Perhaps next you can generate 200k 3-6 line functions spread across many files and see what happens.

      Another nit:

      V claims to be memory-safe: Memory management There’s no garbage collection or reference counting. V cleans up what it can during compilation.

      Memory safety and not leaking memory are slightly different. I guess it should read “V claims to manage memory” but your point overall is accurate. Tbh, he probably also claimed it is memory safe, and given the state of affairs, it obviously isn’t.

    6. 18

      Having done some digging through the V source code, I’m not sure what to think. There are tons of TODOs scattered across the code, a lot of modules/functions are just stubs, and some types are just weird. A lot of features are not implemented, and variety of the author’s repositories are just placeholders. When asked about this, the answer is basically “soon”.

      Given V in its current state appears practically useless, I wonder if Volt is actually written in V, or if it’s just written in another language. Volt also seems to be doing some shady things.

      Given the current state of things, I’d say V is still a year or two away from being usable; if it ever becomes usable.

      1. 21

        Given the authors insistence on deploying closed source binaries, I was wondering if he was using it as a vector for malware. I would be pretty careful installing or trying any of his software.

      2. 9

        My brief inspection of Volt inside of a decompiler shows that it matches a LOT of what is going on in V – uses the same libraries, etc.

        While I have some doubts about whether it was actually written in V or just in C, it does, surprisingly enough, seem to be built on the same products that power V.

        1. 2

          Looking at vlang.io, in the FAQ at the bottom:

          Why “V”?

          Initially the language had the same name as the product it was created for: Volt. The extension was “.v”, I didn’t want to mess up git history, so I decided to name it V :)

          1. 8

            Didn’t want to mess up Git history so kept the extension, but apparently so clumsy with Git that they failed to commit any of the definitely-existing, definitely-not-just-more-vaporware test files.

            I don’t know why anyone continues to extend the benefit of any doubt to this project or author.

            1. 9

              I also wonder about the sincerity of some of these commentators. Sure, some people might be young or inexperienced and need encouragement and all that, but then you have people who come across as scammers.

              Something must have gone wrong in culture if no one seriously calls out bullshit. Or if no one recognizes bullshit anymore. Makes good breeding ground for long cons, though.

              1. 2

                Well the thing that scares me is that if such an obvious scam works so well, the less obvious ones must be raking it in.

                1. 3

                  I just hope most of the “give the man a fiftieth second chance, he already labeled everything WIP” is insincere, which is a sad thing to hope for.

                  1. 6

                    It isn’t worth fighting over, my reasoning is now it is open source, people actually using it would quickly get annoyed and leave if it isn’t good, so the harm is limited. It is labeled WIP, so what more is there to do? Short of finding malware in released binaries I don’t see the point in intervening further.

                    Now it is just a strange form of entertainment and a lesson on human psychology. The trusting nature of some strangers is uplifting in some ways. Just think of a legitimately good project riding that wave to the top despite some hiccups.

    7. 18

      (Disclaimer: I have never looked at V, only see topics of some news lately, that’s all, so I have zero knowledge about the language and compiler itself)

      Entertaining to read, but I had some thoughts that are left unaddressed by the article:

      • A speed of 1.2 million instructions per second doesn’t mean that the compiler should support compiling a million instructions. I mean, if you drive your car with the speed of 100km/h, it doesn’t mean you need to travel 100km to make the measurement.

      • Dependencies of the compiler executable on libpthread and libc are I think too common to use them as an argument. Since libpthread and libc are distributed with every GNU/Linux distro, I don’t think they should be treated as ‘dependencies’.

      • About the nature of memory leaks: technically Valgrind reports non-freed memory, not memory leaks, and not every non-freed memory is a memory leak. There is a nice optimization ‘trick’ that is popular: don’t manually free the memory if the program is about to exit. If the program’s process is about to end, the OS itself is perfectly capable of freeing all memory pretty quickly in few operations, by freeing whole pages of memory. Manually iterating over lots of small objects can take more time, and it may delay the time needed by the application to finish its quit process. So, not freeing the memory on exit often enables fast shutdown of the application.

      • Using shell commands to implement some functionality is also used by larger projects, like GNU libc itself. I.e. here (warning, it’s a link to the orange site), and other libc implementations (FreeBSD’s libc, macOS libc, musl). It uses an external process to implement the wordexp() function.

      With the rest of the points in the article I agree, and thanks to it I won’t be spending my time on V anytime soon :)

    8. 14

      Excellent work. Thanks!

      1. 35

        It looks like a part 2 is going to happen. I found a root-level command injection bug in the playground. I don’t think I’m going to be as kind the second time around.

        1. 20

          Here’s the details

        2. 9

          You know what would be kind? A private email to the author. Or a pull request.

          1. 91

            The author was informed and insulted me before banning me from his Discord. The V playground is closed source or I would have submitted a pull request to fix this vulnerability.

          2. 3

            An easy way to get more kindness is to make one’s actions and deliverables match their promises. Doing the other thing can inspire some negativity.

        3. 1

          Can’t wait for Part 2! This one was a great read.

    9. 5

      The style of writing and the types of claims reminds of the GWAN web server.

      1. 2

        I remember that site from a decade or so ago! It actually seems to have been cleaned up to be comparatively respectable now. Still some pretty strong claims, but the original site had a big rant alleging that Microsoft was behind an anti-GWAN campaign that involved collusion with anti-virus makers and Wikipedia to blacklist GWAN, due to MS’s “jihad against efficiency”.

    10. 11

      My response to this copied from https://news.ycombinator.com/item?id=20258485

      Thanks :) It’s 0.0.12, the first public release. What’s with all this “vaporware”?

      The compiler can already compile itself in 0.3 seconds and is written 100% in V: https://github.com/vlang/v#installing-v-from-source

      It allows building easy cross platform graphical apps: https://github.com/vlang/v/tree/master/examples/tetris

      It has easy cross compilation and can even compile itself for another platform: https://twitter.com/v_language/status/1137537130887077890

      It allows to build small performant GUI apps like Volt: https://volt-app.com/ (Volt 1.0 RC 1 for macOS has been used by thousands of happy users for several months.)

      It powers a simple forum: https://blog.vlang.io/forum And the entire forum is one 65 KB binary.

      It can translate and build DOOM: https://github.com/vlang/doom

      It has very extensive and simple to read documentation that covers pretty much the entire language: https://vlang.io/docs

      I think it’s pretty good for 0.0.12.

      Come back when it’s v1.0 by the end of this year.

      1. 9

        Now that you have added WIP, I am satisfied. Now it is not misleading and people can decide for themselves.

        Keep it like this and I won’t complain any more. Keep up the good work, you are doing something right.

        1. [Comment removed by author]

          1. 1

            Please edit or delete this, I didn’t lie, I didn’t post anything negative about V since this.

            1. 1

              Deleted; I am sincerely sorry about that. Mistaken identity as you correctly surmised elsewhere.

      2. 8

        It can translate and build DOOM: https://github.com/vlang/doom

        I only see one file there, can you please push the rest?

      3. 2

        It seems like people are kind of dogpiling on your project here, and perhaps the criticism is warranted. I haven’t looked that much into V, but I’m hoping this is a case of just over-hyping and trying to deliver something too early (although you’ve made it clear this is an alpha), and that you continue to work on this and make it something great.

    11. 4

      Would it be better to point to a permalink on the download_file mac implementation instead?

      It got fixed on master approximately one hour ago (which is some timing, considering this was also submitted an hour ago).

      1. 2

        Fixed that, it’s deploying right now. Due to the caching involved you might need to shift-f5.

    12. 8

      I’ll post the same thing here that I posted to HN.

      It would be nice if people were supportive of this effort instead of just ******* on it.

      Of course it is incomplete at 0.0.12. Was it over hyped? Sure. Good for him to have time for some marketing of his work next to actually writing a working compiler with a good start for a standard library

      This thing is real and here to stay.

      How about this: instead of writing about frauds and vapourware, contribute to the project. File an issue, fix a bug, work with the author.

      We should applaud and encourage these efforts instead of using every opportunity to be negative about them

      1. 9

        I would agree but I think the equation changes as soon as you start taking people’s money based on promises you’ve made about language features.

      2. 10

        Lol, make sure you donate some more money.

        With patches like this: https://github.com/vlang/v/commit/b3b4278f59a140be6a2ebe7b38e46b1c23d11834 things are bound to work out.

        Sorry I have to draw the line. To avoid getting shit on, he could have said “WIP” from the start, those are new additions. A bunch of his claims are also fantasy. Let me just “send a patch” to implement a C++ translator that translates my whole project, give me a break.

        Seriously, all he had to do was say “We aim to: …” instead of “V can: …” from the start.

        1. 12

          Calling people names is not very nice. I think this community can do better than that.

          I see you removed the part where you called me a moron. Good. But I’m really sad about this attitude in general. A hacker community should do better than that.

          1. 9

            Now he added WIP I won’t complain anymore. It isn’t misleading, it was before. There is a line between breaching trust and hyping. Before V was crossing that line, now it isn’t so much.

          2. 8

            Do me a favor and consult with your engineers about automatic translation of C++ code in firefox to rust and ask for a cost estimate. After you do that look at the old V website when it was closed source and said C++ translation was coming soon. Then go look at the donations for V development.

            After you do those things, go look at how the Theranos fraud worked. After you do those, browse through comments of people defending Theranos. Then finally, come back and read your own comments here. The scale is not the same, the stakes are low. But the patterns were the same.

            Like I said, now he has changed things to say WIP and released lots of source code It doesn’t matter so much. Eventually he will either succeed or people will become dissatisfied and leave. Both are fine by me.

          3. 6

            There is a fine line between being a dickhead and a gullible idiot. The last few weeks lobsters has been going for too much to the gullible idiot side of the fence.

    13. 9

      This post is bullshit and I’m sad to see it here with 82 upvotes.

      I hate the smug pedant writing style throughout, the massive effort spent explaining that WIP features are indeed a work in progress, the pages of copy pasted console output to demonstrate that there are trivially fixable bugs, and so many errors. (using trivially replaceable libc functions fits the standard definition of “zero dependencies” for C code, try making a release build, nobody cares if a compiler leaks memory, you would fix it by deleting the malloc, nobody cares that compiling a 1.2m line function fails, your benchmark is invalid because it doesn’t actually work, macbooks are 10x slower than any modern desktop, …)

      I especially hate the condescending suggestions at the end and loosely sprinkled flowery statements that allow you to pretend you’re being constructive and not just making fun of someone in public for upvotes.

      Five days ago you submitted a post about how you hope you can help new programmers get into the industry, now you’re writing multiple posts and comments dumping on someone because version 0.0.12 of the one man project they’re giving away for free isn’t as good as you hoped. Don’t you find that hypocritical?

      BTW yes I am aware his patreon raises $800/month, remarkably average programmers fresh out of school make that much in one day at Google/FB/etc, all of whom will happily take his work and give nothing back should it benefit them.

      1. 13

        the massive effort spent explaining that WIP features are indeed a work in progress

        That this was not how anything was portrayed or described for months on end. The post doesn’t really give full context.

        nobody cares if a compiler leaks memory, you would fix it by deleting the malloc

        No, V manages memory for you apparently.

        macbooks are 10x slower than any modern desktop,

        I know you are exaggerating, but no, they aren’t 10X slower, especially not for a single threaded workload like the current v compiler. I agree the benchmark is synthetic and doesn’t mean much, but If anything a real program is split into many files which will slow things down further. The fact of the matter is the author likes to say V compiles 1.2 million lines of code a second, and it doesn’t. Why say things like that when they aren’t true? Just say V is fast, or V will be fast.

        Five days ago you submitted a post about how you hope you can help new programmers get into the industry, now you’re writing multiple posts and comments dumping on someone because version 0.0.12 of the one man project they’re giving away for free isn’t as good as you hoped. Don’t you find that hypocritical?

        I don’t think he/she said they should get into the industry by telling people they are more capable or accomplished than they actually are. Say I have some free things to give your elderly parents that don’t work as advertised and then cause harm, fine by you I guess? It was free after all.

        BTW yes I am aware his patreon raises $800/month, remarkably average programmers fresh out of school make that much in one day at Google/FB/etc, all of whom will happily take his work and give nothing back should it benefit them.

        Can’t argue with that.

        Anyway, the V site is much better now - all people want is honesty. It isn’t that hard.

      2. 8

        I hate the smug pedant writing style throughout, the massive effort spent explaining that WIP features are indeed a work in progress,

        Problem is that for months if not years, those features were advertised as present. The (WIP) icon only got added recently.

        macbooks are 10x slower than any modern desktop

        Not even close. A MBP can get as high as 5140 on geekbench, while the maximum a high end iMac has gotten is 6245. https://browser.geekbench.com/mac-benchmarks

        BTW yes I am aware his patreon raises $800/month, remarkably average programmers fresh out of school make that much in one day at Google/FB/etc, all of whom will happily take his work and give nothing back should it benefit them.

        $800/day is $208k/year

        that’s notably higher than average dev salary at facebook and at google, and I’m sure that a new graduate doesn’t get the average salary.

        But yeah, this is semantics, so whatever.

        In any case, you should also account for that fact that he lives in Russia, and that $800/mo (used to be $1000/mo fwiw) is a notable amount by Russia standards. Yandex pays ~2k USD per month on average to their software developers. (conversion)

        1. 3

          Note the patreon is $800 per month, not day. $9,600 per year is not much.

      3. 6

        What @ac said is true. Here are the original claims he presented mostly like it was done. A few articles like that. On HN, we got him to back off admitting some claims were actually in just getting started stage. Eventually, he put WIP icons on some of that on the new site.

        Before that, he was saying he had a language safe with no GC like Rust (but easier) that compiled fast like Go running as fast as C with no to sub-1MB dependencies with cost-free interop with C/C++. And he can transpile your C++ code to it, too.

        Then, we got this repository as the deliverable. And it didn’t even deliver on some of the easier claims. Yeah, you bet folks are going to call him out for that.

        Edit: Tagging ac and @cadey in case you want the archive link as evidence.

      4. 5

        I’m glad you said something because this entire thing is embarrassing and in my opinion, all these folks dog-piling should be ashamed of themselves. If this person CAN make stuff happen, then why not cheer him on? If he can’t then why not say, ‘good try mate’? This hyper critical negative focus is so distasteful.

        But but he’s taking MONEY! So? He’s got a patreon and he’s trying to fund something he thinks he can do. All these hyper technical nitpicking folks thinking somehow this is a zero-sum game. Just shameful.

        1. 6

          I think he did a great job marketing, If he can make things happen then great. He just should stick to truth when getting attention. It isn’t that hard. It isn’t “hyper critical” to expect honesty. The site is much better now than it was before.

          thinking somehow this is a zero-sum game

          I didn’t see anyone make that claim.

          If he can pull off all the WIP’s in december 2019 like the site says, it would be fantastic.

          1. 2

            If he’s doing this in good faith (which I figure he probably is), then so long as he doesn’t give up, by December he’ll have learned a whole lot & be substantially more qualified to attempt everything he’s planned (even if he hasn’t managed to do so by that point). Jumping in the deep end is a great way to learn to swim.

            Already, he’s learned an important lesson: that misrepresenting planned features as already-implemented will be generally interpreted as dishonesty, & so it makes more sense to build trust by working in public.

            If he stays on this path, the donations will be justified simply because they will have supported the development of a skilled & well-rounded developer – something we desperately need more of in the world! And, cadey’s post is a vital part of making that happen.

          2. 2

            YOU my friend, made that exact reference:

            Lol, make sure you donate some more money.

            Why on earth do you care if people are giving him money or not? He’s working on something, he’s solicited for money and people have given it to him. How does this in any way affect you? This is what I meant by zero-sum. Folks giving him money doesn’t automagically reduce the available money for other people, so why begrudge him?

            Perhaps this stems from my personal belief that we should be trying to always encourage each other in our endeavors rather than tearing them down constantly, but I see nothing but a bunch of folks jumping like blood-thirsty savages on a cat with some good hype-game and some ideas about PL that he’s making an attempt to make real.

            1. 5

              Protecting others from perceived bad decisions is not being greedy. it is trying to help people.

    14. 3

      My benchmark:

      #! /usr/bin/env python3
      
      def write_fn(f, fn_name):
          f.write("fn %s() {\n" % fn_name)
          for i in range(49999):
              f.write("  print('test\\n')\n")
          f.write("}\n\n")
      
      
      with open("million_lines.v", "w") as f:
          names = []
          for i in range(1200000 // 50000):
              name = chr(ord("a") + i)  # a-x
              write_fn(f, name)
              names.append(name)
      
          f.write("\nfn main() {\n")
          for name in names:
              f.write("  %s()\n" % name)
      
          f.write("}\n")
      

      Lets generate the file:

      $ ./gen_million_lines.py
      $ wc -l million_lines.v 
      1200075 million_lines.v
      

      And measure how long it takes:

      $ time ../compiler/v million_lines.v
      
      real	2m55,227s
      user	0m14,998s
      sys	0m0,468s
      
      $ ./million_lines | wc -l
      1199976
      

      @ Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz

      Well. Here you have it. It is quite synthetic benchmark and it is possible that it works better on “real” source.

      PS: I like V as a language. The presentation, not so much.

    15. 2

      Don’t know how v is supposed to be hyped and when, I just never heard of it, maybe using mainly lobste.rs to get tech info I’m protected of this vaporware.

      1. 6

        I’ve definitely seen it posted several places before. I think it was promoted in a newsletter I subscribe to, as well? It’s absolutely understandable that it would get a lot of hype naturally, given its claims. I probably would have spread the hype, but I think at the time there was no source released at all & so I was more skeptical.

        Sort of shockingly, some of the WIP stuff cadey lists is relatively trivial (emitting x64 machine code is basically the easiest thing about writing a compiler, particularly if you’re not supporting any other platforms, and there are great tutorials floating around for making syscalls directly without going through libc) while other stuff is absurdly complicated (writing a full-featured cross-platform GUI library with no dependencies means learning how a dozen versions of a dozen native GUI APIs work and figuring out how to interface with them without actually linking to anything before writing your own wrappers to paper over non-trivial differences between how stuff like clipboards are assumed to work; C++ is a very complicated language and processing arbitrary C++ code is a lot harder than writing a fresh & clean new language from scratch). If, indeed, this is all in the same list at the source & not clearly differentiated as different tiers of effort, that probably indicates that the author isn’t familiar enough with the problems he will inevitably encounter to make any claims about his ability to perform any of the tasks listed.

      2. 1

        Not sure, I would be curious to reverse engineer how he did it. If you look at the github stars it is amazingly high.

    16. 2

      @cadey please dig up a copy of Jai and repeat the scalding for max lulz :)

      1. 2

        Except for watching a few coding streams, I have zero experience in Jai. I do however have respect for Jonathan Blow, he seems to know his stuff. Any concrete info on why Jai would suck?

        1. 1

          From what I know of it, mainly the fact that a few coding streams are the only artifacts of it that actually exist. And yet it’s caused some people to generate a lot of hype purely because Jonathan Blow seems to know it’s stuff.

          So, it would be cool to see whether Jai lives up to the hype, but… as it is, an article attempting to demonstrate that it’s vaporware would be pretty darn short.

    17. 1

      I don’t think it was necessary to trash the project so much. I appreciate that the inaccuracies were pointed out though.

      1. 5

        The tone could have arguably been better, but it felt like I was lied to. A lot of the tone and language comes from feeling ripped off.

        1. 2

          Yeah I get where you’re coming from. I appreciate the time you took taking a closer look and confirmed what I suspect about the project.

        2. 0

          Though I find V’s self-aggrandizing and dishonest marketing tactics really distasteful for various reasons, in what way do you feel “ripped off”? How has the language victimized you or otherwise made off with your resources? Did you donate to the project or something?

          1. 4

            Time and attention are also scarce resources.

          2. 3

            Why are some movies perceived to be insulting to one’s intelligence? (a case separate from a movie that insults minorities or such).

            Why do some people empathize with elderly people who sent their money to a Nigerian prince?

            Maybe the world would be a bit better with Patreon and all of that but not a single person actually gave a shit about anything?

            I disagree with that, though giving a shit on the Internet may be hazardous to your mental health.

    18. [Comment removed by author]

    19. 1

      Great breakdown!

      More general note: it always bothers me how much black magic you need to build software. Linking against libexecinfo? Never heard of it.

      1. 2

        It’s specific to Alpine. This is normally a part of glibc, but Alpine doesn’t use glibc.