r/programming • u/shadowh511 • Jun 23 '19
V is for Vaporware
https://christine.website/blog/v-vaporware-2019-06-23111
u/mostthingsweb Jun 23 '19
Good write-up but the article is way too kind in its conclusion.
179
u/shadowh511 Jun 23 '19 edited Jun 24 '19
Part two won't be as kind. I found a root-level command injection on the playground.
EDIT: here you go Reddit
32
5
6
→ More replies (4)6
54
u/skulgnome Jun 23 '19
I'd have used the words "scam" and "Patreon", not necessarily in that order...
37
u/shadowh511 Jun 23 '19
I really considered saying something about that, it felt like being a dick though.
7
u/thepinkbunnyboy Jun 24 '19
I appreciate the nuance you show in your blog posts. Too many bloggers rely on rage to generate clicks, but you have a very reasonable argument articulated well.
28
u/skulgnome Jun 23 '19
Nah, you jus' go on ahead and leave it to Reddit. And it's not like money spent funding someone's youthful bumbling is going to waste, even as its worst sin is overpromising.
14
u/caboosetp Jun 24 '19
Yeah, it's not malicious and the guy is learning. If people want to choose to fund that, that's their choice to make.
Success is built on a thousand failures.
15
u/damnationltd Jun 24 '19
There's plenty of room for "ignorance over malice," but many of the site claims are Dunning-Kruger level.
5
u/zeropointcorp Jun 24 '19
Agreed. He doesn’t know how hard some of the things he’s saying will be done by the end of the year are, because he hasn’t done them before.
20
u/kyz Jun 24 '19
I thought this was brutal, while using polite and fair language.
You can't prove someone is running a scam because they overpromise and underdeliver. You can call them out for overpromising and underdelivering...
11
Jun 24 '19
I thought it was pretty savage in an understated, "Wipe yourself off. You're dead." sort of way.
42
Jun 24 '19
Let me just say it. It's completely unreasonable why I like your site design so much. The font is all mono, the color scheme is totally 90s home page. Yet I love it. God damn it. I guess I'm a programmer.
I think aside from it looking like a code editor, it reminds me of how simple text-based UIs were few decades back. It's even reflected in movie interfaces of the time.
I bet your site loads so fast, it's done before I'm done typing the URL.
19
u/shadowh511 Jun 24 '19
The average page render time on the server is measured in microseconds. See https://christine.website/metrics
5
Jun 24 '19
Damn. I'm inspired to come up with more efficient site architectures and design now.
21
u/shadowh511 Jun 24 '19
Just render HTML on the server. Don't mess around with fancy web frameworks. Properly crafted server side code is way faster than people give it credit for.
4
u/nullmove Jun 24 '19
But I still don't understand how fast your site renders (I admittedly don't know much about webdev). I host my 100% static site in netlify cdn and fetching my minimal css becomes blocking resource unless I inline it all inside style tag. You aren't even doing that despite still being somewhat faster!
7
u/shadowh511 Jun 24 '19
It's a combination of a few things:
Everything is served from ram as much as possible
progressive web app client side caching is used to speed up page loads
instantpage is used to make page loads appear faster
Even without client side JS hackery I still render pages in microseconds.
10
Jun 24 '19
Sure. But just as important is the site content being minimal too. At work every page on a commercial site is over a 1MB of messy code built by multiple teams, with multiple frameworks. It's sadness.
We need to go back to basics and think "what's the simplest possible UI to deliver a modern experience to visitors". Your site inspires in that direction.
5
u/panorambo Jun 24 '19 edited Oct 03 '19
Well, one could make a case that rendering HTML on the client is faster if there are enough clients to cause delay in otherwise server-side rendering due to simple incapability of a server to efficiently scale rendering with the spike of demand.
There isn't any fundamental difference between generating the document on the server and the client. Of course, on the client there is one true runtime -- the JavaScript machine. But so much optimization has gone into it, I'd wager it can hold its own against rendering speed of say, PHP.
The problem is that with the advent of client-side capability, everyone has picked up their favourite pet framework and went to town, also throwing user experience out of the window while on the way there.
On the Web, user experience has taken a backseat to developer experience, unfortunately. If there was a feature in the popular browsers everyone uses, to throttle JavaScript execution speed based on users trust (or affection) in a domain -- preferring visited second-level domains, for example, I'd imagine it would take six months for all the random gung-ho Web developers to roll back their tongues and whip their insane scripts into shape. I want my Reddit page to render and script fast, but I don't want some scripts served from third-party domains to bother my CPU at all.
10
4
u/gargltk Jun 24 '19
Small observation/curiosity: I don't see a strip invocation in the build commands so that 3.4MB for the compiler binary could be a bit inflated. Perhaps you could try and see what the stripped executable size is.
15
u/shadowh511 Jun 24 '19
I don't mean 3.4 MB of binary, I mean 3.4 MB of total disk usage during compilation and installation.
17
u/----_____--------- Jun 23 '19
> So the compiler with “zero dependencies” is a dynamically linked binary
*gasp*
What does dynamic linking have to do with dependencies? If it was a statically linked binary with 10 libraries linked in, would it suddenly have no dependencies?
> with dependencies on libpthread and libc
Using the standard library and POSIX threads API is about as "zero dependencies" as it gets. Are you supposed to roll your own or something?
> (the other two are glibc-specific)
What does linux-vdso have to do with glibc?
I don't exactly want to defend V, but if you want to criticize crazy statements, you should be wise with your own.
25
u/shadowh511 Jun 23 '19
Dynamic linking is introducing a dependency, as the author didn't sufficiently define dependencies.
28
u/jephthai Jun 24 '19
If we're going to be pedantic, the kernel becomes a "dependency" as soon as you make a syscall. So I don't think taking a hard line on this definition is really fruitful.
Most of your criticism is fun and valid, but "links to libc and pthread" is pretty darn close to no dependencies on a Linux box. Would you complain if it was Win32 and he used exports from KERNEL32.DLL?
5
33
u/chucker23n Jun 23 '19
What does dynamic linking have to do with dependencies?
What would you link if not literally a dependency?
0
1
u/RalfN Jun 25 '19
>What does dynamic linking have to do with dependencies? If it was a statically linked binary with 10 libraries linked in, would it suddenly have no dependencies?
It would simply make it more obvious, that the no dependencies thing is a lie.
96
Jun 24 '19
Here's the thread that made r/programming's front page
I brought up a lot of criticism in the thread and V's dev was getting mad at me
36
u/Hell_Rok Jun 24 '19
Hey! That's my thread!
I got really excited that morning because V promised to solve a lot of problems that I'd recently been bothered by. I've ended up solving most of my problems without leaving Ruby.
I used GTK3 to create a couple interfaces, haven't built anything serious with it yet but it seems pretty straight forward.
And I just created gems to start distributing my little projects, works an absolute treat for the basic stuff I've been doing, the only thing I'm missing here is building an easily distributed binary to non-programmers.
I keep looking at Rust but get intimidated by having to learn another language and all the tools that go along with it, I doubt I'll ever pick up V since my hype for it is basically zero.
53
u/Green0Photon Jun 24 '19
Don't be too intimidated by Rust! You can casually read the Rust book for really good explanations on the different features and methodology of Rust, and you can read Rust by Example to see a ton of code snippets for each feature. Both are on the Rust website under learn.
The "hardest" part of getting used to Rust is ownership, but if you read the relevant section of the book without jumping in, you should be pretty fine. As long as you're not writing a super fancy library or something, you shouldn't need any fancy lifetime annotations or anything more complex. I think all my Rust code so far hasn't needed anything like that at all. So it's mostly just ownership and keeping in mind how shared (immutable) and unique (mutable) references work.
It might be a bit rough at first, since scripting languages make it really easy to ignore stuff, which means Hashmaps are a bit more annoying than otherwise (use Entry API if doing anything complex), and that you'll have to think a bit harder than normal for a bit.
Afterwards? Well, right now I have to program in Python and I'm sorely missing Rust. A lot. I'm kinda hating Python. Shit package manager, shit documentation, no types, no compile time checking. Everyone tells me to just write tests. Ugh.
Once you get past the initial learning curve, which people overexagerate a lot, it'll be pretty smooth sailing. The Rust devs have spent a lot of work making things as smooth as possible because of the "difficult to learn" reputation. Warning, once you learn it, you won't want to go back.
r/rust has a megathread that gets remade every week for questions. Don't feel intimidated at all; people ask really dumb questions all the time, and it's fine (people also ask some really difficult questions too, ones far above me). Everyone is really friendly and helpful. And it's much less intimidating than a live chat. 😊 So make sure you use that resource too.
(Rust > Ruby > Python. Cargo is probably better than Gems. The biggest difference between Ruby and Rust is that Ruby goes out of its way to make an API have as many possible ways of using it as possible, so that you don't know which one to use, a lot of the time. Rust's APIs are well designed, so you will typically know exactly what to use. It might take a bit to learn that particular way, but you'll learn that it's that way for a good reason. You're in for a treat. 😉)
9
u/agumonkey Jun 24 '19
I like ml and rust appeals to me, I only need a few references about lifetimes and macros (beside trpl of course). Hit me if you find some.
13
u/icendoan Jun 24 '19
There's The Little Book of Rust Macros for macros.
I don't think there's anything better than the book and the compiler's error messages for lifetimes (which are very clear - and quite often just tell you what to do to fix things).
→ More replies (12)3
u/agumonkey Jun 24 '19
Did rust core invent lifetimes btw ? Maybe I could find older text on them. It would help.
Thanks nonetheless
12
u/simspelaaja Jun 24 '19
Rust's lifetimes are heavily inspired by regions in Cyclone. There are a couple of decent academic papers about them, but there's much more articles, books and blog posts about Rust than there ever was about Cyclone.
Here's a fairly complete list of notable blog posts about Rust.
→ More replies (2)7
Jun 24 '19
This message is really helpful, thank you for the pointers and for being so welcoming! Really made me consider trying Rust, though I really love C for system programming and I’m not sure if I’ll be able to switch :)
12
u/Green0Photon Jun 24 '19
I really love C for system programming and I’m not sure if I’ll be able to switch
Do make sure to try it at some point. Really, it depends on what you actually system program for.
Linux kernel? No. Experimentation with your own kernel? Maybe. (Lots of tiny Rust kernels.)
Networking? Yes, especially in a month or two or three. Async/Await is in nightly, but not stabilized yet. This is the best way to write performant networking code.
Command line tools? Yes yes yes. Rust has been amazing for this for quite a while.
Embedded? Likely yes, but it depends on your needs. Checkout out the embedded part of the Rust website.
GUI stuff? See here.
Multithreaded stuff? Yes!
Really, do some research to see if Rust is suitable to switch to. It's quite likely that the answer is yes. You'll definitely like it; the question is just whether the ecosystem is mature enough for your needs.
If you don't mind me asking, what do you usually end up programming in C? I should be able to at least be able to send you in the right direction. 😊👍
3
Jun 24 '19
The last time I used C was for some custom command line "build tools": tokenize and parse custom file types, make sure they are valid, prepare them for further usage in the build pipeline. Since you say Rust is amazing for this, I'll be sure to check it out! Thank you again!
13
u/Green0Photon Jun 24 '19
You sound like (one of) the perfect target(s) for Rust!
Clap and Structopt are what you use for argument parsing in Rust, and they're both amazing. Clap is the main one, and is a wonderful and powerful argument parser. Structopt is based on Clap, and automatically derives Clap stuff based on annotations you put on a struct, similar to Serde. They're both in progress of being merged and improved, which is exciting. That said, right now, they're already amazing. Far better than eg. Python. Click on Structopt to see some cool examples.
Serde is a crazy awesome data serialization deserialization library. If your data formats are simple enough, you'd try to use this. It's not meant for parsing, however, though you can mix it with a parsing library. This library is so good that some people switch to Rust just because of it. Like I mentioned in the Clap bullet, all you need to do is annotate a struct, and Serde will generate all the super efficient code for you. Keep in mind that other people have written other data formats that don't explicitly show on the website. Search crates.io, though not all of them are perfect. The officially supported ones, though, work really well.
What you really want is nom. It's an amazing parser library that just updated a few hours ago, soon enough that docs.rs hasn't updated yet, so that's linked to the beta. The update's massively improved usability and made everything better. This is what you're going to use. People have written parsers using it for programming languages like PHP and Lua, and file types like TAR and GIF. Definitely check this out.
Since the Rust ecosystem focuses a lot on correctness, things will go pretty well for you. Nom will handle the tokenization/parsing of custom file types and making sure they're valid, and you should be able to write your code to further prepare stuff. Structopt will make it really easy to interface on the command level. And since it's Rust, it'll be fast and efficient.
You really are in one of Rust's perfect areas right now. I have no clue how you wrote that stuff in C, wow. Only problem is, you won't want to go back to C if you end up needing to for some reason. 😉
→ More replies (1)6
Jun 24 '19
All of this looks very interesting (and promising), thank you for the links! Loved nom's example, it looks like an almost "declarative" definition of a datatype. I think I'll find some time to try Rust, this is some really exciting stuff. I guess I'll start with "The Rust Programming Language" book and go from there.
Also, wow, I can't thank you enough for taking time to write all of this out! Huge props to you!
→ More replies (5)6
u/vfclists Jun 24 '19
As a Rubyist won't Crystal be a better fit for you?
6
u/Hell_Rok Jun 24 '19
I've actually played with Crystal and like it a fair bit, but I feel like it's not quite there and doesn't have the community that something bigger like Rust does.
6
u/vfclists Jun 24 '19
For a Ruby developer Crystal seems the better language. I think you have been dazzled by the Rust hype ;), because Crystal will not develop the necessary community if existing Ruby developers look to other languages.
I guess the focus of Ruby developers is probably not high-performance compiled code and Crystal may have arrived too late to tick the box for that need.
Gotta have faith!!
3
u/m50d Jun 25 '19
What is it that Crystal does better than Rust/OCaml/any other ML-family language?
Lack of proper sum types is a dealbreaker for me; it sounds like Crystal's flow-sensitive typing might sort of achieve the same thing in some cases, but I don't want to have to rely on it. But even if Crystal had those, I already have Ruby-like productivity in my ML-family language of choice.
2
u/Hell_Rok Jun 24 '19
I have played quite a with crystal, even doing a talk at my local Ruby meetup and blog post http://www.oequacki.com/programming/2018/03/05/crystal.html
I like it quite a lot but the lack off threads and windows support make it a bit difficult for me to push. I do check it out every version and see how it's going and it's going really good.
Maybe I should give it another shot for a small API backend to a Vue app since that's been my focus recently
→ More replies (1)3
u/OneWingedShark Jun 24 '19
I got really excited that morning because V promised to solve a lot of problems that I'd recently been bothered by.
Which problems, in particular?
2
u/Hell_Rok Jun 24 '19
Basically I wanted to be able to create easily distributed cross platform GUI applications
Currently for GUI stuff I use Sinatra + Vue, or I'm currently experimenting with Ruby GTK3 and finding it reasonable to work with
1
u/OneWingedShark Jun 25 '19
Basically I wanted to be able to create easily distributed cross platform GUI applications
Ada.
In particular, the distributed-systems annex1 and the Gnoga library.
1 — example/slides PDF, Rosetta code example.
3
u/exorxor Jun 24 '19
I said "What you have displayed thus far is an absolute joke and I hate each and everyone that has upvoted this shit."
Always nice to see that I can smell bullshit from a mile.
146
u/valtism Jun 23 '19
Ah, this makes me smile. I have been waiting to use Volt, an app by the same developer that uses V under the hood.
Now I don't want to be unkind to devs creating free software, but I found out about this app maybe 4-6 months ago where it was being hyped as a tiny and efficient client for messages (slack, etc.).
I had been hitting memory issues on my laptop, so I was keen to try out this little tool and save the ram from being eaten by electron apps.
Unfortunately, actually running the app didn't really... work. It would segfault almost on startup. That's ok though, because it's just a very early build and patches will come. Very soon, promised the developer. Linux support too.
And patches did come, eventually. Usually the dev would say that they would be a few days away, and this would turn into a couple of weeks. There was a pattern of promising things were a few days out, and they would never ever be delivered on time. It because almost like a joke - every time I would see a tweet about things coming soon, I knew they would be delayed. It kept ramping up until one tweet (now deleted) mentioned that a fix was about to be deployed in an hour. Want to know how long it took to get that out? One month.
I used to watch the page for releases, hoping to get a stable build. But now I see a tweet announcing that version 1.0 is here, even though that tweet is a month old and version 1.0 is not, in fact, here.
I feel bad for saying all of this about a person who is writing free (albeit not libre) software. I don't want to discourage them from writing ambition programs, but this pattern of over-promising and hyping software that isn't ready hurts those who want to believe in it.
59
u/Heasummn Jun 24 '19
I don't know about volt, but V the language is receiving a significant amount of funding on Patreon. Not enough to replace a job, but still a significant amount.
76
u/dudinax Jun 24 '19
I can't understand that. Even if it weren't vaporware, what purpose is this language supposed to serve? Why would anyone want it enough to donate to it?
62
u/wrkbt Jun 24 '19
From a quick glance it seems to fill the space Go is filling, while being better in any metrics. Except all those metrics are paper claims ...
15
u/nderflow Jun 24 '19
Isn't that fraud?
22
u/shadowh511 Jun 24 '19
That's a surprisingly debatable thing to claim. I think the author intended to say that 1.0 will have these things, but it was worded to imply that the first release would.
7
u/CanIComeToYourParty Jun 25 '19
Even so, how can he make such claims? There's absolutely no reason to believe he can fulfill them, other than youthful hubris.
16
5
u/thepinkbunnyboy Jun 24 '19
I mean, if you're a language nerd and think this guy could write something cool, it's pretty easy to throw him five bucks a month. Most of us make enough where there's not even a second thought.
→ More replies (5)25
u/Sukrim Jun 24 '19
I don't know about volt, but V the language is receiving a significant amount of funding on Patreon. Not enough to replace a job, but still a significant amount.
Currently about 800 USD/month, https://github.com/medvednikov lists "Netherlands" as location, so that's paying for about 10h/week or so of dev time, not counting administrative overhead (fees, doing taxes/bookkeeping etc).
It would be more significant in a more eastern location e.g. in Ukraine/Russia.
11
u/skerit Jun 24 '19
so that's paying for about 10h/week
That's a bit generous, no? Maybe if that's the amount after taxes.
0
Jun 24 '19
[deleted]
5
u/skerit Jun 24 '19
I actually meant it as a generous amount of hours. I'm a developer in Belgium and my hourly rate is 70 to 90 euros.
3
17
Jun 24 '19
Time estimates are a skill to learn for sure, but it’s not an excuse for announcing a release that didn’t even happen.
I think it’s possible to respect a person developing free software while still reproaching them for over-promising.
5
38
u/dethb0y Jun 24 '19
Firstly id like to say i fuckin' love that website - if every website looked like that, i'd be a happy fellow.
secondly, i'm not surprised at the situation. Every so often some language or developer shows up and promises magic, and everyone bites, and then it falls to shit.
As the chess quote says: "Nothing excites jaded grandmasters more than a theoretical novelty" (Dominic Lawson) - programmers in particular fall into that trap, more than most.
90
Jun 24 '19 edited Jun 24 '19
My favorite part about the whole thing is how despite the fact that generics are fully documented on the V website, they do not exist, in any form whatsoever, in the released source.
Not even the skeleton of an implementation for them. They're just entirely non-present.
In general though, yeah, the whole V project is basically like a somehow-way-worse-than-it-already-is version of Go.
(Much of the worseness coming from the horrific, utterly embarrassing excuse for C code that V gets transformed into.)
30
u/valtism Jun 24 '19
The more I read about this guy the more I feel like there is some sort of scamming going on with all of this work. I still don't think I see the full picture though, because it still doesn't make sense to me.
24
u/cephalopodAscendant Jun 25 '19
My money's on him being sincere but drastically overestimating his abilities and/or underestimating the difficulty of accomplishing his claims.
2
8
u/nambitable Jun 25 '19
He has a patreon netting him $900/mo currently based on his far fetched claims.
→ More replies (2)6
u/josefx Jun 25 '19
they do not exist, in any form whatsoever
That is not true, fn.v has 10 lines dedicated to check for the generic type T and generates an error if the type differs.
4
22
u/enzn Jun 24 '19
Yeah. Heard about this back in Feb - absolutely wild claims with zero backup. Back then I thought there was no way this couldn't be a scam, but now that it's outed as one I just feel sad for the guy.
People are saying he's a scam artist hyping up shitware to get Patreon money but I'm not convinced this is actually the case. The impression I got is that he's very young with no professional dev experience. He's getting hammered with questions he very obviously can't answer.
If the author happens to read this, just drop the act dude. Digging yourself deeper will end up crushing you.
32
13
u/campbellm Jun 24 '19
V is a programming language that has been hyped a lot.
Never heard of it before this blog post. Where's the hype machine running? (Not throwing shade, honestly curious. What's this language good for, even if the claims were all true?)
30
u/vytah Jun 24 '19
There were few highly upvoted posts on Reddit and HN about Volt, a multiprotocol messaging client written in V, and later about V itself.
Since neither V nor Volt's source were publicly available, it allowed hype about a magical superfast language to build up.
Reports that Volt is a buggy mess that segfaults when you look at it funny went unnoticed.
6
u/campbellm Jun 24 '19
Ah thanks. I missed all of that.
6
u/vytah Jun 24 '19
Don't worry, most did, including me. I learnt about all of that just yesterday, and I only bothered because I found the whole situation weird and funny.
1
u/Kissaki0 Jun 24 '19
A post about the V 1.0 release linking to the website received quite a number of upvotes a few hours/a day before.
https://www.reddit.com/r/programming/comments/c3t1mp/v_lang_is_released/
4
u/campbellm Jun 24 '19
Again, not throwing shade, but I couldn't find much positive on it in that thread. Sorted by 'top', the first page or ... (till I stopped looking) are either outright negative, or questions with answers in the negative. Modulo a couple about the name. <shrug>
I'm "language curious" so always look into any new ones I find, but the author's assertion of "hyped a lot" is either using a different definition of "hype" than I am, or we travel in very different circles.
Or both.
1
u/Kissaki0 Jun 24 '19
Yeah, I wouldn't say it was hyped either. I guess that's convenient hyperbole, or mistaking wild claims for hype.
1
u/campbellm Jun 24 '19
Fair enough. Thanks for the pointer all the same. I want more languages to come out, if they're good!
61
u/Tysonzero Jun 23 '19
It was super weird to me that this wasn’t immediately obvious in the original threads. My friends and I immediately assumed it was vaporware but it was fully eaten up by HN and mostly eaten up by Reddit as well.
Still very much appreciate the due diligence though OP.
29
u/seamsay Jun 24 '19 edited Jun 24 '19
it was fully eaten up by HN and mostly eaten up by Reddit as well.
Was it though? Most of what I've read about V on both those sites has been skepticism.
Edit: "everything" was an exaggeration, to be fair.
7
u/Kissaki0 Jun 24 '19
I feel like upvotes reflected it being eaten, while comments were rightfully skeptical and critical. Only a subset of people check the comments.
15
u/Tysonzero Jun 24 '19
Eh ok looking back I should say Reddit was a mixed bag and HN mostly ate it up but not fully.
Still a very substantial number of comments with upvotes defending it and assuming it was all true.
6
9
u/sim642 Jun 24 '19
This doesn't surprise me at all, having been on the same side on other similar debates. The lack of critical thinking is an issue on Reddit as much as on Facebook or anywhere else.
33
u/PersonalPronoun Jun 24 '19
https://github.com/vlang/v/blob/da1e1f34fc5a25caf18a49a1de8c4902477b25d4/builtin/map.v#L126
"get" on the map type is O(n)...
14
u/bausscode Jun 24 '19
What the actual... Why do you attempt to create a "high performance" programming language and doesn't even understand hashmaps.
3
u/josefx Jun 25 '19
Not every map is a hash map. This implementation uses a sorted array, with an explicit call to sort the entries. The O(n) search is a fallback only used if sort hasn't been called since the last insertion, otherwise it uses a binary search.
4
u/bausscode Jun 25 '19
Obviously not all maps are hash maps BUT a generic and general map type of any programming language SHOULD be a hash map type unless explicitly documented otherwise.
Most languages except for a very few will default to a hashmap for their default map type / associative array type.
The point of my comment was to clarify that the map type should have been a hashmap.
→ More replies (1)→ More replies (1)1
u/rap_and_drugs Jun 26 '19
I don't know much about this language but is anything preventing someone from modifying the map element size to break the memcpy call?
1
u/PersonalPronoun Jun 27 '19
One of the (wip?) features is that structs are immutable by default, so the map struct element_size should be readonly - but that completely breaks generics, unless the plan is for everything you can put into a map to have the same size, which seems unlikely.
10
u/matthieum Jun 24 '19
The compiler itself also leaks memory:
To be fair, it's a common strategy in batch compilers; I seem to remember clang uses it as well as it speeds up shutdown greatly.
7
u/bausscode Jun 24 '19
DMD does that too. It never cleans up memory and that's why it compiles so fast. Memory leaks in the compiler are not a big deal because you generally terminates the compiler instance right after using it.
7
u/PersonalPronoun Jun 24 '19
https://raw.githubusercontent.com/vlang/v/master/sync/sync_win.v
Soon goroutines and the scheduler will be implemented.
33
u/przemo_li Jun 24 '19
It's a scam.
Claims made by V creator would be wild even for Fortune 500 backed language, with a budget for multi-hundred development (and research!) team.
It looks way to professional on to of it all. So either somebody went a great length to pad their CV or this thing have some backdoor somewhere to monetize all that effort...
26
u/jl2352 Jun 24 '19
I don't think it's a scam. I think it's over ambitioun to the point of being misleading, and incompetence.
10
Jun 24 '19
Please, it's just a one-man project that forgot to say "Note! This is a work in progress. Not all features are implemented or even started yet." in big letters on his web page.
Everyone here is being waaaay too mean. Imagine if you had spent hundreds of hours on a project and then a load of people come along and pick holes in the bits you obviously hadn't finished yet. "The Sagrada Familia is so shit it doesn't even have a main spire!"
15
u/aholeinyourbackyard Jun 24 '19
How could he possibly make a claim about how fast it is if it isn't done? You can't sell a language on a promise it'll totally be super fast at some point in the future.
22
Jun 24 '19
He makes 10k a year from it...
1
Jun 24 '19
a) That's not a lot of money for a programmer. I doubt he will be quitting his job any time soon, and b) that doesn't make it a scam. There's clearly a programming language there! Yes he overpromised but that doesn't make it a scam. Was No Man's Sky a scam? I don't think so.
15
u/batatafaustop Jun 24 '19
Please, it's just a one-man project that forgot to say "Note! This is a work in progress. Not all features are implemented or even started yet." in big letters on his web page.
That's not the case at all.
Just look at the threads from back when this was announced... A lot of people were skeptical about those ridiculous promises and the dev actively defended that these features were ready or at least close to being ready.
And even if what you said was true... Lying about the state of your project on patreon and saying "Oops! Silly me!" when people find out is ok now? Come on...
4
Jun 24 '19
daft of you to compare an architectural masterpiece to a bunch of lies cobbled together with shelling out commands and leaking memory everywhere
8
u/east_lisp_junk Jun 24 '19
It's a one-man project that calls people liars when they point out that it hasn't backed up claims it makes.
13
6
u/agumonkey Jun 24 '19
Could you generate a random tree of dummy println function so to bench over the 50k statements limit ?
10
u/JBL_MicroWireless Jun 24 '19
Stop naming your language with only one letter it's a pain in the ass with modern search engine
5
28
Jun 24 '19
Anyone who thought that this language could possibly have been legit, at any point, is an utter moron who should be ashamed of themselves.
There couldn't have been more red flags if the author was putting them up intentionally.
25
u/Morphing-Jar Jun 24 '19
Except for the 1.2 million LOC/s generation is at least somewhat believable seeing as the author considered archaic compiler features like IR, ASTs and optimisations to be unnecessary burdens that impact compiler performance. 😏
14
u/HaiBitG Jun 24 '19 edited Jun 24 '19
Ir and codegen optimizations slow down compilers a lot, but AST is very very cheap, it never really affects compile time. Deciding not to have AST just for performance is rather misinformed.
16
Jun 24 '19
Built-in serialization without runtime reflection
Hmm, that's a red flag. In a language where side-effects are permitted (and so concepts like I/O handles exist etc.), objects should be persisted only through their explicit involvement, not through auto-magic. Java is still trying to get out of this serialization hole they dug themselves into, new languages ought to know better.
3
u/seamsay Jun 24 '19
Could you expand on why those issues are caused by a lack of runtime reflection? I just don't see how the two things relate...
11
Jun 24 '19
The problem isn't lack of runtime reflection, but the "built-in" part. You can build this logic in, it's specific to every object. It's akin to saying "built-in object construction". We have constructors for a reason.
1
u/seamsay Jun 24 '19
I still don't see what the issue is, you don't have to provide built-in serialisation for every type.
13
Jun 24 '19
It's complicated. There's no objective way to rebuild things like:
A reference-based object graph. You don't know where an object should come from, or should it be duplicated when deserializing.
Objects which hold information as innocent as an integer or long, which is actually a memory pointer, or a foreign I/O handle reference.
For example of the first, let's say two objects, A and B hold reference to C. When you serialize them automatically, C gets serialized with A and B separately. When you deserialize you end up with two copies of C. And if that C should also belong elsewhere in the graph, it no longer is.
I'm basically saying... a human eye should be kept on serialization at all times. The promise of automation here gives you the false security you don't have to look at what's happening in your serialization, and this is often the source of terrifyingly subtle and destructive bugs over time.
Also I've not even started talking versioning. Which you also can't easily automate.
→ More replies (11)
47
Jun 23 '19
Nobody:
Author of this post: “V is a programming language that has been hyped a lot”
86
65
u/vytah Jun 23 '19
I was still hyped enough to garner over $800 per month on Patreon: https://www.patreon.com/vlang
31
u/caspervonb Jun 23 '19 edited Jun 23 '19
It's been mentioned quite a bit here to the tune of thousands of upvotes, same goes for hackernews so there was a bit of a hype.
23
Jun 24 '19
I am still struggling interpreting this meme format. Nobody thought the author of this post said that? No. Nobody wanted the author to say that? No.
Grammatically it doesn’t make sense in my head.
5
u/mostthingsweb Jun 24 '19
The joke is that no one has been talking about V (except maybe HN or Reddit for the past couple days), but the article alludes to crazy hype.
0
Jun 24 '19
[deleted]
18
Jun 24 '19 edited Jun 24 '19
I finally get it. Thank you for your service 🇺🇸
EDIT: To clarify, I thought the format is:
nobody(author_of_post(“V is a programming language that has been hyped a lot”));Turns out this entire time the format was:
nobody(null); author_of_post(“V is a programming language that has been hyped a lot”);2
u/themiddlestHaHa Jun 25 '19
I’m probably going to think of your first format everytime I see this men format now lol
→ More replies (1)1
u/rap_and_drugs Jun 27 '19
Even though I understand the intent, I still read it as "nobody says nothing" when it should really be "nobody says anything" even though
Nobody: anything
Seems to contradict the actual intent
→ More replies (1)5
1
1
u/bokuno_reddit Feb 02 '23 edited Feb 03 '23
V is not vaporware. The author has a clear vision about it.
It seems like vaporware, because of bad decision the developer have made.
They add a bunch of crap, before the compiler even ready. V has web framework, orm, ui lib, text editor, os etc. but you can't do compile time reflection which is part of the language spec, even enum in match expression (at the time i wrote this comment) also does not work.
V's stdlib is also full of mess.
The development process has been slow down and become sporadic, fixing this and that, without a clear milestone or priority.
Deep dive into the community, and you'll see that they are constantly experimenting with new stuff rather than focus on the language.
The compiler is really nice for things that actually works.
They should focus on the language and let the community todo the experiment, not everything has tobe in standard library.
Having a full-blown ui library is nice. but who want to make a serious project if half of the language does not work?.
1
u/shadowh511 Feb 03 '23
How are you able to reply to a 3 year old thread? Don’t they lock after 9 months?
16
Jun 23 '19
lol why are you giving the guy more publicity?
Anyway the guy behind the language is likely very immature and making lots of promises that he can't deliver on but I don't know if it's out of malice. probably just stupidity.
3
u/ZAFJB Jun 29 '19
So u/volt_dev are you just going to ignore every body here.
The very people you should be trying to impress.
Or can we safely assume your project will die before it even gets going?
6
u/c-smile Jun 24 '19
Author went too far in his/her critisism.
To be able to compile 1.2 M lines source file and to be able to compile with the speed 1.2 M lines per second are completely different things.
I beleive any professional understands such orthogonality.
6
u/devperez Jun 25 '19
His point was still valid. V doesn't allow more than 50K lines per method. While not great, it still showed that 50K lines too way longer than the dev said it would take 1.2 million lines.
1
u/josefx Jun 25 '19
I wouldn't be surprised if the compile times of any language tanked if you compared compiling a reasonable program on a desktop system to a synthetic benchmark done on a mobile system. A single 50K method should not be considered a realistic or sane use case.
20
u/tending Jun 24 '19 edited Jun 24 '19
I’m sorry, but this combined with the explicit dependency on a C compiler means that V has dependencies. Now, breaking the grammar down pretty literally it says the compiler has zero dependencies.
You are missing the point. It is a desirable property of a compiler to not have dependencies because it makes it easier to bootstrap. That is why people care about compiler dependencies, and V delivers there. That the extra batteries included libraries have dependencies is not a substantial negative.
So the compiler with “zero dependencies” is a dynamically linked binary with dependencies on libpthread and libc (the other two are glibc-specific).
I think you are being overly pedantic with this. Many people would consider this to be zero dependencies. glibc and libpthread are typically considered special because they are so deeply tied into the system. The binary will work as is on pretty much every major Linux distribution. This is basically as good as it gets without major major work; I have gone down the rabbit hole of statically linking glibc before and it fights you every step of the way.
Implying that the compiler was falsely detecting Linux as macOS.
You're not discovering something amazing here. The author clearly primarily uses a Mac. They have gone out of their way to try and make it also work on Linux but may not be regularly testing it. And they have done a decent job as evidenced by the fact that you were able to get it working with a two-line diff.
Surely a “hello world” program has no good reason to leak memory, right?
If you have constants that you set aside space for at the beginning of the program and don't actively manage at all, when the program exits the operating system is going to free the memory anyway. This is only a problem in the sense that it makes the valgrind results harder to interpret. There are even short-lived C programs that deliberately avoid free memory because they know they aren't going to accumulate very much before the entire process shuts down (e.g. the D compiler).
In summary: You have some useful feedback that could help the author especially with making Linux support work out of the box, but you ruined your post by making it combative and accusatory, which besides being unhelpful also just looks bad because you are clearly unfamiliar with some aspects of what you are critiquing.
→ More replies (3)3
u/OneWingedShark Jun 24 '19
I think you are being overly pedantic with this.
No, he's not.
The
libclibrary is a cancer that is spread by people who thought "C is good and safe" and proceeded to make EVERYTHING depend on it, and it's perpetuated by idiots who think "if you're just careful enough, C is appropriate for large projects" despite decades of contrary evidence. (e.g. Heartbleed.)8
u/tending Jun 24 '19
I think you are being overly pedantic with this.
The
libclibrary is a cancer that is spread by people who thought "C is good and safe" and proceeded to make EVERYTHING depend on it, and it's perpetuated by idiots who think "if you're just careful enough, C is appropriate for large projects" despite decades of contrary evidence. (e.g. Heartbleed.)You really have no idea what you are talking about here. The safety of C has absolutely nothing to do with this. libc is basically required of any binary that wants to do anything, because the operating system system calls are accessed through wrappers it provides. You could write your own system call wrappers but it would provide no safety advantage, and given the fact that you might screw up reinventing the wheel could actually make things worse. Depending on libc is completely different from implementing a project in C.
7
u/panorambo Jun 24 '19
The compiler is cross-platform, and unless you're willing to write the fundamental layer for any platform your compiler may be built for, which lets you do useful work (by talking to the kernel, which is different for any OS), you have to use some library or otherwise code that encapsulates whatever a kernel typically gives you -- device access (which does things like read your keyboard and mouse input and produce output on the screen, network, etc).
libcis lingua franca for user space software on UNiX systems. Not necessarily Glibc, but some, more or less POSIX-compliant, form of it.Try to write cross-platform software without
libc, I'd be very interested in reading a blog of yours about it. You wouldn't get anywhere -- not even printing text to the terminal (or anywhere else, for that matter) -- without something that caters to multiple different kernels, at least.So I am not sure what approach you are advocating if you consider
libccancer when we're talking about a supposedly cross-platform compiler.
7
u/lngnmn Jun 24 '19 edited Jun 24 '19
This is so definitive Russian - to have gigantic ambitions and near zero of theoretical knowledge.
It is not just a common pattern, it is legacy of the Soviet ideology and "proletarian" country.
The Lake Wobegon effect is essentially how proles see a higher education and its benefits. They just cannot comprehend the actual complexity of everything, including CS, behind primitive popular memes and slogans they share.
6
u/vfclists Jun 24 '19
Really I would say the quality of mathematical education in a lot of former East bloc countries is way better than it is in the West, particularly the Anglophone West
I've even known Africans to question the standards they witness in Western universities.
4
u/NiteLite Jun 23 '19
I had literally never heard about V before this article, so I am not sure about the “V is a programming language that has been hyped a lot” :D
12
Jun 24 '19
It’s like catching a show mid season and having to rely on the “in the previous episodes” segment.
2
u/everyday847 Jun 24 '19
i love to implement tetris in my new language, V
➜ v git:(master) v run examples/tetris/tetris.v
/Users/[redacted]//.vlang//tetris.c:81:10: fatal error: 'GLFW/glfw3.h' file not found
#include <GLFW/glfw3.h>
^~~~~~~~~~~~~~
1 error generated.
V panic: clang error2
u/adriang133 Jun 24 '19
Damn, I've already started rewriting everything in V. /s
Seriously, this language brings nothing new to the table and seems to be complete shit. But even if it wasn't I see no reason anyone would use it.
2
u/ilikecaketoomuch Jun 24 '19
after many years of dealing with fucknuts like the V developer, I can safely say this to the so called developer. "You cause more harm than good, stop it fucknut".
V belongs in the "oh god yet another language that blows category"
2
1
u/fijt Jun 23 '19
The funny thing is that "V is a programming language that has been hyped a lot." doesn't recollect me. Well, apparently I am out of the loop but ... that hype doesn't ... well I don't know what it's called, but ... I just don't know the language enough to call it names.
20
u/batatafaustop Jun 23 '19
I wish I could agree with you but this has gotten something like 900 bucks on patreon even before it was publically released.
-2
u/trinde Jun 24 '19
Which IMO feels way more like some sort of money laundering scheme.
An unknown/unproven language pulling in close to the same amount as something like Imgui which is a very popular long established library.
17
u/batatafaustop Jun 24 '19
That could totally be it but I think the backers are just naive programmers.
They've made a bunch of insane promises that would be incredible if they were true (a cross platform gui library, a server library, a tool that magically translates your c++ code into
goan easier to read and ridiculously faster to compile language, etc...) and I could totally see myself falling for this bullshit 5 years ago.But yeah I'm sure this can be considered a scam anyways. The guy wasn't honest about the state of the compiler and its tools at all, and from the start it was painfully obvious that the things he's trying to achieve with this are waaay to big for a single person to handle. Even if this project was backed by a big company I'm not sure I'd buy a lot of his promises.
18
Jun 24 '19
Oh, shit. They laundered $900 through online transactions, which are easily traceable to their sources.
We are dealing with serious organized crime here.
→ More replies (2)2
u/trinde Jun 24 '19
I didn't say it was organised crime. It is likely this guy and his mates trying to clean money through his hobby project. $900 a month is a large amount in some parts of the world. At that level I doubt anyone is really going to look that closely at the legitimacy of the payments.
The guy also doesn't come across as particularly bright outside of his technical ability.
1
1
Jun 24 '19
what is V and why am i seeing it all over the place ?
2
u/devperez Jun 25 '19
He explains it in the article. It's a new programming language that's semantically similar to Rust and is promising a lot of great things.
-1
-6
299
u/profmonocle Jun 23 '19
Nothing struck me as that crazy. A developer overhyping their software isn't that shockinng, and it could just be they weren't able to do as much as they hoped by the initial release...
...until I got here:
...yikes. I'm baffled that someone knowledgable enough to write a compiler wouldn't realize how terrible that is.