Love the content! I am currently learning Go, and Rust looks like a very interesting language as well. I enjoy just listening to your thought process while you code, even though I don't understand most of it :D
13:00 This is why I use anyhow for my binary and thiserror for my lib, but I guess propagating unit type also works if you don't want to deal with dependencies, anyhow just enable some easier syntax.
@@nanoqsh anyhow is basically Box you use it in the same way, but anyhow::Error is a narrow pointer instead of a wide pointer, which is 16 bytes, which saves 8 bytes per error, or half the size. So you are trading off some additional overhead with an additional pointer indirection with anyhow::Error, for a cheaper return type. The idea being, that if you are on the unhappy path of an error, you probably care less about performance than if you are on the happy path and can benefit from a smaller return type.
01:36:41 : Honestly, Rust has a pretty clear vision, and it adheres to it very faithfully. They are also very responsible about backwards compatibility. These things, and long discussions, certainly cause friction, but it has served the language very well, and its value proposition (high level with no gc, among a handful of great design decisions) right now is unbeatable. Everyone wants better ergonomics, and they are striving for it. 2024 edition will probably be a pretty good year as most Trait design inconsistencies along with async will be pretty much ironed out. You are a seasoned developer, you have your opinions of course, especially for one-man projects, but it is kind of an unserious position to say that they focus on safety "too much". Also, if safety was above everything, Rust wouldn't exist, as Java, C#, Go are perfectly suited for most any kind of project, and are memory safe.
I have a background in C, and in an ML (Standard ML of New Jersey) but not C++ nor specifically Haskell. I found Rust to be very nice. It's true that if you don't have any ML exposure a real type system might be a surprise after being assured that C ("A strong type system... weakly checked") has a type system. And it's certainly true that if you've only ever worked with a GC language it's a nasty shock that it's your job to ensure things are created and destroyed appropriately, although unlike C or C++ the Rust compiler is going to check what you did can work and not just shrug its shoulders. I don't see much need for C++ background. I guess Rust generics look a bit like C++ templates? But that's very superficial. All of C++ is duck types with minimal or zero checks. If I write a Rust trait which is nonsense it won't compile, if I write a C++ concept which is nonsense I just get nonsense output from the compiler. The compiler diagnostics are enormously helpful to a newbie. For example I contributed the one where if you try to compare a byte (u8) against a constant char such as 'Q' the diagnostic says well, that's a char, not a u8, maybe try b'Q' that would work. And it checks you wrote an ASCII character before giving this advice since it won't work for non-ASCII.
@@TsodingDaily 1) That's it though, they're just concepts there. There's a big difference in talking about them in a qualitative sense in your program, and actually reaping its benefits by being able to concretely inculcate them into your program's design. 2) I don't think they're a C++ thing anyways. The talks of ownership and lifetimes might have originated in C++, but I've literally heard people talking about ownerships and lifetimes of variables in all languages, including JavaScript and Python. 3) Regardless, you don't need to know C++ for this. It won't help you learn ownership and lifetimes anyways. They're a very loose concept in C++. I've coded in it for years but never gave it a heavy thought, beyond what you would normally do to just ensure your variables aren't dangling and tracing your control flow mentally. Rust IMO does a good enough job to introducing you to these concepts (and then bashing your head in them over and over).
I feel like Zig really has the potential to be where Rust is now. The complaints about beurocracy and "vision" are things I've also noticed here and there when using Rust. The main problem I have with Zig is really just its age and underdeveloped ecosystem/lack of overall prevalence. Once its tooling is at the level expected of a "modern" language, akin to Rust, I really think that the broader development community will run with it.
Yeb idea of Zig to mix both compile time and run time to form metaprogramming is the big brain move for me, and the creator seem like a thoughtful person as often he want completely remove any trace of C/C++ in his language for the sake of sanity. And he also got strong point to bring self-host compiler too, hope some day Zig can mature and directly compete against Rust. And also the new Vlang is also worth checking too, as i feel V is how Go suppose to be, not our current script language pretend to be C
I've done zig and rust. Like them both. Zig is just awesome with how simple it is. Its like go in that way, but minus the bad decisions that go made. I have been able to get to a level in zig in a few weeks that took me months to do in rust, and that's even with the lack of good documentation. Traits in rust are such a cool idea, but I've found that in my real projects I rarely have a reason to make my own.
I think you underestimate how many people come to Rust from languages like Python, Ruby, etc., having already decided to avoid existing languages that don't ensure memory safety, because they want other benefits such as the language, toolchain, and ecosystem focusing on easy builds, fearless upgrades, and a type system that gets us so much closer to "if it builds, it works, and I won't get a call at 3AM on a Saturday because the server went down". Unless I was very much mistaken last time I looked into it, Zig is a "better C" in that, when developer ergonomics, low-level ability, and memory-safety enforcement come into conflict, memory-safety enforcement loses. (Hell, if I didn't use Rust to write code I can easily wrap in a loadable module for said scripting languages so I never need to maintain multiple rewrites again, I'd want "low-level ability" to lose that trade-off even more.)
Every time I see a tutorial on Rust, I'm thinging "what an amazing language." Every time I see someone try to implement something in Rust, I'm thinging "what a horrible language."
@@vladlu6362 by its freaking boilerplate and inconvenient the language is, it's like horrible C++ morph with bunch of try catch for absolutely no reason but to torture everyone. I rather use Zig or V for its neat and DX friendly
46:05 - I feel comfortable in Rust but that's because I came to it from the other direction. I started with Logic Circuits, built up to ASM (GB homebrew), and then to how a modern OS handles things like their stack, memory allocation, etc. I get the point you're trying to make, but I'd argue anyone that actually understands how a computer works will find Rust not too challenging, the only time I personally get stuck is when I can't understand what the Rust abstraction 'would compile to' for a lack of a better word.
Rust is complicated. It objectively has a steep learning curve even for someone that knows a different how computers worked but they started with java from unis or people without formal education. I understand the compiler helps you with the correct part but writing correct code becomes challenging the language is so complicated. You are more stuck with the compiler than you topically should. That's make it hard for majority of people to daily drive it. This has been my experience. I'm loving go cuz it's literally so simple and it's massively enough for most of the real world work that's not pure system programming or rewriting terminals. Trade off is so worth it. Although I'm planning to recreationally start rust programming again once I find a new job.
Rust is EXTREMELY newbie hostile when it comes to getting started, but i am much more comfortable to let new people work in Rust codebases than in C codebases.
46:05 sure i didnt start out that confident, but ive never touched c or c++ in my life (i do have experience with f# , an ml language though) or any other low level language, and yet rust makes perfect sense to me. it really does let me understand low level code despite being very much in the high level language mindset
Can you elaborate on this, please? I am interested because after Rust, something draws me to explore functional programming and there's Haskell suggested from many points of view especially for a Rustaceans. But the best educational series for a functional programming is done in OCaml. I got interested in your statement and would like to hear more :) Why do you bother with OCaml at all?
45:07 Where is Rust advertised as noob-friendly? I have not once ever seen Rust described as a noob-friendly language. I also disagree that you need to know C/++ to learn Rust effectively, although it definitely helps to come from a background of systems programming. Sure not having any background would mean a longer time spent learning and practicing the language, but what did you expect? Rust is different language with its own learning curve. I could argue the same thing for example with C++ being an incredibly hard language to learn if you don't already have a background in C or other systems languages.
1:30 back in February this year, the golang team decided to not introduce any telemetry, chill guys. And it was originally an attempt to verify if the golang-community is not blatently lying about how they use the language, in all of the annual Go-Developer-Surveys that the go-team has been using through the years for getting feedback. As a metaphor, the Go-team simply wanted to install some video-cameras in their store, instead of relying on spoken evidence. But all the personell in that store started protesting that having video-cameras would violate their human rights.
damn! Rust forces you to write good (or rather correct) code I suppose, that's awesome. Kinda funny how it turned out more go-ish because of the map_errs lol
For what purpose? If you're learning - don't worry so much, pick a language and learn it. Never stop learning and don't worry about which language is 'the best'. Just code and have fun!
@@enclave2k1 I have some experience coding with garbage collected languages and small examples in C but never a big project( with dependencies) so I wanted a language with more convenient build than C
@@salim444 just stick with golang: it's performant, easy to learn and you can be very productive with it, thanks to it's rich ecosystem. learning about goroutines and channels will help you grasp the entire concept of async programming, which gives a feeling that I'm actually a good programmer! 🙂👍 And if you wouldn't feel satisfied with Golang, you can easily move on to something else, while after Rust, C++ or Zig you will feel like you've invested too much and got very little in profits from learning it.
@@pompomdomdom Well, it's a language that took design decisions from golang, rust, kotlin... Has a good std lib, is still very much in alpha, but yes it does compile to C, but it is planned to do native binaries without the C backend.
Hello, I'm a newbie programmer and hearing about Go doing telemetry is very intimidating to me. I'm curious as to how a person can tell if a program is collecting data and sending it somewhere for example how did you know that Go does this and what types of data does it collect? I'm genuinely curious because I don't have any idea about this
@@NathanHedglin well he is Linux guy of course telemetry is danger move for him. Not like any web already has cookie and collect all browser information in it
03:30 are rust threads real threads (each thread has own process) and go threads not real threads (1 process runs many threads not at once)? edit: see 35:20
I get what you're trying to say, but to make it clear for other newbies, a process has multiple threads, not the other way around. A single Rust process has one thread by default - main thread. Then, if you use thread::spawn function, you can launch more threads (the correct term might be each thread is a kernel/hardware thread). In Go, the main thread itself might run multiple goroutines (green threads) concurrently (notice I didn't say simultaneously, because two threads may execute in parallel, but anything inside a thread is always executed in sequence. It's just that Go's main thread quickly switches between these goroutines by executing each one little by little).
despite working for some years, I still cant read document of std libs of any language or even pkg go dev. Just feel overwhelmed by the long descriptions maybe I have to improve my English first lol. That's probably why I have a hard time learning rust and go.
Of course it worked at 1st try after you get it to compile, because it forces you to take everything into account. Yes, it's annoying, but it just works 😊...
why dont you use LSP ? I mean it would save you so much headache when you just type and then have to go through compilation errors ....why do you feel like fixing your own "typo in var name" minutes after you did it is better than simple red line from lsp? Then when you were writing that turbofish type, you could simple "hover over" those tpc structs to see their types. At least have a toggle bind to enable it in situations like this no?
@@masterchief1520 because he said he s doing it to piss me off, i m just going with the meme 😅 imagine getting pissed of by something you see on fcking screen ...lol, just turn it off
@@neociber24 True, just "home"-"less" because its parents don't want it to develop on its own, so the dudes with the candy come and try to snack it ...
Of course rust is more concise than Go, Go is the least concise language I've ever seen. Want to do literally anything? Here's 7 for loops and 10 if err != nil checks. God i hate it so much
tbqh the justification you gave for not using Go sounds like the slippery slope fallacy. it reminds me of that episode of spongebob where the mob is riling themselves up and one of them goes "He poisoned our water supply, burned our crops and delivered a plague unto our houses!" and the protestors respond "He did!?!?" and the original guy guys "No, but are we going to wait around till he does?!" Same feeling.
Comparing baseless accusations from a children's cartoon with systematic unethical practices of large IT companies (and especially Google) that we witnessed many times over decades lol
@@TsodingDaily Oh I don't doubt that Google will try something scummy with Go again. I agree with you there. My point was that nothing has happened yet. We only have an *idea* that it would get worse later because Google. At the moment (afaik) Go has opt in telemetry, which I think is fine, and is definitely not worth jumping ship over imo.
@@VivekYadav-ds8oz I know how to do it but do you like not check the boundaries? I've actually straight up corrupted the return address on the stack and got segfault on return than stack smashing. Edit: which I guess is stack smashing, but harder to debug than when you at least get stack smashing detected.
Base BrainFuck, no, but extensions are always possible. I had to stop myself from taking it too far, but I ended up adding functions to my interpreter. Might be worth some time and effort to have a standard library that provides for such things.
@@anon_y_mousse Brainfuck Ultra: Shalt not be presented visually. Instead only allows touching/punching paper like braille when developing. And solely use MASERs in userland for interaction ("Material" design? Lesssgo!). If debugging is necessary an equivalent to Morse-code shall be thy only way, but uno-reverse: by the length of pauses. Thou shalt throw thyself in the mud now. Hail BFU!
Go = Google tracks you
Rust = Rust foundation sues you
It's a lose-lose situation
@@_jam1eK don't read bogus jokes on the Internet
Just use C
@@zweitekonto9654how do I exit Vim tho
@@_jam1eK by creating your own programming language.
@@Anonymous-XYthat's what I'm doing.
Thank you for editing and uploading these to UA-cam too. Helps folks like me a lot.
Love the content! I am currently learning Go, and Rust looks like a very interesting language as well.
I enjoy just listening to your thought process while you code, even though I don't understand most of it :D
13:00 This is why I use anyhow for my binary and thiserror for my lib, but I guess propagating unit type also works if you don't want to deal with dependencies, anyhow just enable some easier syntax.
This is too bloated in this case. If you want a generic error you can use Box
@@nanoqsh anyhow is basically Box you use it in the same way, but anyhow::Error is a narrow pointer instead of a wide pointer, which is 16 bytes, which saves 8 bytes per error, or half the size.
So you are trading off some additional overhead with an additional pointer indirection with anyhow::Error, for a cheaper return type. The idea being, that if you are on the unhappy path of an error, you probably care less about performance than if you are on the happy path and can benefit from a smaller return type.
@@foxwhite25Excellent insight (new to me). Thanks for passing that on.
01:36:41 : Honestly, Rust has a pretty clear vision, and it adheres to it very faithfully. They are also very responsible about backwards compatibility. These things, and long discussions, certainly cause friction, but it has served the language very well, and its value proposition (high level with no gc, among a handful of great design decisions) right now is unbeatable.
Everyone wants better ergonomics, and they are striving for it. 2024 edition will probably be a pretty good year as most Trait design inconsistencies along with async will be pretty much ironed out. You are a seasoned developer, you have your opinions of course, especially for one-man projects, but it is kind of an unserious position to say that they focus on safety "too much". Also, if safety was above everything, Rust wouldn't exist, as Java, C#, Go are perfectly suited for most any kind of project, and are memory safe.
I have a background in C, and in an ML (Standard ML of New Jersey) but not C++ nor specifically Haskell. I found Rust to be very nice. It's true that if you don't have any ML exposure a real type system might be a surprise after being assured that C ("A strong type system... weakly checked") has a type system. And it's certainly true that if you've only ever worked with a GC language it's a nasty shock that it's your job to ensure things are created and destroyed appropriately, although unlike C or C++ the Rust compiler is going to check what you did can work and not just shrug its shoulders.
I don't see much need for C++ background. I guess Rust generics look a bit like C++ templates? But that's very superficial. All of C++ is duck types with minimal or zero checks. If I write a Rust trait which is nonsense it won't compile, if I write a C++ concept which is nonsense I just get nonsense output from the compiler.
The compiler diagnostics are enormously helpful to a newbie. For example I contributed the one where if you try to compare a byte (u8) against a constant char such as 'Q' the diagnostic says well, that's a char, not a u8, maybe try b'Q' that would work. And it checks you wrote an ASCII character before giving this advice since it won't work for non-ASCII.
Ownership and lifetime are literally C++ concepts. You won't believe how much Rust is just a logical continuation of C++.
@@TsodingDaily 1) That's it though, they're just concepts there. There's a big difference in talking about them in a qualitative sense in your program, and actually reaping its benefits by being able to concretely inculcate them into your program's design.
2) I don't think they're a C++ thing anyways. The talks of ownership and lifetimes might have originated in C++, but I've literally heard people talking about ownerships and lifetimes of variables in all languages, including JavaScript and Python.
3) Regardless, you don't need to know C++ for this. It won't help you learn ownership and lifetimes anyways. They're a very loose concept in C++. I've coded in it for years but never gave it a heavy thought, beyond what you would normally do to just ensure your variables aren't dangling and tracing your control flow mentally. Rust IMO does a good enough job to introducing you to these concepts (and then bashing your head in them over and over).
I feel like Zig really has the potential to be where Rust is now. The complaints about beurocracy and "vision" are things I've also noticed here and there when using Rust. The main problem I have with Zig is really just its age and underdeveloped ecosystem/lack of overall prevalence. Once its tooling is at the level expected of a "modern" language, akin to Rust, I really think that the broader development community will run with it.
Yeb idea of Zig to mix both compile time and run time to form metaprogramming is the big brain move for me, and the creator seem like a thoughtful person as often he want completely remove any trace of C/C++ in his language for the sake of sanity. And he also got strong point to bring self-host compiler too, hope some day Zig can mature and directly compete against Rust. And also the new Vlang is also worth checking too, as i feel V is how Go suppose to be, not our current script language pretend to be C
I just don't think zig will reach as big of a public as rust, just because it's not as ergonomic for the general case.
I've done zig and rust. Like them both. Zig is just awesome with how simple it is. Its like go in that way, but minus the bad decisions that go made. I have been able to get to a level in zig in a few weeks that took me months to do in rust, and that's even with the lack of good documentation.
Traits in rust are such a cool idea, but I've found that in my real projects I rarely have a reason to make my own.
@@calder-tyTraits are mainly for libraries, applications should just derive/implement them.
I think you underestimate how many people come to Rust from languages like Python, Ruby, etc., having already decided to avoid existing languages that don't ensure memory safety, because they want other benefits such as the language, toolchain, and ecosystem focusing on easy builds, fearless upgrades, and a type system that gets us so much closer to "if it builds, it works, and I won't get a call at 3AM on a Saturday because the server went down".
Unless I was very much mistaken last time I looked into it, Zig is a "better C" in that, when developer ergonomics, low-level ability, and memory-safety enforcement come into conflict, memory-safety enforcement loses. (Hell, if I didn't use Rust to write code I can easily wrap in a loadable module for said scripting languages so I never need to maintain multiple rewrites again, I'd want "low-level ability" to lose that trade-off even more.)
Every time I see a tutorial on Rust, I'm thinging "what an amazing language." Every time I see someone try to implement something in Rust, I'm thinging "what a horrible language."
@@alexanderkalashnikov2721 you can do it just by cloning the TcpStream, or am I missing something...?
What makes it horrible?
@@vladlu6362 For me it's the overuse of opaque abstractions. I much prefer C, or a very restricted C++. When I write C, I know what's going on.
@@vladlu6362 by its freaking boilerplate and inconvenient the language is, it's like horrible C++ morph with bunch of try catch for absolutely no reason but to torture everyone. I rather use Zig or V for its neat and DX friendly
Horrible coder not a language 😊
46:05 - I feel comfortable in Rust but that's because I came to it from the other direction. I started with Logic Circuits, built up to ASM (GB homebrew), and then to how a modern OS handles things like their stack, memory allocation, etc. I get the point you're trying to make, but I'd argue anyone that actually understands how a computer works will find Rust not too challenging, the only time I personally get stuck is when I can't understand what the Rust abstraction 'would compile to' for a lack of a better word.
Rust is complicated. It objectively has a steep learning curve even for someone that knows a different how computers worked but they started with java from unis or people without formal education. I understand the compiler helps you with the correct part but writing correct code becomes challenging the language is so complicated. You are more stuck with the compiler than you topically should. That's make it hard for majority of people to daily drive it. This has been my experience. I'm loving go cuz it's literally so simple and it's massively enough for most of the real world work that's not pure system programming or rewriting terminals.
Trade off is so worth it.
Although I'm planning to recreationally start rust programming again once I find a new job.
Nobody:
Me: f*ck sleep, Imma watch this whole sh*t right now
Don’t do that, sleeping important
replicating the Go sensitive function in Rust is as simple as taking an impl Error as argument, no need to deal with generics there.
fn(impl Trait) is syntactic sugar for fn(T)
Rust is EXTREMELY newbie hostile when it comes to getting started, but i am much more comfortable to let new people work in Rust codebases than in C codebases.
The problem with newbie friendly programming languages is that the language has to account for new programmers and by doing that you get Javascript
Right, maybe user-railroading is the better way to describe it
The solution here is simple: newbies don't touch C codebases, and they don't touch Rust either because it would accomplish nothing for them
@@Leonhart_93 such a bad take but ok
Will you rewrite this code using Tokio's async runtime to work alternatively to Go?
1:06:54 the beatboxing is kinda good ngl
OCCAM was pretty thread-safe and ergonomic because of channels usage in language syntax.
46:05 sure i didnt start out that confident, but ive never touched c or c++ in my life (i do have experience with f# , an ml language though) or any other low level language, and yet rust makes perfect sense to me. it really does let me understand low level code despite being very much in the high level language mindset
For multithreading Go is handier.
Anything that can be written in rust will be written in rust
No
Great stuff as usual. Thx!!
"I want to do stream of brainf$ck"
next stream: "C compiler in brainf$ck"
Rust was my gateway to OCaml...
Can you elaborate on this, please? I am interested because after Rust, something draws me to explore functional programming and there's Haskell suggested from many points of view especially for a Rustaceans. But the best educational series for a functional programming is done in OCaml. I got interested in your statement and would like to hear more :) Why do you bother with OCaml at all?
@@frantisek_hecaOCaml is Rust's parent language (Rust was directly inspired by, and originally written in, OCaml)
Then rewrite it in Zig and finally in C
45:07 Where is Rust advertised as noob-friendly? I have not once ever seen Rust described as a noob-friendly language. I also disagree that you need to know C/++ to learn Rust effectively, although it definitely helps to come from a background of systems programming. Sure not having any background would mean a longer time spent learning and practicing the language, but what did you expect? Rust is different language with its own learning curve. I could argue the same thing for example with C++ being an incredibly hard language to learn if you don't already have a background in C or other systems languages.
To drop something you can't call something.drop(), you need to call drop(something)
1:30 back in February this year, the golang team decided to not introduce any telemetry, chill guys.
And it was originally an attempt to verify if the golang-community is not blatently lying about how they use the language, in all of the annual Go-Developer-Surveys that the go-team has been using through the years for getting feedback. As a metaphor, the Go-team simply wanted to install some video-cameras in their store, instead of relying on spoken evidence. But all the personell in that store started protesting that having video-cameras would violate their human rights.
damn! Rust forces you to write good (or rather correct) code I suppose, that's awesome. Kinda funny how it turned out more go-ish because of the map_errs lol
Lol, my guy can do mongolian throat on a beat. He can do no wrong.
Stackles Rust co-routines even lighter than GO!
That React shade in the beginning ❤
Hi tsoding, do you think Zig is a good alternative to C? I would like to use rust but it is very intimidating and Zig seems more flexible for me
I'll answer for him and say no.
I'll answer for him and say yes.
For what purpose?
If you're learning - don't worry so much, pick a language and learn it.
Never stop learning and don't worry about which language is 'the best'.
Just code and have fun!
@@enclave2k1 I have some experience coding with garbage collected languages and small examples in C but never a big project( with dependencies) so I wanted a language with more convenient build than C
@@salim444 just stick with golang: it's performant, easy to learn and you can be very productive with it, thanks to it's rich ecosystem. learning about goroutines and channels will help you grasp the entire concept of async programming, which gives a feeling that I'm actually a good programmer! 🙂👍 And if you wouldn't feel satisfied with Golang, you can easily move on to something else, while after Rust, C++ or Zig you will feel like you've invested too much and got very little in profits from learning it.
This chat is rusty!
Microsoft created dotnet many years ago and still there are no telemetry.🤔 Thats strange considering the fact that Windows full of telemetry.
who say it don't have telemetry, beside micro$hit already collect enough data (cough cough Vscode, Window, Azure, Visual Studio, typescript)
Now do Vlang
@@pompomdomdom Well, it's a language that took design decisions from golang, rust, kotlin... Has a good std lib, is still very much in alpha, but yes it does compile to C, but it is planned to do native binaries without the C backend.
Hello, I'm a newbie programmer and hearing about Go doing telemetry is very intimidating to me. I'm curious as to how a person can tell if a program is collecting data and sending it somewhere for example how did you know that Go does this and what types of data does it collect? I'm genuinely curious because I don't have any idea about this
I mean they just publicly announce that www.theregister.com/2023/02/10/googles_go_programming_language_telemetry_debate/
@@TsodingDailyI think I don't like go anymore 😕. Well, C it's the only way
@@TsodingDailyThats old news and a proposal. It is opt-in
I wouldn't worry about it. VSCode, Windows etc all have telemetry.
@@NathanHedglin well he is Linux guy of course telemetry is danger move for him. Not like any web already has cookie and collect all browser information in it
a good explanation,
the Author is fit.
Oh so you are that versatile in languages, at first I thought that you were C or C++ purist.
I feel like I just watched a 15 round fight with a compiler
1:37:47 > can we optimize both safety and ergonomics
Foreshadowing Swift changing his life
Such good video! ^^
03:30 are rust threads real threads (each thread has own process) and go threads not real threads (1 process runs many threads not at once)?
edit: see 35:20
Yeah, I think I mentioned it later on. The result def is not fully one-to-one.
I get what you're trying to say, but to make it clear for other newbies, a process has multiple threads, not the other way around. A single Rust process has one thread by default - main thread. Then, if you use thread::spawn function, you can launch more threads (the correct term might be each thread is a kernel/hardware thread). In Go, the main thread itself might run multiple goroutines (green threads) concurrently (notice I didn't say simultaneously, because two threads may execute in parallel, but anything inside a thread is always executed in sequence. It's just that Go's main thread quickly switches between these goroutines by executing each one little by little).
@@VivekYadav-ds8ozit's sadly not in the standard library but Tokio has green threads
tsoding, are you planning to do paper/scientific - based streams again?
despite working for some years, I still cant read document of std libs of any language or even pkg go dev. Just feel overwhelmed by the long descriptions maybe I have to improve my English first lol. That's probably why I have a hard time learning rust and go.
Fun fact, escape sequences are valid utf-8
Wait, lol, ninjad by the video
Of course it worked at 1st try after you get it to compile, because it forces you to take everything into account. Yes, it's annoying, but it just works 😊...
Let's make it rust disease
A bit off topic, look at the camera at 52:16. Random black dots appearing, what is that
Rust is a great language but comes at the cost of time investments and the willingness to do your homework :)
44:03 its just hillarious😂😂
Can't wait until Rust adds telemetry!
What is this software used for zooming here?
Good reason not to use go, but i don’t think rust is the better idea
why dont you use LSP ? I mean it would save you so much headache when you just type and then have to go through compilation errors ....why do you feel like fixing your own "typo in var name" minutes after you did it is better than simple red line from lsp? Then when you were writing that turbofish type, you could simple "hover over" those tpc structs to see their types. At least have a toggle bind to enable it in situations like this no?
To piss you off.
@@TsodingDaily genius, coding and pissing me off at the same time ....*claps slowly*
@@11WicToR11damn why you pissed😂 bro 😂
@@masterchief1520 because he said he s doing it to piss me off, i m just going with the meme 😅 imagine getting pissed of by something you see on fcking screen ...lol, just turn it off
Now - redo it in zig
52:23 I’m almost sure the Go version is writing asynchronously in a separate Go routine. If I’m not mistaken all Go IOs are asynchronous by default
Please consider whole project in Rust. Thanks in advance 🎉
Microsoft is adopting more and more Rust every month.
Rust is not an orphan
@@neociber24 True, just "home"-"less" because its parents don't want it to develop on its own, so the dudes with the candy come and try to snack it ...
Of course rust is more concise than Go, Go is the least concise language I've ever seen. Want to do literally anything? Here's 7 for loops and 10 if err != nil checks. God i hate it so much
good video
How many progrramming languages You know?
How to learn all of this languages
twitter.com/tsoding/status/1560661602931601409
It's been a while since I watched a Tsoding video.
So pleased to see that the porn folder is getting larger.
tbqh the justification you gave for not using Go sounds like the slippery slope fallacy. it reminds me of that episode of spongebob where the mob is riling themselves up and one of them goes "He poisoned our water supply, burned our crops and delivered a plague unto our houses!" and the protestors respond "He did!?!?" and the original guy guys "No, but are we going to wait around till he does?!" Same feeling.
Comparing baseless accusations from a children's cartoon with systematic unethical practices of large IT companies (and especially Google) that we witnessed many times over decades lol
@@TsodingDaily Oh I don't doubt that Google will try something scummy with Go again. I agree with you there. My point was that nothing has happened yet. We only have an *idea* that it would get worse later because Google. At the moment (afaik) Go has opt in telemetry, which I think is fine, and is definitely not worth jumping ship over imo.
I love how whenever there is a Rust video the comments are always filled with people defending it and not able to just hear the language criticized
Are there any languages similar to Rust that you like? Do you like Jai, for example?
😂
his IDE and keyboard skill is magic.
Next challenge for this genius is to rewrite human language in C 🤓
Based rust
I even wrote my Java in Rust. So what? It worked and a little faster than in Java. But I spent a little more time.
Re write it in Porth
Nudging is the name of the strategy. To whom who is reading this comment with admin role, HELLno.
C is a lot more newbie friendly
more like easy newbie suicidal, as SEGFAULT and Stack smashing are common enough
@@hailuong9295I get segfaults, but how are you getting stack smashing on accident?
@@VojtěchJavora Buffer overflows?
@@VivekYadav-ds8oz I know how to do it but do you like not check the boundaries? I've actually straight up corrupted the return address on the stack and got segfault on return than stack smashing.
Edit: which I guess is stack smashing, but harder to debug than when you at least get stack smashing detected.
6:50 holy mother of a slippery slope fallacy
Yeah, true. But I just have little trust towards Google.
@@TsodingDaily That's fair
It's only fallacious if there's no inductive strength to it, which is not the case, companies do such all the time.
Unfortunately, the slippery slope is real.
It's not a slippery slope fallacy when they did that with Google Chrome. It's using past behavior to predict future actions
❤
at this 34:04 I started to know why I prefer Go over Rust 😊
you are flexing too hard bro
50:32 does brainfuck have networking?
Somebody did an implementation of BF that can do syscalls (new syntax), I guess that's the lowest you can go.
Base BrainFuck, no, but extensions are always possible. I had to stop myself from taking it too far, but I ended up adding functions to my interpreter. Might be worth some time and effort to have a standard library that provides for such things.
@@anon_y_mousse may the god bless your damned soul 😔
@@anon_y_mousse Brainfuck Ultra: Shalt not be presented visually. Instead only allows touching/punching paper like braille when developing. And solely use MASERs in userland for interaction ("Material" design? Lesssgo!). If debugging is necessary an equivalent to Morse-code shall be thy only way, but uno-reverse: by the length of pauses. Thou shalt throw thyself in the mud now. Hail BFU!
1:06:29 xD
34:31 redacting is too newliney
Muaah
Rust is literally the "So tiresome" meme
Not gonna watch this. Rust is such a waste of time.
Not gonna read this comment. It's such a waste of time.
@@peter9477 You did it and replied. :)
Your life is a waste of time
Rust is bloated
*goated
Well what do you expect from c++ clone
Do you have a girlfriend ? No ? You should....at least you should try and quit your keyboard...
Rust with all of these !#|@| shenanigans looks more like a brainf#ck than a real language
First
Next video:
I rewrote my Rust app in Zig
>rewriting in a worse language
wel done gopher