19 ms·
The V Programming Language 0.4
- sylware 3y ago[flagged]
- 0xcoffee 3y agoChangelog: https://vlang.veery.cc/post/725/v-0.4-is-out https://vlang.veery.cc/post/725/v-0.4-is-out
- amedvednikov 3y ago370 items!
- manofmanysmiles 3y agoI am thrilled to see so much progress on V! I remember being excited about this language and seeing an immense amount of hatred, skepticism and doubt, and unfortunately being taken in by it. Is this hatred still present? Has anyone used the language extensively that can comment on its usability?
- darthrupert 3y agoThey overpromised, which is quite frowned upon in foss circles where there's usually no incentive to do that. Personally, I'm quite happy that any attempts to normalize a culture of lying gets a strong reaction.
- colejohnson66 3y agoThe response by the creator and others against the critics was also frowned upon. I'm interested in how this language will go, but those actions a year or so ago still leave a bad taste.
- sebastianconcpt 3y agoAnd yet, all that would be nothing but temporary noise if the resulting artifact that delivers gets made. I'm more of a dynamic tech guy but I see this language as something that needs to exist.
- amedvednikov 3y agoWhat response?
- pwdisswordfishc 3y agoTypical example: https://news.ycombinator.com/item?id=37293919 https://news.ycombinator.com/item?id=37293919
- amedvednikov 3y ago> If you've been dreaming about a language like this, give it a try. Spend 20 minutes on it, and form your opinion. > I'm sure you'll like it! And what's wrong with this comment?
- lifthrasiir 3y ago> There are no false or misleading claims, only in the articles from authors who say "V must die". I'd like you to elaborate on this instead. Were there many articles with explicit death threats?
- amedvednikov 3y agoYou consider the phrase "[lang] must die" a death threat? Only the author of the vaporware articles said that, AFAIK.
- lifthrasiir 3y agoIf that article hasn't been changed since the publication, the strongest statement is "as it stands I recommend against using it for anything" AFIAK, and it is far from saying "it must die". She even gave many suggestions for improvement, some of which are shared with mine. I think you are reading too much from those criticisms.
- manofmanysmiles 3y agoIn the last 15 minutes I’ve read a few blog posts and reddit threads and am saddened. It does seem there are many false or misleading claims, though there does appear to be steady progress, or at least the appearance of it. I hope the language or another like it eventually can fill this niche. I’ve been dreaming of a similar language myself..
- amedvednikov 3y agoDon't trust everything you read on reddit. There are no false or misleading claims, only in the articles from authors who say "V must die". Like complaining that V depends on OpenGl, Git, libc, and electricity! If you've been dreaming about a language like this, give it a try. Spend 20 minutes on it, and form your opinion. I'm sure you'll like it!
- bakul 3y agoIgnore all the pro/con noise. git clone its repo, compile it locally and play with it. Write some code. You’ll be pleasantly surprised (at least I was). Its progress is pretty good (few tests break now and then and once in a while the self-compile breaks and I have to run make). If you know Go, it is very easy to pick up but don’t expect it to be exactly like go and it has its own idioms. Note: I’m interested in V but not involved in V development.
- Tozen 3y agoA lot of the false accusations, spamming of negative links, and misinformation arguably comes from those with competing or hidden interests. It's a lot of language war antics, that got out of control. Various competing languages use reddit as a forum, because their language didn't previously have one or their developers didn't open up discussions on GitHub. Evangelists of competing languages can be allowed to bash, flame, or troll opposing languages on various subreddits. If they outnumber a rival language, in a place they often congregate and the mods will allow such behavior, then they can get away with typing the most outrageous or foul statements for points. It came become a bash and troll festival, and anyone that dares oppose, can get intentionally downvoted away or punished by their mods who have control. People that are casuals or don't know what's going on behind the scenes, may see only their side. There is often no balanced discussion. Any opposing view points to the false accusations, extreme negative positions, misinformation, or wrong statements may not be allowed to be seen.
- kubb 3y agoThey have cool vision, cool features, talented contributors, but bad PR, particularly around what stage the various features are at. A bunch of people attacked them based on that, calling out the inaccurate statements. The group included the creator of Odin, a competing language.
- RetroTechie 3y agoImho features are non-features until they work. As described. Reliably.
- kubb 3y agoI believe you that as a user you don't care, but for the community that implements the features, they exist in the imagination of the devs, design, planning and early implementation attempts for a long time before you can use them.
- oblio 3y agoYou're both right and wrong. Right in the sense that it can take a really long time to release a work in progress feature. Wrong that some of the claims made initially were phantasmagorical and also debunked very quickly. Also, vaporware is a a thing. I'm perfectly willing to stay by the claim that GNU Hurd will be useless to me until the day I die. For reference GNU Hurd has been in "dev, design, planning and early implementation attempts" for 33 years, and I imagine I'll live 50 more years (fingers crossed!).
- kubb 3y agoIt feels like an enthusiast project, where the developers didn't know some things are hard or impossible, and they claimed their language will solve them (or that it already solves them). Looks like they've learned something now :)
- kaba0 3y agoThere used to be claims that are literally impossible as per the whole field of CS, that were later silently removed. That’s not a good look.
- isaiahg 3y agoIt became one of those hate memes. A target of irrational fervor among anyone caught in between. If you ask those angered they pull out a list of petty grievances a mile long composed of misleading or highly interpretive wrongs. I haven’t had the pleasure to try out V yet but I hope this discussion can rise above. Endless bickering leaves a sour taste in my mouth.
- richbell 3y ago> If you ask those angered they pull out a list of petty grievances a mile long composed of misleading or highly interpretive wrongs. What, in your opinion, are legitimate reasons for someone to be upset with V?
- kbknapp 3y ago> If you ask those angered they pull out a list of petty grievances a mile long composed of misleading or highly interpretive wrongs. How can you assert that they're misleading or highly interpretive wrongs if you haven't dug into them yourself and actually used V? All the negative press I've seen on V has been highly detailed and reproducible.
- amedvednikov 3y ago[flagged]
- isaiahg 3y agoYou don’t need to have touch it to see. Just browse this thread. A big one mentioned is over promising, which is pretty interpretive for a language only on version 0.4 of its development cycle. Most other complaints are slight variations of this. Promising magic performance or magic features without a good explanation, is another variation. This would be well and good for a fully released language, which this is not. All that tells me is the creator is overly ambitious for their own good and possibly naive, which I hardly classify as a sin. Whenever this topic comes up I’m at a loss to understand why anyone would waste so much energy mud slinging over some personal language project. It only makes sense if it’s become a hate meme. My pocket word for an event that’s a sort of social singularity. It occurs when enough popular voices have directed the entirety of a community to shame a target based on some perceived wrong, real or otherwise. Wherever it comes up I’m pretty taken aback by how tribal and ego focused we can be, even among the smartest of us. And that thought isn’t meant be taken as condescending. After all, we’re only human. And for a larger span of human history, that word has meant “hairless ape” more than anything else.
- pityJuke 3y agoI'll always be skeptical of the claims. Much less of a trust but verify, but a "you have to verify every little thing" [1]. The analogy that came to my head is how Elon always says self-driving is coming right around the corner [2]. Sure, some progress is made towards it, and maybe it'll come true one day... but don't take any of the claims at face value. [1]: https://mawfig.github.io/2022/06/18/v-lang-in-2022.html https://mawfig.github.io/2022/06/18/v-lang-in-2022.html [2]: https://jalopnik.com/elon-musk-tesla-self-driving-cars-anniversary-autopilot-1850432357 https://jalopnik.com/elon-musk-tesla-self-driving-cars-anniv...
- amedvednikov 3y agoNone of the bugs in the first article are relevant today.
- pityJuke 3y agoAll I'll add is that whether or not that specific example holds up today matters little to the wider point: which is, that the language makes promises, and you need to verify each claim due to the repeated [0] ambiguity/inaccuracies about them. [0]: Across the span of the 2019-2022.
- delian66 3y agoIt is very easy to verify. Just have a working C compiler + git + make: git clone https://github.com/vlang/v cd v make ./v your_program.v On a modern machine with good network, it will take you under a minute, to have your own copy of latest V, and less than 200MB, including the .git/ folders. You can also download .zip releases from https://github.com/vlang/v/releases https://github.com/vlang/v/releases , without needing git. The .zips there are <15MB, and contain a prebuilt V executable, so you do not even need make to use it.
- bakul 3y agoYou should always verify every little thing for any new language you’re thinking of using, if only to understand its behavior in details, warts and all. I did the same when I first learned C, C++, Go etc. etc. But one must separate (what I consider) marketing fluff from reality. Evaluate for yourself whether the new language is worth learning, whether its development is going in the direction you can mostly agree with, whether it has promise, whether it is developing an ecosystem etc.
- ceronman 3y agoI'm not sure if "hatred" is the correct word here. Yes, there has been a ton of skepticism and doubt about V here in HN, but this is very different from hatred. In my opinion, skepticism is not only okay, but desirable in a community like HN. Skepticism is also a core principle in science. Skepticism can be respectful and encouraging. I count myself among the skeptics of V. Mostly because in the initial communications about it, some of the claims were hard to believe. For example, they used to claim that V was memory safe without GC, but also without borrow checker, and it was never explained how they achieved such thing. Now I see that they claim that the language is very similar to Go, so I assume that they went with a GC. That's really cool, I actually think that GCs are a massive boon for language ergonomics. But there remain some unexplained topics, for example, how is that they achieve being "free of data races" [1]. It's nice to see a new language in the area and I hope the language succeed. But I'll continue to be skeptical until I see proper explanation of some of their claims. [1] https://vlang.io/compare#go https://vlang.io/compare#go
- oblio 3y agoHatred? There were solid arguments that the thing was a scam, at least big parts of it. Maybe "scam" is a harsh claim, but "outrageous and frequently false claims made by devs lacking solid credentials to match them". And there were several comments and articles debunking these claims.
- kbknapp 3y agoI think the reason the word "scam" became attached is because those outrageous and frequent claims were attached to receiving large sums of money.
- oblio 3y agoI actually forgot about that, what did they do? Ask for Patreon contributions?
- kbknapp 3y agoIt was a combination between Patreon and Github Sponsors for solo the lead developer at the time making several thousand USD per month. Those campaigns are still ongoing AFAIK, but the contribution amounts are now private.
- amedvednikov 3y ago[flagged]
- ta20230828 3y ago> To quote the HN mod: the language is fine, and there's no need in these flame wars Really? In trying to counter claims about V misrepresenting things, you ... misrepresent what dang said? Hint: "I'm sure your language is fine" in no way implies that dang said "the language is fine".
- 3y ago
- amedvednikov 3y ago[flagged]
- richbell 3y agoFor context, this is the lead developer of V. https://news.ycombinator.com/item?id=31061295 https://news.ycombinator.com/item?id=31061295
- ModernMech 3y agoDang said this to you to placate you and to stop you from stoking a flame war, which is what's happening again. He wasn't endorsing your project. He was saying there is no need for a flame war not because your language is fine, but because flame wars are not fine on HN.
- riku_iki 3y agoI think lang author is asking to not start flame wars, but there are bunch of people (you included) attacking him first in this topic, and he can't respond?
- ModernMech 3y agoHe can't respond if he doesn't want to engage in a flame war. I'm a dog on the internet, he's the dev of a project he's pushing that is trying and failing to build a reputation as someone trustworthy.
- riku_iki 3y agoor he just became a target of some salty internet mob which is now following him everywhere, and many other people(me included) actually find his work interesting.
- ModernMech 3y agoYou're free to find his work interesting. Others are free to find his continual prevaricating shady.
- xvilka 3y agoDoes it still use TCC (TinyCC) under the hood?
- keyle 3y agoYes.
- delian66 3y agoBy default it does use tcc on most platforms, because tcc is awesome for quickly compiling C, and so iteration while prototyping with it is usually much more enjoyable than with gcc, clang or msvc. You can pass `-cc gcc` to use another C compiler for example, instead of tcc. There is also a native backend, that generates executables directly, without generating C, then using a C compiler to compile it. You can use `-b native` to try it, instead of the more developed C backend. Note that the native backend, is still work in progress though and it does not support some language constructs.
- bakul 3y agoThis is the default but can be changed. I use clang on FreeBSD as a few tests break under tcc.
- LorenDB 3y agoI'm a tiny bit worried by the way they are pushing development of so many products not directly related to core language development (a GitHub clone! A kernel!) and not focusing on creating a proper compiler. Maybe they are fine with leaving V as a transpired language indefinitely, but I think that developing this extra stuff is not going to persuade users to switch to V. With that being said, it's quite possible that the core maintainers aren't touching the extra fun stuff and are still focusing on language development. Maybe someday I should try learning V again. I was going to learn it over the summer of 2020 to expand my repertoire beyond C++, but I gave up fairly quickly and ended up learning Qt instead, which has proved to be a very wise choice - knowing Qt why I have my current job (for multiple reasons).
- capableweb 3y agoIf you develop a language without any actual projects using the language, how would you know what to actually make the language do? Seems to me they're trying to dog food the project which makes sense to me.
- Conscat 3y agoInterestingly, V is named after the chat client Volt, which V was originally invented specifically to develop.
- colesantiago 3y ago> I'm a tiny bit worried by the way they are pushing development of so many products not directly related to core language development (a GitHub clone! A kernel!) and not focusing on creating a proper compiler. So showcasing what the language and compiler can do is a bad thing?
- LorenDB 3y agoNot at all. I just am worried for them that they are going to get wrapped up in complex projects like Vinix and end up putting too much time into a project that few people are actually going to benefit from. A basic text editor (which I think they also have implemented) is going to be a much more practical way to demo your language without dumping lots of time into a complex task.
- FrustratedMonky 3y agoGoing through their docs, I'm having hard time identifying the 'silver bullet' that makes this all possible. This is m first time seeing this language 'V'. So no pre-baggage. The splash page is making extraordinary claims. But a lot of languages have the same features, but not the big claims like size and speed. So what is this group doing different that couldn't be done in Rust or Go or dozen others. Do we need another language? Or if there is just 'one simple trick', then just update the others. If it is 80% GO, then why wouldn't the GO team just incorporate this 'whatever it is'. or- Can someone explain it to me like i'm 5 what is the big idea under the hood here.
- mapcars 3y agoWe need new languages and ideas to keep developing, obviously if someone is willing to put a lots of time and effort they found existing ones lack in something. Even if the difference is only 20%. Talking specifically about Go, how much time did it take for Go team to acknowledge and make some workarounds to support generics? And this is not a new concept it exists for more than 30 years. I can not imaging Go actually developing and incorporating new things, it is a simple and "completed" language.
- kaba0 3y agoSo what are the new ideas around V? It literally does the same thing as Go, and as you correctly recognize, Go was already thoroughly uninteresting when it came out from a PL perspective, the only remotely interesting part is its goroutines (though not even that is unique). V doesn’t even have that, so there are like 10 languages just like that with slightly different syntax.
- amedvednikov 3y agoIt improves on Go a lot: https://vlang.io/compare#go https://vlang.io/compare#go
- deleted 3y ago[deleted]
- cp9 3y ago[flagged]
- amedvednikov 3y ago[flagged]
- pwdisswordfishc 3y ago[flagged]
- deleted 3y ago[deleted]
- bakul 3y agoI like many things about the language but haven’t yet written a significant amount of code in it to properly evaluate it. V feels a lot like Go. Plus a language that can replace C/C++ for bare metal programming.
- forgotpwd16 3y agoWhat's the status of autofree engine becoming the default? It's perhaps the most discussed feature of the language. Last year it was mentioned the GC it's temporary until autofree engine is production ready.
- diimdeep 3y agoIt is really striking, the difference in *everything* between some beta quality programming language projects and approaches of people behind them. - Effort applied; To be tailored for certain kinds of projects; Solve problems in existing languages; Approaches to prevent/force adoption of beta quality project; Philosophical approaches behind project or lack thereof. Now on the personal, subjective note, the more I look, the more I want to avoid V and get my hands on Jai [1][2] [1] https://github.com/Jai-Community/Jai-Community-Library/wiki/Overview https://github.com/Jai-Community/Jai-Community-Library/wiki/... [2] https://github.com/Jai-Community/Jai-Community-Library/wiki/Philosophy-of-Jai https://github.com/Jai-Community/Jai-Community-Library/wiki/...
- Tozen 3y agoWhat you want to use or avoid, is not necessarily what others want or avoid, and we should respect each others different preferences.
- vlabs 3y ago[flagged]
- amedvednikov 3y agoSum types, json, http, networking, ORM, GC are all stable now. They probably weren't when you worked with them.
- dw-im-here 3y agoHoly shit someone _paid_ you to write V!?? Incredible!
- Tozen 3y ago[flagged]
- richbell 3y ago> The story comes across as very strange, to say the least. But a point that should not be missed, and why I made this post, is the reasons behind what is being attempted by telling such stories and painting such a narrative. > It's indicative of what the V language has been facing, and the hidden assault on it's public image (as part of an ongoing language war) that many casuals don't realize is going on. You have made numerous comments in this thread dismissing any criticism of V as coordinated effort from jealous competitors. Again, what _proof_ do you have of this "language war"? How is a single comment indicative of a "hidden assault"? https://news.ycombinator.com/item?id=37300467 https://news.ycombinator.com/item?id=37300467
- Tozen 3y agoOn June 20th of 2019, and prior to the open-source release of V on June 22nd of 2019, the creators of competing languages, and various supporters of theirs made very disparaging remarks against V and it's creator[1]. V was falsely characterized and accused of being a "scam", "vaporware", or "fraud" that really didn't exist or its source would not be released to the public. To include, V's creator was allowed to be heavily and repeatedly insulted on the thread. The creator of one of the languages made a direct plea to not give money to the V project, and instead give that money to himself and another creator[1]. Which, was way beyond the usual lines of civility. This was later added to, with the other creator (back in 2019) making a somewhat similar plea for people to give him their money instead while doing harsh attacks on V, from his website[2]. Surrounding that, was angry talk over how much monetary support V was getting[1]. "He's up to 56% of the income I make on Patreon..., and I've been busting my ass for years..."[1]. This can be viewed as jealousy over the amount another developer was getting, so early on. Such behavior by language creators, against another, is clearly and extremely irregular. While both creators later on kind of walked backed their earlier statements and attempted to remove themselves from heightened drama and initiating a language war, it was arguably way too late. The statements were walked back a bit, because they were in error. V's creator made an early release for his Patreon supporters, which he has the right to, that was taken out of context. Furthermore, he did release the source for V, 2 days later and in June (as was promised). Despite this, the goal posts were moved, to continually find anything else to attack V on (from when it was an alpha) as a newer competing language. Over the years, the drama has persisted. To include HN accounts dedicated for the purpose of attacking or insulting V (to include sleeper or newly created accounts), in the frame of an overall wider effort spanning years and various different websites. From time to time, the opposition against V, has also mistakenly or nonchalantly identified themselves as such (can be seen through search). Casual readers on HN or other websites, often don't know of the motives behind unnecessary or odd vitriol, so this can be "hidden" to them. Lastly, the V language has every right to exist and flourish, as those other languages. V has numerous developers, contributors, and supporters who make it continually better. [1] https://news.ycombinator.com/item?id=20229632 https://news.ycombinator.com/item?id=20229632 [2] https://andrewkelley.me/post/why-donating-to-musl-libc-project.html https://andrewkelley.me/post/why-donating-to-musl-libc-proje...
- pkphilip 3y agoWhat I find interesting is the cross platform UI from V which also compiles for Android: https://github.com/vlang/ui https://github.com/vlang/ui It does seem to be still in its very early stages but if they are able to make this a more mature library, it may actually be quite useful for tiny, fast apps.
- Tozen 3y agoIt can be done. There is already a specific module/project for the purpose, called VAB[1]. [1]https://github.com/vlang/vab#readme https://github.com/vlang/vab#readme
- lifthrasiir 3y agoIt has been over 4 years since I've commented on the V language proper. I still think Alex need to greatly improve his public relation skills, but otherwise the only thing matter is that the language is still alive after years. It took way longer than the original claim (which again is a PR issue) but it is now a language that has advertised features and may fill some niche. I'd like to applaud the perseverance. I don't know about a long-term plan, but it seems that V will now need one if there isn't already one. Many languages start out fresh and either die out (metaphorically) or get crushed on their own features. Planning seems to be necessary to avoid either fates, and yet is not sufficient to guarantee survival. I personally witnessed this from D firsthand back when a stdlib divide was threatening its future, and believe every successful language author need to answer this question (for example, Rust would say the coevolution with Servo was massively beneficial). So Alex---or other core developers if any---, do you have any thoughts on this?
- amedvednikov 3y agoThanks, glad you have such an opinion now. We don't plan to die. There's no language that ticks all V's checkboxes: - simple - fast to compile - C/C++ perf - fits all domains - flexible memory management (gc, manual, autofree in the future, arena) - batteries included - readability and development speed of python, C perf etc
- bw86 3y agoWhat about Nim? That seems to be very close.
- lifthrasiir 3y agoThat still sounds like mission statements. Many enough languages have similar missions and their plans to achieve them would vary a lot. I'll assume you are still figuring them out then, and share my humble opinions. "Simple"---and yet usable---is very hard to define and achieve. If the language has to fit all domains, it seems that the best approach is to identify versatile, multi-use features (better explained by Guy Steele's Growing a Language talk). And such features are relatively uncommon! So most languages tend to have many features only for specific uses and pray that they don't clash with other features, i.e. ditching the simplicity. It is not really impossible, but I'd rather have it as a guiding principle other than a mission. "Fast to compile" is good to have, but I hope you to use it just as a guide as well. The critical threshold is the apparent interactivity (about 100 ms), and anything faster than that is not worthwhile as is. Slow languages can also create an illusion of interactivity with many efforts (e.g. incremental compilation), so you would rather want to identify and avoid the global cause of latency. For example header files have a large impact on C/C++'s compilation speed, even when everything is cached and using loglinear algorithms or faster. I think V got a general idea right, so don't be too fixated about concrete numbers. "C/C++ perf" needs more quantification. First of all, many C/C++ programs are actually slow for many reasons. It is just that many performance-sensitive programs were also written in C/C++. Many other languages tend to use other related statements like "no language runtimes", "no hidden control flows" or "no allocations". Not very satisfactory, but still better because they imply actual actions. And please be aware that this goal is in general directly contradictory to the simplicity, another reason to ditch it... "Fits all domains" is what I'm most unsure about. I believe attempts to write everything in V are related, but they won't ever be sufficient (let's talk about writing a proof-certified mathematical routine :-). Many languages provide the extensibility as a primary solution, but it is not enough---I mean, unless you think PyTorch tracing CPython bytecode and producing a fused CUDA kernel as extensibility. Many domains do share common requirements in terms of programming, so multi-paradigmatic approaches would scale better... unless new programming paradigm can be hard to retrofit to the existing language. (Lisp doesn't count because it generates a family of languages.) As a concrete goal, I think you should instead pick a small number of distinct domains and advertise as "fits many domains" instead. "Flexible memory management" is probably the easiest to achieve. Existing languages are surprisingly hard to mix and match multiple memory management schemes primarily because they didn't start with multiple schemes after all. (I believe a GC extension of Rust will be extremely valuable in this regard.) This is something V can directly provide now, keep pursuing it. "Batteries included" is a cross-cutting concern that touches on almost all other missions except for performance. While this has been one of Python's mottos, it is evident that Python's "batteries" are now too old. Thankfully this issue is also relatively well-understood: you need a good package manager and standard libraries should also use that machinary. Many consider Cargo as the model solution, though not every aspect is appreciated (e.g. single identifier namespace, YMMV). Ironically though Rust itself didn't have Cargo at the beginning, so its standard library situation is not actually ideal. But at least you have a good example to agree or disagree with. "Readability and development speed of python" is half the anti-simplicity and half the tooling concern. Readability is as subjective as simplicity and development speed has two factors (global and local), where global factor is more about the modularity problem, so let's consider the tooling, the local factor. Tooling is something people like to have and no one likes to appreciate at the same time. It is one of the most labor-intensive tasks in PL and, while you can prepare for them in advance, the actual work needs to be done one by one until approaches like JetBrain MPS become much more viable. It can however happen completely independently from the language development itself as well, so I believe it's of less concern. The last thing I want to say is that, it's fine to miss all those checkboxes! Many languages are mediocre in all aspects and yet still useful and popular. Some languages even develop a completely unexpected niche out of nothing, like JavaScript and Python. You may still want to retain some good characteristics (which by itself would be an impressive achievement), but you can't know in advance whether they were worthwhile or not. So checkboxes are not as important as they seem---the perseverence to keep them in sight is more important.