28 ms·
V Language Review
- ushakov 4y agoTLDR > At this time, I would not recommend spending time on V. I would also be very cautious when taking claims made by the authors at face value.
- smcl 4y agoChristine Dodrill's early assessment of the language might be of interest here: https://xeiaso.net/blog/v-vaporware-2019-06-23 https://xeiaso.net/blog/v-vaporware-2019-06-23 She doesn't pull any punches, but I think she was quite prescient in capturing the vibe of the project.
- Seirdy 4y agoXe is phasing out that name in favor of "Xe". Xer domain name change was a part of that shift.
- smcl 4y agoAh I'm sorry, I hadn't checked the website in a little while. I now see there's a redirect and that there is a different name in use.
- umvi 4y agoIs 'Xe' the name or the preferred pronoun of the person in question? Is this like Latinx but race neutral? Gender identity accommodations seem to get more complex and confusing by the month...
- andsoitis 4y agoName, at least that's my interpretation from looking at her Contact Me page: > Copyright 2012-2022 Xe Iaso (Christine Dodrill). https://xeiaso.net/contact https://xeiaso.net/contact [correction] on their GitHub page I see: Please call me (order of preference): Xe/xer, They/them or She/her please. [edit] obscure to have your pronoun also be your name (or maybe your title?). Or maybe it is all just satire, given: "I am an ordained minister with the Church of the Latter-day Dude. This allows me to officiate religious ceremonies in at least the United States." - https://dudeism.com https://dudeism.com
- xena 4y agoTo be honest having a person's name be the same as their nominative case pronoun is kind of cool from a whole different perspective than you normally get to see. By doing this experiment I get to see how bad of an idea it is to do that. So far the xe/xer pronouns don't seem to stick as well, but it looks cool so I'm gonna keep up the experiment. I'm also quite seriously an ordained minister.
- deleted 4y ago[deleted]
- andsoitis 4y ago:-)
- shakow 4y ago> To be honest having a person's name be the same as their nominative case pronoun is kind of cool The whole point of a person's name is to sufficiently differentiate them from the other persons. Using pronoun as name (or vice versa) just totally negates this goal.
- rvz 4y agoWho gives. Just use 'they' or 'them', or whatever. It is a universal catch all, gender neutral, i18n inclusivity conformant, ISO 69420 compliant, race neutral, etc. At this point, all of it is basically designed to further confuse and only create a very monthly chaotic outcome for everyone.
- spottyn 4y ago
- escape_goat 4y agoXe has been in use as a gender neutral pronoun for nearly thirty years. I, a startlingly ordinary person, was familiar with it as early as the late 90s.
- deleted 4y ago[deleted]
- xena 4y agoWhy not both?
- mawfig 4y agoThanks for linking Xe's blog here! It's a few years old and I've seen a lot of comments on HN that suggest V has improved significantly since 2019 so I thought it might be worth looking into for myself and writing down a review of what I found.
- Tozen 4y ago
- mawfig 4y agoEvery evaluation in my blog is fully reproducible from the version of V I linked to and I've included all the source code used as well. My post stands on it's own. Instead of insinuating I'm some kind of competitor or have a personal agenda, I would encourage you to respond to the actual points raised in my post.
- Tozen 4y agoThat's interesting or telling, because if you read what I posted carefully, I was not insinuating anything about your evaluation. Instead, the point was being made that you probably don't want to be associated with an old evaluation from 3 years ago, which is falsely accusing V of being vaporware, and where the author and the developer of V clearly have beefs with each other.
- xena 4y agoGood news: I'm never going to write about V again: https://xeiaso.net/blog/against-toxicity-programming-languages https://xeiaso.net/blog/against-toxicity-programming-languag...
- Ta2000 4y agoWell if you really felt that way I think you'd take any toxic programming articles down. They are etched into your GitHub at this point, so people will still reference them if eager... But at least taking that action of pulling such posts off your website will speak volumes about your character and standing by your words. Otherwise it's just more lip-service; not much different than Alex's lip-service you draw attention to.
- Tozen 4y agoWhy in the world do competitors of this programming language insist on dragging out evaluations from 3 years ago, which state that V is vaporware and before the language was even released? This is 2022, not 2019, and we are talking a hundred releases later (https://github.com/vlang/v/releases https://github.com/vlang/v/releases). At least stick to the current evaluation (or attack), which is more relevant, and make points from there. But, keep in mind that these attacks are on a young language that isn't 1.0 yet, so even with this we are talking about a moving target. The language is still evolving.
- faitswulff 4y agoI don't have a horse in this race, but when a language makes present-tense claims about its features I assume that they're already functioning features. People are poking holes in V because its claims are unfounded, not because they've decided they're in competition with the language. A simple "work in progress" sign on the features in question would draw a lot of fire away from the language and its creator.
- mawfig 4y agoIndeed! I even mentioned this in my "Rules of engagement" section: > Features indicated to be incomplete/work in progress/unimplemented will be mentioned as such. Indicating on the vlang.io homepage how much of the language has yet to be realized would go a long way in my opinion.
- AndyKelley 4y agoAfter I criticized the project for collecting donations on deceitful information, the author put purple "WIP" labels next to a bunch of stuff [1] which led me to make this statement [2]. However, it looks like medvednikov has since removed the "WIP" labels. [1]: https://web.archive.org/web/20190624052507/https://vlang.io/ https://web.archive.org/web/20190624052507/https://vlang.io/ [2]: https://twitter.com/andy_kelley/status/1142503808901308418 https://twitter.com/andy_kelley/status/1142503808901308418
- sergiotapia 4y agoNah that article is old as hell - time for new information. Things change. I also despise how many people want to shit on this new language before it even takes off. Why are so many people frothing at the chance to disparage this language and it's author? Never seen something like this.
- kizer 4y agoIt's been around for a few years now.
- Tozen 4y ago
- ylluminate 4y ago100% right. It's sick. As a donor and supporter of this VALIANT AND VALID effort, I applaud the V community. It's full of sincere passion, love and is putting forth a great effort to realize something useful and needed in this sector.
- super_flanker 4y agoSo you think it's okay to lie and mislead people? You're going round the comments and telling everybody how wrong they are. Do you have any thing to say about concerns raised in the blog post? Or would you say that it's a lie and all the points raised are based on falsehood?
- deleted 4y ago[deleted]
- pwdisswordfish9 4y agoAt this point, why do people even spend time on debunking the marketing claims of this language at all? It's been done to death, whoever was going to be convinced the V developer is a charlatan has already been convinced. For better or for worse.
- judge2020 4y agoI think everyone wants a "Rust but better" language to exist, and that very well might be V in 5 years, but Rust wasn't advertising features as 'completed' years before they were implemented/stable and neither should V. Continuing to point out the design issues will either get the marketing claims removed (just throw up a roadmap!) or articles like this will be used to show V's progress in a distant future.
- agumonkey 4y agoI wouldn't bet a single dollar on V improving to any qualitative level. It's been a surprisingly large transpiling hack. Graydon Hoare had some PLT knowledge before going on doing Rust, it's not just feature names and potential impl.
- Eigen7 4y ago
- avgcorrection 4y ago
- HL33tibCe7 4y agoPeople like to dunk on V because of its author and community, but I will say that the design of the language itself (leaving aside the implementation) is genuinely interesting. To me, it feels like what Go should have been. And I like Go. So obviously I have a bit of a soft spot for V. Disclaimer: I’ve never actually used it.
- mawfig 4y agoI'm sorry if you feel this is a dunk on V. Having seen quite a bit of discussion both on hacker news and other places saying that V has improved significantly since Xe's articles a few years ago, I thought it would be worth while to attempt a modern evaluation of the language based on where it is today. Throughout, I tried to ground my review by basing it on the claims the developers themselves make. Would you mind expanding on your later comment? While I'm not a Go programmer, it's pretty easy for me to see why it has the features it has based on their commitment to fast compile times and being easy to learn. V on the other hand feels like an incoherent list of the biggest buzzwords in the industry right now with no clear overall design.
- HL33tibCe7 4y agoSorry, I didn’t mean to suggest that this article itself was a dunk. I was commenting on the discussion I see elsewhere on the language (including elsewhere in this comments section). The article itself is a good summary of the problems with V — mostly with its implementation which does appear shoddy. V’s design address many things I feel are lacking whenever I use Go: nil safety, sum types, option/result types, mandatory error checking. I think V is best understood in the context of being Go++. Having looked a bit deeper though, the immutability and generics stuff does feel a bit bolted on, so I do see your point.
- Rochus 4y ago> I thought it would be worth while to attempt a modern evaluation of the language based on where it is today A good idea indeed, thanks for the effort. Although I'm quite surprised why V has gained so much attention.
- 4y ago
- ohgodplsno 4y agoWell this is sure to be a reasonable thread with reasonable arguments coming from both sides. Surely the usual patterns of any vlang criticism won't pop out again. Unfortunately, Vlang isn't a project out of an overeager young dev (not anymore at least), but at the same time, it hurts no-one. Sure, the author is making 1k a month out of it, but it's not like it's the scam of the century making him rich. I see startups on HN lying harder than that every week. Just let the dude make his stuff on his side, have a good laugh when articles like this come out, and that's it. Look at legitimate alternatives like Zig or Odin, and keep V as a fun little distraction when you want to see what overpromising looks like
- jitl 4y agoMy recommendation is that if you like the look of V, you should consider Zig or Odin as well. Personally, Zig seems like the most promising C-but-modern language due to the interesting compile-time programming features and impressive investment in toolchain infrastructure.
- iamsahebgiri 4y agoWhere does language like Vala stand? Is it worth checking out?
- jitl 4y agoI think of Vala as the “Swift of Gnome”. As in, a nice language primarily useful for programming in the World Of Gnome, like Swift is a nice language for programming in the World of Apple. I don’t use Gnome, so I’m not interested in their Swift. ¯\_(ツ)_/¯
- nicoburns 4y agoSimilar to a language like D. Technically quite good, but not quite compelling enough that it has picked up momentum that is likely to push it into the mainstream and generate a large library ecosystem.
- masklinn 4y agoDo you mean Vale? Vala (the gnome langage) is in an unrelated category.
- dsego 4y agoVala hasn't really caught on outside of the GTK world, since it's based on the glib object system.
- ylluminate 4y agoVala seemed interesting to me quite a while ago, but V ticks the right boxes.
- andi999 4y agoAn article like the V one on Zig checking the claims would be awesome, wouldnt it.?
- whiterock 4y agoIt would be very nice if you could do the same thing for Nim.
- mawfig 4y agoNim and Zig are both pretty interesting to me as up-and-coming languages so I do have them on a short list of things to try. This post took about a month of effort in my spare time to write so I don't think I will get to those anytime soon.
- Rochus 4y ago> Nim and Zig are both pretty interesting to me as up-and-coming languages so I do have them on a short list of things to try. Then I take the liberty of doing some promotion for Oberon+ here too.
- DeltaMetro 4y agoI had a look at the Oberon+ language definition and noted that one of the most annoying Oberon shortcomings (as compared to Modula-3) still remain: ...from the point of definition to the end of the scope... Oberon+ should have a look at Active Oberon 2019, not for its "active" aspect, but for its syntactical and semantic improvements, like the correction of the above problem.
- Rochus 4y ago> ...from the point of definition to the end of the scope.. Not sure what you mean. Is it about the fact that all variables are declared in the header of the procedure, i.e. not somewhere in the body as e.g. in C# or Java? This is actually the same with Active Oberon and Modula-3. In case you mean that the order of declarations is relevant, Oberon+ assumes at least a two pass parser by design; a declaration sequence can contain more than one CONST, TYPE and VAR section in arbitrary order, interleaved with procedures, and the order of declaration is not relevant; see e.g. https://github.com/oberon-lang/specification/blob/master/The_Programming_Language_Oberon%2B.adoc#4-declarations-and-scope-rules https://github.com/oberon-lang/specification/blob/master/The... and https://oberon-lang.github.io/2021/07/16/comparing-oberon+-with-oberon-2-and-07.html https://oberon-lang.github.io/2021/07/16/comparing-oberon+-w...
- deleted 4y ago[deleted]
- slimygrapes 4y agoThe criticism re: purity is silly. It can still be useful to design a language that is “mostly pure” because you’re mostly not trying to fuck your self over. For example OCaml is “mostly pure” and it’s tremendously beneficial in terms of writing correct software, regardless of the IO escape hatch or the ‘a ref explicit mutability etc. (I don’t care for V one way or the other though, and most of the results in the post are clearly bad, I just find this particular point to be absurd).
- mawfig 4y agoTo be clear, there's nothing wrong with impure programming languages. I use them every single day. My complaint is that V claims to be pure and is actually impure. To my knowledge, OCaml makes no claim to functional purity.
- Tozen 4y ago"ML-derived languages like OCaml are "mostly pure". They allow side-effects through things like references and arrays, but by and large most of the code you'll write will be pure functional because they encourage this thinking. Haskell, another functional language, is pure functional. OCaml is therefore more practical because writing impure functions is sometimes useful." https://ocaml.org/docs/functional-programming https://ocaml.org/docs/functional-programming > My complaint is that V claims to be pure... "V is not a purely functional language however." (from V documentation) https://github.com/vlang/v/blob/master/doc/docs.md#pure-functions-by-default https://github.com/vlang/v/blob/master/doc/docs.md#pure-func...
- mawfig 4y ago"A pure function is one without any side-effects." https://ocaml.org/docs/functional-programming https://ocaml.org/docs/functional-programming "V functions are pure by default, meaning that their return values are a function of their arguments only, and their evaluation has no side effects (besides I/O)." https://github.com/vlang/v/blob/master/doc/docs.md#pure-functions-by-default https://github.com/vlang/v/blob/master/doc/docs.md#pure-func... It sure sounds to me like V is trying to claim that functions can be pure while still performing I/O.
- longrod 4y agoI never understood the motivations behind V. It's clearly not a hobby project started out by a developer who is genuinely experimenting with PLs and want to put out something unique. It feels more like a stunt or a flair to either extort money or become famous. All that would be perfectly okay if V did what it claims to do but the author fanatically makes exciting claims but implements only fluff to hide the underlying broken machinery. I tried V when it first got popular (about 3 years ago). I am no expert on languages but the way it was ductaped (AST-less compiler for "performance", a "graphic library" when even basic things don't work etc etc) made me eventually lose interest. 3 years later V is still mostly where I left it. If the V author focused on the stabilizing the compiler instead of starting off shoot projects like vui, vdb etc. it might actually work.
- yjftsjthsd-h 4y ago> It's clearly not a hobby project started out by a developer who is genuinely experimenting with PLs and want to put out something unique. It feels more like a stunt or a flair to either extort money or become famous. Is that obvious? Yes, if I put on my cynical hat it pattern matches a money-grab or some other sort of fraud, but if I put on my charitable-interpretation hat V also perfectly pattern matches my idea of "solo developer wants to create the perfect language and goes after it with fresh eyes and a lot of enthusiasm (and yes, does get slowed down when it comes to fleshing out every little detail correctly and fully)". How do you distinguish?
- 411111111111111 4y agoYeah, a lot of projects that fall through aren't actually made by scam artists or people trying to make a quick buck. I'd wager most of these are just by overly ambitious people that massively underestimate the challenge of getting there. It's especially prevalent in indie gaming and large Kickstarters. Some are actually scams, but a lot are just entirely out of their depth and realize this too late/only when their deadlines come due. And yet there are content creators which just make video after video just shitting on these people. Quiet sad all around. (Though that link from the sister comment does make it look quiet bad in this case. Projects that just make great sounding claims about the current state of the project, even though none of it is true can't be taken seriously in my opinion.)
- metadat 4y agoQuick glance says: This is like the perfect blend of Go and C. I love it.
- ylluminate 4y agoIt is an awesome language. It's the first language I'm feeling will be able to pull me from Ruby once some things get ironed out.
- turminal 4y agoExcept that unlike C and Go it doesn't work.
- metadat 4y agoYes, that's the sad part.
- amedvednikov 4y agoWhat makes you think it doesn't work? An article that listed a couple of type checker bugs?
- ivraatiems 4y agoAm I wrong/naïve in thinking that a number of things mentioned here (no null pointer references, better bounds checking, immutability, pure functions by default) would be relatively easy to implement at least simple versions of in a language that compiles to C? For example, the null pointer reference the author demonstrates would not be at all difficult to identify at compile time, it's literally just checking whether any structs are created with pointer properties initialized to 0. Checking for null pointers in all circumstances is much harder, but this particular example is easy. Why claim V supports this when it doesn't? Am I missing something about how hard it'd be to implement?
- woodruffw 4y agoYou're not wrong. For the most part, these would be relatively easy to implement. Pure functions are the hardest of the ones you've identified -- they're nominally easy if you have perfect purity information, but pretty difficult (impossible, in the general case) if you don't or if your definition of "pure" is just plain incorrect (like V's is).
- crazywulf 4y agoI do not understand the hatred, reminds me of the last article of this kind. This language is in alpha. I've been in the Discord community since 2020 and no one would think of recommending the language for production use because it's WIP. Sure the goals are high and a lot of things don't work yet or are shaky but that's the way it is ATM. The wording of the article is simply not appropriate for the fact that the language is not even published. The community is small, active and also very friendly. I had a very good experience with Vlang in 2020 when I used it for Advent of Code and actually always got help when I got stuck with some bug.
- akpa1 4y agoI'd be curious to see your AoC solutions in V, if you have them kicking around?
- crazywulf 4y ago[dead]
- deleted 4y ago[deleted]
- pxeger1 4y agoI don't think this article contains any hatred. There is absolutely nothing wrong with an unfinished language - take a look at https://news.ycombinator.com/item?id=31775216 https://news.ycombinator.com/item?id=31775216 (2 days ago) for an example. This article criticises V for presenting itself as a usable language, when it definitely isn't, with all these features which don't work.
- crazywulf 4y agoI don't think it is fair to criticize the language like that without having "0.2 ALPHA" in the title of the ycombinator title and the article. In fact the hole article does not contain the word "alpha" or explaining the state once. It reads like that the language is expected to be ready and that all features need to work now, but they don't. "At this time, I would not recommend spending time on V. I would also be very cautious when taking claims made by the authors at face value." Also this point. Why does he recommend people to avoid the language. These people need contributors which help them to improve their language. It is open source. Maybe it is because I'm not native, maybe you are right. I'm also curious if the author even tried to interact with the community/developers to get his examples to work. I'm not that good of a developer to rate the things he is claiming, so I don't know. Hopefully he created some bugs on github so the developers have at least the chance to fix the issues he is talking about.
- rawoke083600 4y agoI don't have a horse in this race, but ive always enjoyed playing with new languages from all paradigms. My goto "test" is doing a simple webscraper and put results in a db. The above is important and where I(your milage may vary allllot) think many fail or fail to some degree: Its 2022 your new lang should have above excellent support for: 1) Multicore:(async, csp, threads) I dont care which just that it should be excellent and not some added library 2) We live in a inter-connected work: Thus I require your language to have above excellent support for things like: Http, websockets, json, encryption, auth,dbs etc. 3) Really bring something new or make coding in an alternative a pain. (stupid example: going back to posix threads in c, after coding i. go with channels) 4) Ecosystem:Hit the ground running, dammit if i spend 20 minutes getting a hello world with an external library up its too much ! Looking at you Python having to weave magic spells to get the correct versions and environment just so" is a absolute pain. 5) Pattern matching, immutability, functional, typing: Yea this is where people get very passionate* :) You probably have to include atleast one the above. That being said my hat and github stars go out to all pl designers ! You at least took a shot and shipped something ! Bloody well done to you all ! Also if you looking to tinker look at janet and joy(web framework based on janet) PS: Ive tried v in the past and it really was too bad(no program in production yet) PS2: My dream lang would be lisp-like(more clojure than lisp) that compiles to go ?
- ptx 4y ago> Variables aren’t immutable in any significant way because you can trivially turn an immutable reference into a mutable one. To be fair, they didn't claim that the values were immutable, only the variables. Isn't the example in the article basically the same as Java's final variables, i.e. immutable references to mutable values? > No global variables [...] Evaluation: V does not prevent you from creating and mutating globally shared state in any meaningful way. Although I agree with the evaluation, the claim of "no global variables" might still hold, assuming it refers to mutable global variables. The global constant holds an immutable reference to a mutable value, just like how in Java a singleton object (or a class with mutable static fields) can be used to simulate global variables.
- amedvednikov 4y agoIt's just a one line bug in the checker, which can be reported via github, but it wouldn't be as dramatic.
- ptx 4y agoMaybe I misunderstood then. I was saying that it seems to behave basically like Java. Is that a bug?
- amedvednikov 4y agoV has global consts, they are immutable, but can be initialized with complex expressions, for example `const x = foo()` There's a bug that allows to trick the compiler and modify the const via another variable, it's a one line fix, and will be fixed today. Global mutable variables are only allowed with `-enable-globals` and are supposed to be used only in low level code, like drivers and kernels.
- ptx 4y agoIf I understand the example code correctly, it's modifying a heap-allocated struct that's pointed to by a global const. So the global const contains an address which is not modified, but the thing at that address is modified. Right? What does the intended behaviour (after the fix) look like? Are mutable fields in structs disallowed if the struct is pointed to by a const?
- ylluminate 4y ago
- haskellandchill 4y agoReally? I didn't catch that vibe at all. You're saying if you do this without involving the community it is trolling? I guess it is fair to run the article by the community somehow, but I'm not sure the best approach to that. I'm doing a similar thing for Nim so I would like to not be seen as trolling.
- vlang1dot0 4y ago
- super_flanker 4y agoThey call names to anybody who dares to ask a genuine question they don't like. It's a meme by now, how easy it is to get banned on V's discord server. I've a feeling that author tried to bring these issues on their discord server, got himself banned and then decided to write a blog.
- ylluminate 4y agoUntrue on both counts.
- Tozen 4y ago
- haskellandchill 4y agoWell I started talking with Nim chat, and that was very good advice, thanks!
- Tozen 4y agoYou're welcome. Good to see that you are going about it the right way. People in their community would likely be more accepting and appreciative.
- hunam 4y agoAdding a mention that V is still far from 1.0 in the title or at the beginning would have been honest.
- somethingor 4y agoV’s Github description from October 2019 would have disagreed https://web.archive.org/web/20191020121218/https://github.com/vlang/v https://web.archive.org/web/20191020121218/https://github.co...
- Tozen 4y agoHopefully what is not being suggested is that creators of open-source programming languages are not allowed to revise their release schedules, underestimate, or change the number of features it will have. Languages such as Nim have took 11 years before reaching 1.0, so V is still doing comparatively well. V's pace of development has been quite fast and substantial. More comparable languages such as Zig and Odin have yet to hit 1.0 as well, and are many years older. Yes, the pace of development is getting faster and user patience less, but V should still be afforded some leeway in this regard.