Yout doing great code to the moon. You got that skill to explain things clear, simple and concise. Please make a video on java vs c# vs go vs v languages
@@ThePrimeTimeagen I know. Just joking. Not even trying to kill it. Taking a look at _BunJS_ isn't a joke, though. For every frustrated programmer there is a pack of nerds inventing solutions.
I like your content, but it seems like your community is sounding more like haters day by day. In my view, they are just looking for validation by the streamer. I bet less than 10% have their own true opinions nowadays, and instead just look to have an opinion Prime would agree with. Most tech youtubers who stream seem to have echo chambers behind them, which I guess is good for their community, but perhaps not the best for meaningful discussion. I'd like to see content with people who have contrarian viewpoints but in Prime's content I just see echoes 99% of the time. I am just one guy on the internet, and probably sound like a hater as well, but just as Prime criticizes or has contrarian viewpoints to the things he reacts to, it would be great to hear the counters of his points as well.
They just want entertainment you can see in the chat they are mostly laughing at each other's puns and jokes. They don't care about starting an argument
@@EzequielRegaldo It's sure better than a lot of languages but that is not going to make a language successful. It needs to be significantly better than the current languages to choose from, and enough people need to thing that.
@@EzequielRegaldo Would be an amazing reality right? I think with current language development it would be possible to create a language so versatile it would fit most projects. It's just that the current state of software is an absolute mess with old frameworks, old code, and trying to fit backwards compatibility into any framework is going to push it away from that perfect language.
Vala, Genie, and others (original c++) have compiled to C for decades. It's low level enough to be similar to compiling to asm. It's really not _that_ different than LLVM, atleast not fundamentally.
Compiling to C also has the added benefit of the half-century worth of optimization out of the box. Also just like LLVM but at the same time C has a much more well known interface than LLVM.
Return type IS a type. What the heck you're talking about? But I hear you it's confusing because on object notation column is value assignment operator yet in ingerface/type its type declaration.
21:16 Primagen is happy that naming doesn't have meaning like in go (upper case is public) A few seconds later it's mentioned how naming has meaning (functions containing test are tests)
Somebody mentioned Vale in your chat. That seems like a far more interesting language to me if I were to adopt a newish language. (do note, Vale, not Vala)
@@jsonisbored that's actually exactly what happened to me, this video triggered me to search a bit deeper :). I remembered a language beginning with V which had some interesting memory management ideas, went from there.
@@_slier hmm, you're not wrong. There is more up to date activity on Verdagons branch, but thar suggests a bus factor of 1, and Vale is behind the Roadmap now that I check it.
looks interesting 🙂👍 though I'm already nitpick-level annoyed that they truncated "function" as "func" while simultaneously lengthening "export" as "exported". just. WHY 😂
@live is a broken feature, very raw and as a borrow checker it probably wouldn't scale. D also has memory safe and pure tags out of the box, these are pretty cool. Not this but meta programming in D is probably the best out there in terms of easiness to read and write.
@@asad-ullahkhan2368 and then THAT V code is again compiled to a similar(less efficient even) C code C is so "simple" that it could possibly be transpiled to many langs... You just lose efficiency... But V is compiled back down so that doesn't matter.... All you need are pointers, functions, integer types etc... Mostly just basic stuff
@@icoudntfindaname the impressive part is translating the C code to V, not the transpiler. It shows you can incrementally convert a codebase to V (or all at once even). Besides, the V compiler also has an LLVM emitter, which will eventually be able to run doom as well (if not already capable of that)
V is still pretty much in alpha stage. They transpile to C because they haven't implemented a direct compiler and for some reason the V developer hates LLVM and doesn't want to use it for compiling.
@@icoudntfindaname You missed the point of the past 30 years (at least) of language design then. Most languages abstract away from the simplicity to ensure security. Yes C is a simple low-level language, this is what makes it *difficult* to translate it into a high-level language. Precisely because that's the point of high-level languages! If we could do the same prone-to-errors manipulations in Haskell as in C, nobody would program in Haskell, everybody would program in C directly and not compromise on efficiency. (I took Haskell as an example, this would work for basically any language which is not a dictionary for C). So the fact that you can translate a fairly large project like Doom automatically from C and then compile it by any means (including transpiling back to C on the way) and still have something decently runnable is pretty impressive. That being said, I don't really see the big innovation that this V thing is supposed to be.
Sounds like the language was made public waaaaaaaaaaaaaaay to soon when there is still so much to do and maybe not enough resources to do it. Edit: so many people are just like "try it" instead of answering questions about languages. Sure, I'll just put a few hours if my day to every little new shiny thing that comes out in tech.
I disagree. With 600+ contributors and now more than half of the codebase written by the open source community, it's good it was released when it was. What particular issues are you referring to?
Oh, I remember V. The language which promises no null, but delivered nulls. The language which promised no UB, but has documentation when UB occurs(closures). Uses tcc to sustain high compilation speed, which means destroying runtime speed. I would rather learn seed7
You're right about nulls, the language only gets first class Optional types, which will allow us to start saying that there are no nulls in the language (in safe code). As for UB, I also agree, now the language does not promise the absence of UB. As for TCC, it's used for fast development, for production you can use GCC or Clang and get a super fast binary.
@@petrmakhnev4037 It's dishonest to use TCC when benchmarking compilation times. Nim also has a TCC backend but you don't see people advertising Nim using benchmarks with it.
Fyi: the name: Type annotation comes from Scala. Inventor Martin Odersky chose it, because the colon is a mathematical notation for element of a set (usually you learn in school the symbol that look like similar to €). So you could read a: Int as a is an element of the set of integers.
There is no definition for arrays that says something has to be immutable and on the stack to be a technical array. Well in rust we call it array and vector, there this distinction is clearly made. But it can be a dynamic, heap allocated list and still called array. Like it is commonly done in many langs. For fixed sized arrays in v that are put on the stack, the syntax is e.g., `mut fnums := [3]int{}`.
Copy as default makes more sense if you're not constantly passing objects around, and only passing basic types like integers/floats/etc. In my game I'm working on in C++, i'd guess over half of all my functions operate on basic types, and the remainder is passing around pointers(which technically exists ITSELF as a variable and gets copied). The cpu has no real problem just creating basic types like integers and shifting them around, while copying the address of a pointer then possibly needing to do a memory lookup is much more expensive - especially if the cpu was already working on the values being passed. In something like javascript where ''everything is an object'', I'd guess basic types being copied might be more expensive(I'm not sure)?
I never understood the following: what do developers mean when they say to “implement behavior”. What is behavior? What parts die behavior consists of? Or do they simply mean methods attached to some class or object?
@@paulholsters7932because it's kinda messy (at least for me), OOP is nice but sometimes it's too much especially with all that inheritance and abstraction
I think this was "just a teeny tiny bit" harsh on V. Too much comparison with Rust where it should've been overall and also ease of learning aspect being kept in mind to compare to rust. Plus when lang is pre-alpha and things don't work and devs fix the issues you had, that shouldn't even be judged
I love V and would like to see it come to fruition. I've been using it since 2019. It's been in beta for a while now and I'm still reporting bugs that prevent the code from compiling several times a week. They're usually pretty quick about addressing the bug like you said. But I feel like the stability of the language has not improved enough to go from alpha to beta.
I don't buy that UI should be in the stdlib. It's tech debt waiting to happen. Just look at python with tkinter. I have never seen someone use tkinter for UI in python. Provide a first-party library sure, with it's own version management etc. but as the old adage goes: the stdlib is where code goes to die.
💯 Interfaces should not have properties 💯 The first thing i check with a new language is how it handles sum types aka enums. I want simple building blocks for building data on the right shape. Sum types and product types. That xkcd about the proliferation of standards applies... I see a new language and think "i could design a better language than that, maybe i should" (no i shouldn't)
By it's own admission, V is designed to be a slightly better version of Go. So on the one side you have a mature language with extensive tooling and libraries, funded by Google and built by some of the most respected folks in the history of computing. And on the other side you have a very similar language written by random guys with a highly controversial history. I would need more than a couple of marginal improvements before I'd dream of switching.
Grrrr.. why don't programming language designers just use the "well known and usual" style in the syntax? Like "{" and "}" and semicolons. OR "begin" and "end", spell out "function" of "fun"! WTF! . and def!! spell it out or use "class" ..what's wrong "this", oh no someone had to come up with "self" and even "me". For comments, just use // , /* .. */ etc etc. the c style works just fine. For multi-line literally strings use a heredoc "
To be honest, I think you should have a closer look into the V language yourself. Else you are missing a lot of things (e.g. the error management) and I think it's not really fair commenting on a summary of someone else.
I’m having a bit of deja vu right now, but V is already dead and Nim killed it. Nim has 3 options for GC, including a no GC option. It can also transpile to JavaScript
I think it's a matter of taste. I don't like for example '&' for string concatenation and having 100500 ways to call functions which makes the code unclear in Nim. Btw, V also has a JS backend.
@@TheoParis you can compile C code into WASM and V has examples where this works great. Also, a native WASM backend is currently being developed, but it is still quite young.
I don't really understand why anyone would want this auto free thing. If you are writing something that ought to be in C++ or Rust, then resource management *is* a large part of the problem space. If it could be automated, then you wouldn't need to do custom resource management and a good garbage collector is going to be better than doing malloc and free -- those are inherently more expensive. Plus, by having the compiler do it like this, you lose out on the main benefit of not having a gc -- that how you handle memory is deterministic and visible to the programmer from the source code. So I'm unclear on what you'd want to use V for.
shame to see the bias on full display (and ignorance) given his popularity. I hope people go watch the original video and make their own assessment, it's easy to get the wrong idea and miss out on a great tool due to somebody elses bias and unfair representation. Everybody that clambered to s*** on V is feeling really stupid right about now if they take an honest look at the language now.
Looks like a stoat. Some people can’t tell the difference, lemme help: a weasel is weaselly recognised while a stoat is stoatally different. You’re welcome
12:30 You can't technically define "methods" on structs in C (you can in C++ though), but having a struct with a field that is another struct is definitely a thing in C too. That is nothing new lol.
If nobody has said it (which I doubt, but still), I will: Code to the Moon, if memory serves me, is also a huge Rust fan; in fact, every other video of his I've seen so far was about Rust, which begs the question: collab w/ Code to the Moon when? I mean, your collabs w/ TJ are great, obviously, but this dude deserves to be featured on your channel as well
I'm surprised this was even considered a language that can be popular in 2023. GC(auto-free lmao) which cleans "most of the time". Passing params which "passes either by value or reference but compiler knows" ... sure... The fact that such ambiguity is still a thing in "newer languages" is funny to even consider using it. Weasel was cute, but this one I also would hit with a car.
V is a very cool language. But it's developers are honestly snobby. It makes or breaks the language for me, if the server you get to talk to the dev team on the project our up their own butts in opinions.
By the way, variables in V are immutable by default. The example at 6:59 won't run for this reason. The author of the video forgot to add `mut` i.e. `mut a := 5` instead of `a := 5`.
The problem with colons and arrows is they make the code harder to type. It doesn't flow as nicely through your fingers. You need to press shift a lot more, at least in some non american keyboards.
I'm primarily a Go dev. I also use some other languages at work but Go is my main one. V is definitely heavily inspired by Go. It has some nice improvements over Go, like having string interpolation and some other quality of life improvements. I'll keep an eye on it. It won't be a language I'd use for actual projects any time soon though. But it's promising .
14:00 I'm a Go programmer on my everyday job, programmer a bit on Rust ... Im definitely NOT excited to see implementation details (properties) OR implementation THEMSELVES on interfaces. LIKE the whole point of INTERFACES Is NOT to implement them directly? And you just ... go straight and implement them? I'm not excited at all. I dont like this. I dont care how many good things it has, if they won't take this away, it's more than just vape-ware for me.
Think about it: PC Not HtmL, Got Binary EXecutables. Panamá Costa rica Nicaragua Honduras-eL salvador, Guatemala Belize mEXico So DON´T use Javascript in your servers. GEOGRAPHY tells you to.
I've been following the language for years now. I can assure you, all the things that are marked as WIP on their web site but advertised as practically working were in the same state years ago when I first encountered the project. The hard problems (main selling points) are not being solved. Pity, since the syntax and ergonomics are above probably any other statically typed language.
@@Puzomor don't see the logic. So can you list the examples? You've been following for years, must be easy to list some examples so that I can update the website.
Binay in One letter a big deal? What, you don’t alias?!? Tbh. Bummed after watching the vid. Meh lang execution. At least Nim gives you pseudo code syntax and compilation to C. That’s a nice selling point. Would be awesome if more people used it. Forget C or C++ killers, give me a JS/TS killer.
hmm, last time i checked v had not actually worked out the autofree rules in a non conflicting manner, and the implementation was also far from being complete, but who knows
Colon as function return type operator? Yep at first TS way looked like it's more consistent .. function xyz( n: number ): number ... but actually maybe it is not. First colon mean value type and second is return type. Function has no type, it is a function - it returns a value of some type so it's basically a different thing, just slightly but different. At first I too didn't like the -> thing in Rust but it make sense .. a little more than colon in TS. Also I liked no semicolon and no colon syntax in Go for some time. But nowadays the Go/V syntax seems to me like too much void, too much magic syntax, too much 'not obvious - convention based' syntax.
I don't really know what was so bad about return type first before function name. int foo() Vs fn foo() -> i32. I like a lot of the things that rust does but this just feels like extra boilerplate for no reason.
int foo .. is somewhat elegant in a way, but also its kinda backwards. We are wired that we think of name first, then we want to know what it returns. This way you see from left to right what returns, than what is the name of something, maybe youll think about the name, then return back to start what it will return :) It's all wrong way .. but it's short.
@@georgehelyar Read Rob Pike's article on Go's syntax. I can't share a link since YT would delete my comment. But basically there's nothing wrong with your example, until you start making it more complicated - such as signatures of functions that return pointers and take pointers to functions that take and return pointers. The Go/Rust way would be easier to read and write.
prisma allows you to sql while being an orm.. i think prisma is the best orm.. but i still like my sql. i even have zero problem with unstructured in sql
No. Many languages do compile into C, and Nim was not the first. Besides, there are many other significant differences with Nim - V for example has no macros, and no intention to have them at all. Nim is also more permissive for naming identifiers and variables, sometimes allowing you to call `xyz` as `xYz` or even `XYZ`, where all of them will refer to the same thing, while V does not.
It was a lot of fun watching this reaction, thanks for doing it!
Don't stop doing what you do :)
Yout doing great code to the moon. You got that skill to explain things clear, simple and concise. Please make a video on java vs c# vs go vs v languages
@@Bvngee That's what she said.
:= is assignment, which is different to =
= also asignes...
Oh, this is gonna be controversial
23:15 Then you should have a look at _BunJS_ . It's a runtime like that for _JS_ . _NodeJS_ is dead.
Node js isn't dead
@@ThePrimeTimeagen I know. Just joking. Not even trying to kill it.
Taking a look at _BunJS_ isn't a joke, though.
For every frustrated programmer there is a pack of nerds inventing solutions.
Wait till prime learns that lambdas in C++20 can use all four types of brackets eg. `auto fn = []() -> void {};` is a valid lambda in C++20.
I like your content, but it seems like your community is sounding more like haters day by day. In my view, they are just looking for validation by the streamer. I bet less than 10% have their own true opinions nowadays, and instead just look to have an opinion Prime would agree with. Most tech youtubers who stream seem to have echo chambers behind them, which I guess is good for their community, but perhaps not the best for meaningful discussion. I'd like to see content with people who have contrarian viewpoints but in Prime's content I just see echoes 99% of the time. I am just one guy on the internet, and probably sound like a hater as well, but just as Prime criticizes or has contrarian viewpoints to the things he reacts to, it would be great to hear the counters of his points as well.
Idk, if you watched the OOP good video, a lot of his chat disagree with him.
Lol haters
shut up fool we are friendly and open minded u scrub
we could make a React of this React at how much rust sux.
They just want entertainment you can see in the chat they are mostly laughing at each other's puns and jokes. They don't care about starting an argument
The V community acts like they bet their life savings that it's going to be the next employable language.
"V coin to the moon" ahh behavior
It is by far better than 90% of langs to be be honest
@@EzequielRegaldo It's sure better than a lot of languages but that is not going to make a language successful. It needs to be significantly better than the current languages to choose from, and enough people need to thing that.
@@joranmulderij 1 lang, everything. Its the way
@@EzequielRegaldo Would be an amazing reality right? I think with current language development it would be possible to create a language so versatile it would fit most projects. It's just that the current state of software is an absolute mess with old frameworks, old code, and trying to fit backwards compatibility into any framework is going to push it away from that perfect language.
Vala, Genie, and others (original c++) have compiled to C for decades. It's low level enough to be similar to compiling to asm. It's really not _that_ different than LLVM, atleast not fundamentally.
Compiling to C also has the added benefit of the half-century worth of optimization out of the box. Also just like LLVM but at the same time C has a much more well known interface than LLVM.
Chicken scheme, ATS and many others also do this
"If they'd done capital letter I would have lost it, [...] that was the greatest mistake of Go" this is probably the best thing Prime has ever said.
I like rust’s arrow syntax. So easy to see what is what . Ts have colons everywhere, such a pain to know if its a type, a return type or another thing
Return type IS a type. What the heck you're talking about? But I hear you it's confusing because on object notation column is value assignment operator yet in ingerface/type its type declaration.
Agreed. In Kotlin and Python, I hunt down where the return types are. A big arrow helps a lot in that sense.
@@stevenhe3462 imho c/java style is cleanest when it comes to return types.
@@sk-sm9sh Nah. Rust does it best. It makes sense that the return is after the method signature. Much more intuitive.
21:16
Primagen is happy that naming doesn't have meaning like in go (upper case is public)
A few seconds later it's mentioned how naming has meaning (functions containing test are tests)
it's at 20:50
Somebody mentioned Vale in your chat. That seems like a far more interesting language to me if I were to adopt a newish language. (do note, Vale, not Vala)
I've been trying to find Vale for awhile because I forgot the name. Thank you!
@@jsonisbored that's actually exactly what happened to me, this video triggered me to search a bit deeper :). I remembered a language beginning with V which had some interesting memory management ideas, went from there.
Vale last commit is 25 jan.. not looking very promising.. looks ded to me
@@_slier hmm, you're not wrong. There is more up to date activity on Verdagons branch, but thar suggests a bus factor of 1, and Vale is behind the Roadmap now that I check it.
looks interesting 🙂👍
though I'm already nitpick-level annoyed that they truncated "function" as "func" while simultaneously lengthening "export" as "exported". just. WHY 😂
D can also run GC and Nogc and borrow check you tag it per function or structure. Except that D has been around for years and is not new
@live is a broken feature, very raw and as a borrow checker it probably wouldn't scale. D also has memory safe and pure tags out of the box, these are pretty cool. Not this but meta programming in D is probably the best out there in terms of easiness to read and write.
Yeah, But D is not cool. It has no cool mascot and it has no cool logo. So it is not hip and nobody will ever use it despite how good the language is.
@@voidwalker7774 give it a cute dog and I'll hop on the D train
D is a really, really cool language (now that there is a template for sumtypes)
@@ivymuncherDlang the big red dog 🐕
A new language with UI built-in. Is it the 90s?
ikr just use electron
@@inexistente nah gtk the queen
It's not built-in. It's a separate module installable via `v install ui`.
What's wrong with an official UI?
@@mgord9518 people on this channel are only looking to build web apps
V running doom is a lot less impressive after learning that it transpiles to C.
how? its a v program that translated doom C to V. thats pretty impressive
@@asad-ullahkhan2368 and then THAT V code is again compiled to a similar(less efficient even) C code
C is so "simple" that it could possibly be transpiled to many langs... You just lose efficiency... But V is compiled back down so that doesn't matter....
All you need are pointers, functions, integer types etc... Mostly just basic stuff
@@icoudntfindaname the impressive part is translating the C code to V, not the transpiler. It shows you can incrementally convert a codebase to V (or all at once even). Besides, the V compiler also has an LLVM emitter, which will eventually be able to run doom as well (if not already capable of that)
V is still pretty much in alpha stage. They transpile to C because they haven't implemented a direct compiler and for some reason the V developer hates LLVM and doesn't want to use it for compiling.
@@icoudntfindaname You missed the point of the past 30 years (at least) of language design then. Most languages abstract away from the simplicity to ensure security. Yes C is a simple low-level language, this is what makes it *difficult* to translate it into a high-level language. Precisely because that's the point of high-level languages! If we could do the same prone-to-errors manipulations in Haskell as in C, nobody would program in Haskell, everybody would program in C directly and not compromise on efficiency. (I took Haskell as an example, this would work for basically any language which is not a dictionary for C). So the fact that you can translate a fairly large project like Doom automatically from C and then compile it by any means (including transpiling back to C on the way) and still have something decently runnable is pretty impressive. That being said, I don't really see the big innovation that this V thing is supposed to be.
Sounds like the language was made public waaaaaaaaaaaaaaay to soon when there is still so much to do and maybe not enough resources to do it.
Edit: so many people are just like "try it" instead of answering questions about languages. Sure, I'll just put a few hours if my day to every little new shiny thing that comes out in tech.
Too many "a"s, too few "o"s...
I disagree. With 600+ contributors and now more than half of the codebase written by the open source community, it's good it was released when it was.
What particular issues are you referring to?
V will never hit 1.0.0
Oh, I remember V. The language which promises no null, but delivered nulls.
The language which promised no UB, but has documentation when UB occurs(closures).
Uses tcc to sustain high compilation speed, which means destroying runtime speed.
I would rather learn seed7
You're right about nulls, the language only gets first class Optional types, which will allow us to start saying that there are no nulls in the language (in safe code). As for UB, I also agree, now the language does not promise the absence of UB.
As for TCC, it's used for fast development, for production you can use GCC or Clang and get a super fast binary.
V as in vaporware. i miss those times. how is V nowadays?
@@socvirnylestela5878 evolving :)
It's still in development and isn't advertised as stable 1.0
@@petrmakhnev4037 It's dishonest to use TCC when benchmarking compilation times. Nim also has a TCC backend but you don't see people advertising Nim using benchmarks with it.
Fyi: the name: Type annotation comes from Scala. Inventor Martin Odersky chose it, because the colon is a mathematical notation for element of a set (usually you learn in school the symbol that look like similar to €). So you could read a: Int as a is an element of the set of integers.
There is no definition for arrays that says something has to be immutable and on the stack to be a technical array. Well in rust we call it array and vector, there this distinction is clearly made.
But it can be a dynamic, heap allocated list and still called array. Like it is commonly done in many langs.
For fixed sized arrays in v that are put on the stack, the syntax is e.g., `mut fnums := [3]int{}`.
Or the short syntax is to use ! at the end of your expression. This also allocates to the stack
arr := [1, 2, 3]!
Copy as default makes more sense if you're not constantly passing objects around, and only passing basic types like integers/floats/etc. In my game I'm working on in C++, i'd guess over half of all my functions operate on basic types, and the remainder is passing around pointers(which technically exists ITSELF as a variable and gets copied).
The cpu has no real problem just creating basic types like integers and shifting them around, while copying the address of a pointer then possibly needing to do a memory lookup is much more expensive - especially if the cpu was already working on the values being passed.
In something like javascript where ''everything is an object'', I'd guess basic types being copied might be more expensive(I'm not sure)?
I never understood the following: what do developers mean when they say to “implement behavior”. What is behavior? What parts die behavior consists of? Or do they simply mean methods attached to some class or object?
There are people who hate classes, and so therefore they all have effectively see cell functions where you pass objects in to do things
@@ThePrimeTimeagen ok thx
@@ThePrimeTimeagen is there a particular reason why they hate classes?
@@paulholsters7932because it's kinda messy (at least for me), OOP is nice but sometimes it's too much especially with all that inheritance and abstraction
I love code to the moon please considering reacting to more of his stuff he does great rust vids
If only these features actually were implemented and worked as advertised for years.😂😢
I think this was "just a teeny tiny bit" harsh on V. Too much comparison with Rust where it should've been overall and also ease of learning aspect being kept in mind to compare to rust.
Plus when lang is pre-alpha and things don't work and devs fix the issues you had, that shouldn't even be judged
I love V and would like to see it come to fruition. I've been using it since 2019. It's been in beta for a while now and I'm still reporting bugs that prevent the code from compiling several times a week. They're usually pretty quick about addressing the bug like you said. But I feel like the stability of the language has not improved enough to go from alpha to beta.
I think V is easy and maybe ok to read at this level, I think on complex code the lack of colons and other syntax of this lang will NOT help
maybe syntax highlighting would help.
I don't buy that UI should be in the stdlib. It's tech debt waiting to happen. Just look at python with tkinter. I have never seen someone use tkinter for UI in python. Provide a first-party library sure, with it's own version management etc. but as the old adage goes: the stdlib is where code goes to die.
It's not part of stdlib. It's a separate module installable via `v install ui`.
Can you react to "10 reasons not to use Rust (the whole truth)" by fasterthanlime?
He did
@@justpatrick_ When, did he posted it?
8:00 - as a vim use you should know how awesome it is to have some separator before type to navigate quickly.
I'm excited for the lang tierlist 🤡
💯 Interfaces should not have properties
💯 The first thing i check with a new language is how it handles sum types aka enums. I want simple building blocks for building data on the right shape. Sum types and product types.
That xkcd about the proliferation of standards applies... I see a new language and think "i could design a better language than that, maybe i should" (no i shouldn't)
V does have sumtypes: `type Animal = Cat | Dog`, and exhaustive matching.
Hey is this the channel of the guy who built the auto-play feature on Netflix ™?
why yes it is
With everyday tasks, take your time estimate and double it.... With programming, cube it
By it's own admission, V is designed to be a slightly better version of Go. So on the one side you have a mature language with extensive tooling and libraries, funded by Google and built by some of the most respected folks in the history of computing. And on the other side you have a very similar language written by random guys with a highly controversial history. I would need more than a couple of marginal improvements before I'd dream of switching.
Grrrr.. why don't programming language designers just use the "well known and usual" style in the syntax? Like "{" and "}" and semicolons. OR "begin" and "end", spell out "function" of "fun"! WTF! . and def!! spell it out or use "class" ..what's wrong "this", oh no someone had to come up with "self" and even "me". For comments, just use // , /* .. */ etc etc. the c style works just fine. For multi-line literally strings use a heredoc "
To be honest, I think you should have a closer look into the V language yourself. Else you are missing a lot of things (e.g. the error management) and I think it's not really fair commenting on a summary of someone else.
yeah I hate {} around 1 liner if statements, I always tried at my previous work but not many PRs got through bc of PARENTHESIS ANDIES....
I’m having a bit of deja vu right now, but V is already dead and Nim killed it.
Nim has 3 options for GC, including a no GC option. It can also transpile to JavaScript
I think it's a matter of taste. I don't like for example '&' for string concatenation and having 100500 ways to call functions which makes the code unclear in Nim.
Btw, V also has a JS backend.
@@petrmakhnev4037 wasm >
@@TheoParis you can compile C code into WASM and V has examples where this works great. Also, a native WASM backend is currently being developed, but it is still quite young.
@@petrmakhnev4037 You don't have to use & for concatenation. You can also use a comma.
V means full of restrictions. No global variables, no function overloading etc... And variable declaration with a type looks ugly.
I don't really understand why anyone would want this auto free thing. If you are writing something that ought to be in C++ or Rust, then resource management *is* a large part of the problem space. If it could be automated, then you wouldn't need to do custom resource management and a good garbage collector is going to be better than doing malloc and free -- those are inherently more expensive. Plus, by having the compiler do it like this, you lose out on the main benefit of not having a gc -- that how you handle memory is deterministic and visible to the programmer from the source code.
So I'm unclear on what you'd want to use V for.
shame to see the bias on full display (and ignorance) given his popularity. I hope people go watch the original video and make their own assessment, it's easy to get the wrong idea and miss out on a great tool due to somebody elses bias and unfair representation.
Everybody that clambered to s*** on V is feeling really stupid right about now if they take an honest look at the language now.
Looks like a stoat. Some people can’t tell the difference, lemme help: a weasel is weaselly recognised while a stoat is stoatally different. You’re welcome
12:30 You can't technically define "methods" on structs in C (you can in C++ though), but having a struct with a field that is another struct is definitely a thing in C too. That is nothing new lol.
THERE'S NO SEMICOLONS!!?!??!?!?!!!
If nobody has said it (which I doubt, but still), I will:
Code to the Moon, if memory serves me, is also a huge Rust fan; in fact, every other video of his I've seen so far was about Rust, which begs the question:
collab w/ Code to the Moon when?
I mean, your collabs w/ TJ are great, obviously, but this dude deserves to be featured on your channel as well
Run` cargo run` with two letters like this: `alias cr="cargo run"` in linux. 😂 You're welcome!
To me space says "new word" not "example of this type". That's why I prefer a colon or some delimiter over a blank space.
V is basically Go that works better with C
Because if you're a go dev u know cgo sucks
CGO is literally why I created the language in the first place :)
Narrator: it was not
DO NOT DO TUPLE RETURNS. Python developer talking))))
3:46 Ok, so _V_ is to _C_ what _TS_ is to _JS_ .
Why not using _Zig_ instead ?
I'm surprised this was even considered a language that can be popular in 2023.
GC(auto-free lmao) which cleans "most of the time".
Passing params which "passes either by value or reference but compiler knows" ... sure...
The fact that such ambiguity is still a thing in "newer languages" is funny to even consider using it.
Weasel was cute, but this one I also would hit with a car.
GC cleans 100% of the time. The value/reference optimization is being removed, there's an open PR.
By 100% of the time I mean it frees all variables, not "most".
V is a very cool language. But it's developers are honestly snobby. It makes or breaks the language for me, if the server you get to talk to the dev team on the project our up their own butts in opinions.
I am one of V's developers. What is snobby about us, can you be more specific, please?
By the way, variables in V are immutable by default. The example at 6:59 won't run for this reason. The author of the video forgot to add `mut` i.e. `mut a := 5` instead of `a := 5`.
that was GoLang, it wasn't V
@@jacopo8100 That is not how you write Go, the code is in V. They were just comparing it to Go.
1:40 yes Carmack works out these days. He's admitted it several times.
Becoming IRL Doomguy
I do not trust him....not using dark mode in his browser....hurt mine eyes.
The problem with colons and arrows is they make the code harder to type. It doesn't flow as nicely through your fingers. You need to press shift a lot more, at least in some non american keyboards.
it's a shame at 18:42 that prime won't create a language 😢
imho, V lang has a beautiful and easy to read syntax
Why you don't like C++ capture list in lambda and what is best design in your opinion?
I hope you don't forget the nim language on your tier list
I love C++ style lambda syntax. It will grow on you.
I read the thumbnail as "Vim in 2023?"
@rotteegher39 😮 So did I.
3:46 lol made my day. God bless you man you got great sense of humor.
Carmack does BJJ so I guess he is
I'm primarily a Go dev. I also use some other languages at work but Go is my main one. V is definitely heavily inspired by Go. It has some nice improvements over Go, like having string interpolation and some other quality of life improvements. I'll keep an eye on it. It won't be a language I'd use for actual projects any time soon though. But it's promising .
Oh ALL HELL! If you bring Carmack into the conversation - I'M GOING INTO IT!
I don't have a colon, and I can tell you, you are definitely winning with a colon vs without
Reality has ruined much beautiful code.
14:00 I'm a Go programmer on my everyday job, programmer a bit on Rust ...
Im definitely NOT excited to see implementation details (properties) OR implementation THEMSELVES on interfaces. LIKE the whole point of INTERFACES Is NOT to implement them directly? And you just ... go straight and implement them?
I'm not excited at all. I dont like this. I dont care how many good things it has, if they won't take this away, it's more than just vape-ware for me.
I'm very curious to know why people don't understand the difference between time estimation and time prediction
V is two years away from replacing C++
(:=) Looks like the GO Lang maschot
Refrigerators can run Doom so thats not a win.
Think about it:
PC Not HtmL, Got Binary EXecutables.
Panamá Costa rica Nicaragua Honduras-eL salvador,
Guatemala Belize mEXico
So DON´T use Javascript in your servers. GEOGRAPHY tells you to.
I've been following the language for years now. I can assure you, all the things that are marked as WIP on their web site but advertised as practically working were in the same state years ago when I first encountered the project. The hard problems (main selling points) are not being solved. Pity, since the syntax and ergonomics are above probably any other statically typed language.
Can you list any examples? None of the features are WIP anymore, everything listed on the website works.
@@VLang Alex, please - you don't have to aggressively defend your language on literally every comment on the Internet
@@Puzomor how is it agressive? I was just wondering which issues you referred to.
@@VLang because the comment is more than a month old.....
@@Puzomor don't see the logic. So can you list the examples? You've been following for years, must be easy to list some examples so that I can update the website.
10:19 - 10:30
You just described racism 🤣
Is this lang an evolution of vala lang?
Rust, D, Vlang, Zig, Carbon , Go,Swift, kotlin
damn languages !😂🎉
We Need a new lang please 🎉😂pleasee
V as a Vendetta or V as an alien lizards?
What's the status of v in 2024
Binay in One letter a big deal? What, you don’t alias?!?
Tbh. Bummed after watching the vid. Meh lang execution.
At least Nim gives you pseudo code syntax and compilation to C. That’s a nice selling point. Would be awesome if more people used it.
Forget C or C++ killers, give me a JS/TS killer.
hmm, last time i checked v had not actually worked out the autofree rules in a non conflicting manner, and the implementation was also far from being complete, but who knows
It's go with snake case, string interpolation, range, autofree... It's like the perfect mix between rust and go
Vlang is 90% Golang + 10% Rust. It has some of the bad things like go too, for example, using tabs instead of spaces.
Everything is C lmao
It seems that if the languages are arranged from low-level language to high-level language. it will be:
C < Zig < V < Go < Python
34:34 "my corneas are burning"
"..felt that was short sighted.."
Perfect timing 😂😂😂
Why are they calling it a language? Isn't it just a C preprocessor?
it also compiles to wasm, and to native (WIP about 90%)
@@NodeNomad so could I use it to play doom in webassembly?
Golang couldn't do generics for the entirety of it's formative years. That didn't make Go "vaporware."
Well, now (after 30 years of doing IT) I've finally met someone that pronounces SQL as squeal. Yippee.
Feels like go+ (doesn't change enough for go++)
Go#
Colon as function return type operator? Yep at first TS way looked like it's more consistent .. function xyz( n: number ): number ... but actually maybe it is not.
First colon mean value type and second is return type. Function has no type, it is a function - it returns a value of some type so it's basically a different thing, just slightly but different.
At first I too didn't like the -> thing in Rust but it make sense .. a little more than colon in TS.
Also I liked no semicolon and no colon syntax in Go for some time.
But nowadays the Go/V syntax seems to me like too much void, too much magic syntax, too much 'not obvious - convention based' syntax.
I look at this from consistency perspective. I prefer the TS design, where syntax for type annotation is always DEFINITION + COLON + TYPE
I don't really know what was so bad about return type first before function name. int foo() Vs fn foo() -> i32. I like a lot of the things that rust does but this just feels like extra boilerplate for no reason.
int foo .. is somewhat elegant in a way, but also its kinda backwards. We are wired that we think of name first, then we want to know what it returns. This way you see from left to right what returns, than what is the name of something, maybe youll think about the name, then return back to start what it will return :) It's all wrong way .. but it's short.
@@georgehelyar Read Rob Pike's article on Go's syntax. I can't share a link since YT would delete my comment. But basically there's nothing wrong with your example, until you start making it more complicated - such as signatures of functions that return pointers and take pointers to functions that take and return pointers. The Go/Rust way would be easier to read and write.
Mutational (DNA changed)
Mutable (volume on/off)
Mut (mongrel dog)
Oh. They have UI AND Data Access?! And its cross platform? Oh my, Delphi, watch out.
C++ style capture list? I dunno. There's this new concept they should read up on, it's called Lexical Scope.
prisma allows you to sql while being an orm.. i think prisma is the best orm.. but i still like my sql. i even have zero problem with unstructured in sql
What the f%k did I just watch
I like like 3 of their ideas and hate the syntax, lmao. Go is awesome but I would never use its syntax as a base lmao.
It compiles into C, so basically Nim, only with go-like syntax instead of python-like
Yes.
No. Many languages do compile into C, and Nim was not the first. Besides, there are many other significant differences with Nim - V for example has no macros, and no intention to have them at all. Nim is also more permissive for naming identifiers and variables, sometimes allowing you to call `xyz` as `xYz` or even `XYZ`, where all of them will refer to the same thing, while V does not.