Rust Is Boring

  Рет қаралды 192,572

No Boilerplate

No Boilerplate

Күн бұрын

Today I hope to show you that Rust is ready for use in your company, in production, NOW.
❤️ If you would like to support what I do, I have set up a patreon here: / noboilerplate - Thank you!
📄 All my videos are built in compile-checked markdown, transcript sourcecode available here github.com/0at... this is also where you'll find links to everything mentioned.
🖊️ Corrections are in the pinned ERRATA comment.
🦀 Start your Rust journey here: doc.rust-lang....
🙏🏻 CREDITS & PROMO
My name is Tris Oaten and I produce fast, technical videos.
Follow me here / 0atman
Website for the show: noboilerplate.org
Come chat to me on my discord server: / discord
If you like sci-fi, I also produce a hopepunk podcast narrated by a little AI, videos written in Rust! www.losttermin...
If urban fantasy is more your thing, I also produce a podcast of wonderful modern folktales www.modemprome...
👏🏻 Special thanks to my patreon sponsors:
Affax
JC Andrever-Wright
And to all my patrons!

Пікірлер: 864
@NoBoilerplate
@NoBoilerplate Жыл бұрын
ERRATA - Rocket doesn't have a sql framework - I was thinking of using rocket with sqlx - my favourite rust sql tool which DOES compile-check against injection (and sql syntax errors, it's magic) - Discord uses Elixir, not Erlang, I guess my confusion was they use the same runtime.
@zyansheep
@zyansheep Жыл бұрын
I HATE using Rust! I'm trying to do this super niche thing using zero-copy deserialization (rkyv) to store directed graph data inside de-duplicated bump arenas (bumpalo) and on top of all that I need to deal with trait objects and a bajillion different derive and attribute procedural macros... and do you know what the worst thing about it is? There's no other language I can use that could even begin to try and do half these things as fast or as safely as rust does them 😭😭😭
@anarcus
@anarcus Жыл бұрын
​@@zyansheep so you actually hate that your use case is so hard to do right, and Rust is just the right tool for the job
@lukasloen4659
@lukasloen4659 Жыл бұрын
Google prompts translate to English and makes todo into all
@weignerg
@weignerg Жыл бұрын
#ERRATA all!()
@chern4058
@chern4058 Жыл бұрын
4:21 I could be wrong, but there are no for loops in compiled code. Only branching, jumps and infinite loops. This is one of the reasons why Rust don't have for loops I believe. While/loop and iterators just compile nicer and in fast code.
@nikluz3807
@nikluz3807 Жыл бұрын
I’m pretty sure this dude loves rust.
@sarcasticdna
@sarcasticdna Жыл бұрын
What are talking dude, he is the ambassador of rust Lang
@kintrix007
@kintrix007 Жыл бұрын
What makes you think that?
@allesarfint
@allesarfint Жыл бұрын
I don't know man, he feels more like a PHP kind of guy.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Garbage game for trash people
@NoBoilerplate
@NoBoilerplate Жыл бұрын
If I'm the ambassador, fasterthanli.me is the KING
@frozensplosion
@frozensplosion Жыл бұрын
I swear man, every single time I see a video of yours I have to run to my computer and start learning more about Rust. It’s just ridiculous
@penguindrummaster
@penguindrummaster Жыл бұрын
You and me both. If my backlog at work wasn't so deep, I'd be rewriting our applications in Rust in my free time. Until then, I continue learning in the hopes that one day I can make the switch
@frozensplosion
@frozensplosion Жыл бұрын
@@penguindrummaster one day at a time
@tudbut
@tudbut Жыл бұрын
I KNOW RIGHT?
@smoq_4210
@smoq_4210 Жыл бұрын
Your videos are just too good, I started learning rust thanks to you ahah
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Thank you so much!
@precisionchoker
@precisionchoker Жыл бұрын
_"There are islands of Mac devices, but Linux is the ocean!_ _There are clouds of windows networks but Linux is the sky"_ - No Boilerplate 2022 🎶🎵☺️
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Friends don't tell anyone but I'm literally paraphrasing Audioslave here kzbin.info/www/bejne/b4uncoydZp5prpo
@BigMTBrain
@BigMTBrain Жыл бұрын
@@NoBoilerplate Still, different and memorable enough that you are on your way to being THE tech quote laureate. I think this will be quoted often; hopefully, with attribution. Now, do one for Rust!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@BigMTBrain Thank you! My favourite so far is "[these rust projects] are not abandoned, they're DONE"
@mskiptr
@mskiptr Жыл бұрын
Well, you can still come by an occasional BSD droplet every now and then
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@mskiptr Ah that's true. Routers tend to be some flavour of BSD
@YoshikoJanai
@YoshikoJanai Жыл бұрын
I'm an Embedded Software Dev accustom to C to the extent that I managed to trip myself up on a couple of Java coding interviews. I remember hearing about Rust a couple of years back from someone, but they weren't the best spokesman and quite aggressively annoying about it. I ended up avoiding it out of spite and because I didn't think that any language could be as performant as C (or C++, but I don't wanna talk about that language). Your videos are excellent, concise, and extremely convincing. Your WASM sub-series even has me interested in attempting to use egui for a Native/Web app. If I can ever get my hands on a microcontroller, I'm probably at the point where I can say that I'd be willing to give Embedded Rust a try over Embedded C. Thank you for your informative and entertaining videos on the subject! I always look forward to your uploads.
@orbitalair2103
@orbitalair2103 Жыл бұрын
Rust appears to be well suited for writing stuff for stm32 or arm7,8,9. Not so much arduino tho. Im very interested in rust on imx8, and kudos to the guys who wrote the startup boot codes for arm and stuff. I got a teensy4 loaded and blinking in just a few minutes. Now if only esp-if would port its garbage self to rust. why is esp-if the hardest dam kit to use with a chip?
@YoshikoJanai
@YoshikoJanai Жыл бұрын
@@orbitalair2103 Huh, I thought it'd be the other way around. Means I might be able to dig out the STM32 Discovery Board I used in University. Any toolchain has to be better than STMCube. 15 GB...
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Rust embedded is RIGHT around the corner, I'm so excited to do that - though I build myself a Telegram pager using arduino and SPI, it was a real headache doing it in C.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I couldn't be happier - This is one of the reasons I'm so pumped about Rust - it's a universal language for every layer of the stack - I (a web dev) can build low-level code, and you can get cracking with wasm. What a world!
@kayakMike1000
@kayakMike1000 Жыл бұрын
I recommend trying out the TEENSY 4.1. as far as MCU go, it's a BEAST
@elliotwilliams7523
@elliotwilliams7523 Жыл бұрын
These videos…. So great... you’re making me want to rewrite my whole PHP backend in rust when all I can do is print formatted strings.
@elliotwilliams7523
@elliotwilliams7523 Жыл бұрын
Should I 😬😬???
@joezuu
@joezuu Жыл бұрын
@@elliotwilliams7523 Do it
@NoBoilerplate
@NoBoilerplate Жыл бұрын
You know where to start friend doc.rust-lang.org/stable/book/
@matzibeater
@matzibeater Жыл бұрын
@@elliotwilliams7523 If you want some more convincing: At work we have a backend written in PHP with the Laravel framework with a basic nginx and postgres stack. With that, most of our more basic endpoints take somewhere about 50ms per request and despite running multiple processes of PHP for concurrency and PHP 8's new JIT, the whole thing refuses to run past a few hundred requests per second, even with enabling keepalive in the benchmark tool, and just nginx+PHP already consume about 500MB of memory while *idle*. Since I wanted to test out some Rust web frameworks anyways, I decided to rewrite a little part of our API in one of them as a PoC. After a few short experiments I eventually settled on Axum, with SeaORM for the database access. The whole rewrite was a breeze, probably most of it was just translating the database migrations, after that SeaORM just generates the models for you and all that's left is copying a starter from the axum examples and writing the logic for the middlewares and handlers. Since I was only using some of the simple endpoints that was barely any work at all. Once rust-analyzer stopped complaining, the whole thing compiled and worked flawlessly. And the performance is a different order of magnitude entirely. With keepalive, most requests complete in just 0.01ms with about 13000 req/sec, and even without keepalive its about 0.015ms at 8100 req/sec, and the variance of those numbers is also a lot smaller than for PHP. To top it off, the Rust version peaked at just ~43MB of memory under *full load*.
@shiftRightOnce
@shiftRightOnce Жыл бұрын
The rust foundation should get you on board as marketing personnel
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I'd give ad revenue from my channel to them if they accepted private donations! I'll just have to continue being the unofficial propaganda department :-D
@Souljacker7
@Souljacker7 Жыл бұрын
@@NoBoilerplate Curious to know if that statement stands after the recent events!
@nathanoy_
@nathanoy_ Жыл бұрын
​@@Souljacker7 same thought. I think its the biggest pr disasters in the programming space so far. (for the unknowing and curious, search "Rust Trademark Policy Draft")
@zanejacobs8460
@zanejacobs8460 Жыл бұрын
I started using Rust earlier this year, I think because I saw one of your videos. It has seriously brought my love of programming to a whole new level.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I totally feel the same way, it's like a renaissance!
@joranmulderij
@joranmulderij Жыл бұрын
I like how every entry in the speed list is 2x slower that the one before, but python takes two steps.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Don't get me *started* on python. I'm being generous by not including concurrent code - python's 100s of times slower in that, due to the GIL!
@Kiaulen
@Kiaulen Жыл бұрын
Just goes to show how important those ergonomics are. Python beats almost everyone in that category, which is what sells it.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@Kiaulen what do you mean "beats"?
@Duconi
@Duconi Жыл бұрын
@@NoBoilerplate Probably that your nose bleeds after using it. XP
@jaedson-barbosa
@jaedson-barbosa Жыл бұрын
@@Kiaulen 🤣 even Javascript is more ergonomic than Python.
@KillianTattan
@KillianTattan Жыл бұрын
Love your enthusiasm and clear explanations of Rust. I’ve been learning it myself for projects and work. It’d be great to see how it’s used in scientific computing and time series analysis - I haven’t seen any other videos or channels who focus on this field
@NoBoilerplate
@NoBoilerplate Жыл бұрын
It's actually because that's not an area of strength for Rust. In data science, having a fat long-running runtime is an asset, not a liability. Julia's my fav language in this field.
@paullachaud1689
@paullachaud1689 7 ай бұрын
@@NoBoilerplate Can you elaborate on this? Are you using data science and scientific computing interchangeably?
@thesenamesaretaken
@thesenamesaretaken Жыл бұрын
"if you don't use Rust you're missing out on a C change" I saw what you did there
@NoBoilerplate
@NoBoilerplate Жыл бұрын
oh nooooooooooooooo I didn't realise that when I said it XD
@quadrannilator
@quadrannilator Жыл бұрын
If you head out to C, your stuff is likely to get Rusted!
@LukSter18998
@LukSter18998 Жыл бұрын
@@quadrannilator arrrrr
@laughingvampire7555
@laughingvampire7555 Жыл бұрын
I love rust because now people will leave Haskell alone. Haskell is a research language and should remain as such, a place where all new ideas can be explore without fear of losing backwards compatibility, because this is a problem we still haven't fixed how to combine innovation with legacy. And Rust is the language that gets to be a curated selection of the ideas explored in Haskell so people in the industry can get that innovation without being the party poppers for innovation.
@Z-add
@Z-add Жыл бұрын
This guy is so good even Tom Hanks has decided to learn Rust, and he is an actor.
@chrissaltmarsh6777
@chrissaltmarsh6777 Жыл бұрын
C is brilliant, I love it. You do need a couple of crutches to hobble around sometimes. Rust is actually non-boring, and you don't shoot your feet.
@sploders1019
@sploders1019 Жыл бұрын
I think that’s the point. It’s boring once you learn the borrow checker because it’s difficult to write buggy code. There are many fewer adventures trying to track down segfaults, buffer overflows, etc
@chrissaltmarsh6777
@chrissaltmarsh6777 Жыл бұрын
@@sploders1019 Oh I know. I once had a gig to shift a bit of C code from an ancient VAX to an HPUX machine. The code was apparently written by a learner using the successive approximation method. It worked on the VAX. I just rewrote it, no big deal, and then spent some happy time working out just why it worked on the VAX in the first place. To do with the way the stack was built. Pure chance. With rust, those things don't happen so I can concentrate on the metal.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
This is the way
@Haiderali-qd1jy
@Haiderali-qd1jy Жыл бұрын
Man, few days ago I checked your channel and was very disappointed that you didn’t post but now I’m happy seeing you again.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
It's not you - I actually missed a deadline last week because I was not satisfied with the script for this video, it wasn't punchy enough. I like it now :-)
@mysterry2000
@mysterry2000 Жыл бұрын
@@NoBoilerplate I love your commitment to this channel! It's amazing that you chose to delay your video to ensure the quality meets your standards 👏🏻 I love seeing commitment like that and is the reason I can always appreciate every video you make, thank you! ♥️
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@mysterry2000 thank you so much 🙂
@TheNycRat
@TheNycRat Жыл бұрын
It's always a good day when No Boilerplate uploads ♥♥
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Thank you! I feel the same!
@aaronwinter7911
@aaronwinter7911 Жыл бұрын
Upfront: I love rust! However, I am not sure about the "rapid iteration cycles". While rust code executes very fast, the rust compiler is fairly slow. Meaning you will wait on the compiler a lot. I suppose it heavily depends on the project you are working on, and how many other steps you have to go through, like unit tests and such.
@theroboman727
@theroboman727 Жыл бұрын
yeah I agree that its not really about rapid iteration cycles, its more about _less_ iteration cycles, because of the confidence in your code that rust gives you through all the robustness oriented design decisions
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Here's the thing, after the first slow compile, all subsequent compiles only compile what is changed. When developing, I typically see re-compiles under 100ms. The trick is to correctly split up your project into sensible modules that the rust compiler can cache the compilation artefacts, as I understand it. I've had recent success in cutting down the INITIAL compile by using github.com/mozilla/sccache which aggressively caches build artifacts, even when clean builds are required (like in rust-analyzer) It's a two-line config: twitter.com/0atman/status/1590118756226805762
@phenanrithe
@phenanrithe Жыл бұрын
@@NoBoilerplate But is that relevant in a CI/CD chain? I'm not sure it can easily take advantage of incremental compilation when there are multiple branches to test in parallel. I think it's fine for the developer on a task and using a good test-driven approach but it will take a toll on the server.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@phenanrithe Rust CI/CD pipelines (along with many compiled languages) must be built differently to dynamically-typed languages. A package cache is ESSENTIAL to your sanity, otherwise, as you say, constant recompilation will be SO SLOW. sccache set up in CI would be LOVELY (and trivial). Our infrastructure (gh actions etc) is set up for dynamic languages by default, which is a reasonable default given what we build today. But all that is needed it to set up a few persistent cache folders or docker volumes and you're off! If you're recompiling the whole dependency tree for any action other than the first one, there's optimisation to be done - it's almost never needed.
@phenanrithe
@phenanrithe Жыл бұрын
@@NoBoilerplate That's interesting, thanks for the feedback! I've had this issue in other build contexts (HDL compilers for digital chips) which are even more demanding and offer the same incremental build capability, but we decided not to hack our pipeline to support that because it was too risky. I didn't know it was a known issue (or flow) in compiled languages but it makes sense for large projects. We also decided not to use it because sometimes it used to produce faulty results with the tools in the first place, but that's another story. 😅At least I've never had this problem with Rust, thanks to the awesome work they've done with the compiler. I bet our HDL tools were not written in Rust...
@WizardofWestmarch
@WizardofWestmarch Жыл бұрын
The Discord thing never ceases to amuse me. The Go team deciding "No matter what we are going to do a FULL HEAP SCAN every 2 minutes, even if your memory usage has not changed at all." Like... what. I know they didn't want to add parameters to their GC but that is such an insane arbitrary decision it boggles my mind.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Is it me or is it not possible to write a GC without these pauses? I feel like I've been debugging them in various languages at scale my whole career. I won't miss them!
@WizardofWestmarch
@WizardofWestmarch Жыл бұрын
@@NoBoilerplate this case they could have because they preallocated the memory one time then never altered it. The issue was go assumed something was wrong if it was never scanning the heap so automatically did it every two minutes. If it allocate everything at once and never change the data there is zero reason to collect.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@WizardofWestmarch I suppose after "extensive optimisation" Discord couldn't get the data into a good format?
@WizardofWestmarch
@WizardofWestmarch Жыл бұрын
@@NoBoilerplate wasn't about format. The GC just always ran because when they ran into the problem it was hard coded to run every two minutes at a minimum. I've heard newer versions of Go fixed this but I don't use the language so that's hearsay from me.
@mxBug
@mxBug Жыл бұрын
@@NoBoilerplate there are a couple more recent GCs for the JVM that claim to be pauseless and run completely concurrently with program code. on the other hand, it's on the JVM.
@rotteegher39
@rotteegher39 Жыл бұрын
As I only started recently the only code I've witten in rust were just a simple cli programs. You've motivated me to learn more about rust!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Great! Check out my other videos for more superpowers!
@rotteegher39
@rotteegher39 Жыл бұрын
@@NoBoilerplate After 2 month I'm still happy that I started up with Rust! It's so... you better describe this in you videos than I can describe.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@rotteegher39 I'm so pleased for you friend :-) Do come chat to the community on my discord server if you ever need advice!
@youtubepooppismo5284
@youtubepooppismo5284 Жыл бұрын
I've been (casually) studying rust for almost a year. I recently started a school project with it (frontend with rust, webserver, database bind, rabbitmq bind). It's such a pain, but I love it. When it compiles I'm sure what I'm doing will work. It's not gonna crash at the start
@NoBoilerplate
@NoBoilerplate Жыл бұрын
You're on the right track - when the pain of learning has ended, you'll just be left with a language that works basically every single time!
@ewhac
@ewhac Жыл бұрын
Not that I'm complaining (exactly), but your videos feel like they're trying to "sell" Rust to the viewer. Okay, I'm sold. But now I need to know how to _do_ things, and all my experience is with C, a bit of Go, assembly code, and talking to hardware. I think in machine terms. How do you take a mind that thinks in terms of for-loops and pointers to structs describing HW registers and retrain it to think in terms of iterators, closures, and very strict typing? How do you take a blob of bytes received from a serial link whose layout you know and interpret it without resorting to 'unsafe', or to picking it apart byte by byte? I'd like to see more of the comparisons you did in some previous videos -- "Here's how you've probably done this in JS, and here's how you do it in Rust. And the Rust version won't crash or throw exceptions..."
@bibliophile5863
@bibliophile5863 Жыл бұрын
Was looking for exactly this comment - I agree completely.
@smx75
@smx75 Жыл бұрын
The goal of the channel was, and probably still is, to sell rust to his co-workers.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Oh that was easy. I'm now on a mission to sell Rust to the world!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
let me be very clear: **My videos are mostly hype by design.** Most comments on my videos are not by people like you. **They are by total Rust newbies.** Some are even new to programming and are so excited by what they see! If you don't understand Rust, and someone explains it clearly, as I try to, it seems like magic. Rust is the #19th most popular language (redmonk.com/sogrady/2022/03/28/language-rankings-1-22/), but the scale is not linear. There is a lot of work to do if we are to not suffer the same fate as Haskell. **I want Rust to achieve escape velocity.** I see my job not as a details person, I am way under-qualified for that, I point people to fasterthanli.me for details. My focus is funnelling new people to Rust, getting them so excited they can't help but push through the learning curve, and then from there language sells itself. Back in 2020 I crashed out of learning Rust twice. First time due to multiple string types (haskell's biggest mistake made again, I thought to myself) and second due to lifetimes. At the time I had a great mentor (Shout-out to Alex!) who picked me up and helped me back on the path. Most people don't have this. They need the excitement of my hype videos to break through. I will eventually run out of hype topics and move on to slightly more detail. But first, there's a few million developers I want to send to rustup.rs :-)
@explodatedfaces
@explodatedfaces Жыл бұрын
To be clear; Rust is the most loved programming language as voted on by 6625 people with 879 of those saying they dread working with it. It had the highest percentage, but one of the lowest number of voters. This is called selection bias... especially considering the total population of people who voted on it in 2022 was only 9.27% of the voters. Any reasonable person would have excluded it from the results as biased for selection and non-response. The most loved language from that survey with substantial enough voters to consider in the final results is TypeScript with 24,752 voters (34.63% of the sampled population).
@Vespyro
@Vespyro Жыл бұрын
I now read Rust documentation in your voice, and it is oh, so soothing.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
me too!
@RinLovesYou
@RinLovesYou Жыл бұрын
Just started learning rust to replace c++, to avoid writing c++ for multiple platforms, and your channel has been the biggest inspiration to get me through the growing pains of learning to work with the borrow checker
@dmitriidemenev5258
@dmitriidemenev5258 Жыл бұрын
Honestly, if you have to fight the borrow checker, your C++ is very likely to have undefined behavior. Rust's rules are not arbitrary and its compiler is that "brutally honest" but friendly dude that says that you're wrong but helps you solve the problems. I wish you luck in your endeavor!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I dont interpret Rin's problem as fighting the borrow checker - just the same initial difficulties we all have when staring rust - unfamiliarity. Sounds like they are getting on top of it though!
@RinLovesYou
@RinLovesYou Жыл бұрын
@@NoBoilerplate yep, this exactly Just learning to work with the borrow checker, learning about how long what lives, etc There's always some growing pains, but I'm well on my way of replacing c++ with rust in our project!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@RinLovesYou That's it!
@Robin_Goodfellow
@Robin_Goodfellow Жыл бұрын
Really appreciate the real world examples. I'd been wondering recently about how Rust is getting on in actual projects. Pretty well, it turns out.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
The future's here!
@juan0338
@juan0338 Жыл бұрын
Really nice video, tho I would say Rust is maybe not yet ready for the cloud. For example, AWS's Rust SDK exists, but is a dev preview and it is not recommended to use in production. Should be ready soon tho.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Coward eh? /j Of course, I'm joking, here's the real deal: Rust packages' 0.X releases are SO stable compared to other languages, in my experience. That the compiler guarantees SO MUCH makes me very caviller about getting going with pre-1.0 software.
@jepcdd
@jepcdd Жыл бұрын
curious as to why you picked rocket over axum/actix
@theLowestPointInMyLife
@theLowestPointInMyLife Жыл бұрын
Much better Dev experience with rocket imo
@jepcdd
@jepcdd Жыл бұрын
@@theLowestPointInMyLife I'd disagree, rocket seems to be mostly unmaintained now. Axum is a much better idea for newer projects.
@theLowestPointInMyLife
@theLowestPointInMyLife Жыл бұрын
@@jepcdd I didn't know that about rocket, looked a cool project too, I'm not really keen on any of the rust servers tbh
@RobertoOrtis
@RobertoOrtis Жыл бұрын
yeah, axum and warp are better, even better than actix; their memory usage is incredible low but faster.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Friendliest experience - best for a general audience. I agree with your later response - I personally use poem-openapi for my projects. almost as fast as axium, great restfull framework.
@Blaineworld
@Blaineworld Жыл бұрын
after using Rust for a while, i’m very impressed by a lot of its features. even just the specificity and clarity of the number types compared to the other languages i’ve used (Javascript, Python, and C a little) is really nice. another small detail i like is that a lot of math things like min and max are methods, which was weird at first but then i realized that it results in a method chaining way of doing multiple of those operations which is far more readable than nested function calls
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I adore languages that make heavy use of the chain / fluent interface pattern like this. Lovely! Also, there are macros that let you write chains of function calls even if they're not methods!
@Zen-rw2fz
@Zen-rw2fz Жыл бұрын
My biggest issue is that it's difficult. People say C is difficult but once you understand the concepts of pointers it's not much more difficult than any other language, rust has a lot of syntax that can be really unorthodox which makes it more difficult to write
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Rust is extremely different isn't it! No inheritance, new syntax for lifetime annotations and borrows, and the compiler hates a lot of the standard normal patterns we've been using for decades. I know how you feel. Back in 2020 I crashed out of learning Rust twice. First time due to multiple string types (Haskell's biggest mistake made again, I thought to myself) and second due to lifetime syntax. At the time I had a great mentor who picked me up and helped me back on the path. Most people don't have this. This is why I made my Rust series. Yes Rust is very different from what you're used to. But that's the point. Two features you can't get in C that I think you'll like are (proper!) Macros and the Unsafe system. Macros are nothing like templates or cmptime (they're more like lisp macros), and the unsafe system is a genius way to ring-fence pointer arithmetic, to allow us to build safe abstractions around unsafe pointer code. I did a video on both of them here, and I'd love your opinion on it: kzbin.info/www/bejne/hqawiYqZZd2lgZI Cheers!
@Zen-rw2fz
@Zen-rw2fz Жыл бұрын
@@NoBoilerplate yes, like I said very unorthodox. It could age better if it's features become more standardized bur as it is, it's like learning programming from the beginning again. I also really like the enums, with arguements.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
​@@Zen-rw2fz learning programming from the beginning again is a very good way of putting it!
@jammin023
@jammin023 Жыл бұрын
I've watched a few of your vids and, well, they worked, I've decided to learn Rust. You're a great advocate for the language!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
The language sells itself honestly :-)
@MechMK1
@MechMK1 Жыл бұрын
I think Linus' comment on Rust *not* being perfect is very enlightning, especially the idea that you can "Panic and stop" if something goes wrong (e.g. a variable couldn't be allocated due to a lack of memory) isn't acceptable for the kernel.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Not perfect, but an improvement enough on C that it's worth the compromise - a great decision, that's what life's all about!
@khatdubell
@khatdubell Жыл бұрын
I find it rather ironic how many people push forward the fact that "linus accepted rust into the kernel" but ignore his comments about it being "safe" is not true.
@lifelessclayman6823
@lifelessclayman6823 Жыл бұрын
I've started to learn Rust and noticed that it has a direct access to the array element, which may produce panic errors. Seems like rust is not so safe as was promised
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I too was disappointed about this at first. It's the same with airthmatic - rust does not default to checked math - so divide by zero errors panic at runtime. However, I've started to understand Rust's comprimises - the language MUST have both fast AND safe methods, such as the checked_math module in the standard library, which has safe methods that return `Result`s. Vecs for example have .get doc.rust-lang.org/std/vec/struct.Vec.html#method.get
@corporategreed
@corporategreed Жыл бұрын
As a python programmer language speed hasn't really been something I needed to worry about. I decided to try out Rust in my free time anyway and I couldn't believe how smoothly everything went. It all felt so natural (except the borrowing system, I really don't get that part yet), especially when I tried to do some functional programming. I haven't used it since and I probably don't have much reason to use it anytime soon but I absolutely agree with those people saying it's their favourite language and I still keep it in high regard to this day.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Great that you tried it out, that's how I dipped my toe in, while still doing python day-to-day back in 2020. Why not combine forces! github.com/PyO3/pyo3
@sploders1019
@sploders1019 Жыл бұрын
Rust even let’s you have low-cost dynamic typing using traits and boxes, and automates significant amounts of work with the macro system. I have it set up in a personal project to automatically generate a TypeScript API for the frontend by analyzing all of my exported types using macros, which is huge. Whenever I change an API, I just re-run the generator, which enables typescript codegen on all my data types and collects them using linkme before writing a ts file, triggering errors in my frontend anywhere I made a breaking change. I even have an event broker like JS written in rust that avoids copying using Arc and deref proxies that cast the data back into its original type without any safety issues. The fact that I can do that with only a few months of work, completely ironed out and working perfectly, while still maintaining runtime speed of 11x what I need for a real-time application is incredible, and only possible because of Rust
@NoBoilerplate
@NoBoilerplate Жыл бұрын
That's fantastic!
@adamd0ggg2
@adamd0ggg2 Жыл бұрын
I do a lot of Java programming, I have an OCA even. I have been able to use Rust recently for some projects. I am upset with Java. Rust is just as difficult as Java I feel, but Java is a contrived difficulty. Abstractions for the sake of abstractions. I could tell you all about making an abstract class that implements a marker interface. I can override a protected method in a child class allowing runtime polymorphism. And it would still lack null safety, there would be no easy way for me to see if a parameter had it's value changed in the method, if the object returned was new object or something already created. I could have built safer, cleaner, faster just as scalable code in Rust.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Great explanation, thank you
@kortes8914
@kortes8914 Жыл бұрын
You feel like a professional salesman that I constantly revisit to hear more from. On top of this the product you sell is free. Never have I ever been so excited for something I know so little about. I just must find time! ⏰😳
@NoBoilerplate
@NoBoilerplate Жыл бұрын
You could try reading The Book cover to cover, without doing any programming at all, just let the words into your brain through osmosis - skip over sections you don't understand, and in doing so read most of the book. Then when you're done, it's time to go back and give it a go. This is what I did! doc.rust-lang.org/stable/book/
@kayakMike1000
@kayakMike1000 Жыл бұрын
@@NoBoilerplate is it propaganda if it's the truth?
@rex_melynas
@rex_melynas Жыл бұрын
I live the idea and concepts of rust. But I have some problems on how they decided to implement the core language as terse, keywords like fn and impl really don't make me like it. And also a lot of functions are shortened in rust's std library. It's like the people behind it fixed every problem of c, but they decided to keep the poor naming conventions of c.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I see what you mean, coming from high-level languages too, it took me a while to get used to this punctuation and high-line-noise. But rest assured it is worth it! We can't get everything we want, but Rust's got a good compromise :-) Try a few more of my Rust videos, or if reading is better for you, I love everything that Amos writes here, especially: fasterthanli.me/articles/a-half-hour-to-learn-rust
@KohuGaly
@KohuGaly Жыл бұрын
The standard library is a bit of an outlier in this regard. It's the only place where this shortening is commonplace, and even then, it only occurs for items that are so ubiquitous you'll have them memorized before you finish your first project. For actual libraries full names are the norm. The short names for common std items and lang items do actually make sense. They do reduce character noise. Arc is much more readable than AtomicallyReferenceCountedSmartPointer
@knofi7052
@knofi7052 Жыл бұрын
Rust isn't the silver bullet, I think. The compiler is very slow and the language itself is ugly to read. However, it has it's advantages for sure.😉
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Rust is extremely different isn't it! No inheritance, new syntax for lifetime annotations and borrows, and the compiler hates a lot of the standard normal patterns we've been using for decades. I know how you feel. Back in 2020 I crashed out of learning Rust twice. First time due to multiple string types (Haskell's biggest mistake made again, I thought to myself) and second due to lifetimes. At the time I had a great mentor who picked me up and helped me back on the path. Most people don't have this. This is why I made my Rust series. Yes Rust is very different from what you're used to. But that's the point. As an example, two features you can't get in any language combined that I think you'll like are Macros and the Unsafe system. Macros are nothing like templates or cmptime (they're more like lisp macros), and the unsafe system is a genius way to ring-fence pointer arithmetic, to allow us to build safe abstractions around unsafe pointer code. I did a video on both of them here, and I'd love your opinion on it: kzbin.info/www/bejne/hqawiYqZZd2lgZI Cheers!
@danraine9009
@danraine9009 Жыл бұрын
The fact it took me 8 years to find Rust is mind blowing to me. Similarly the issues you expressed I inherently felt about most modern languages. Rust is so nice I'm excited to know of this language and build some predictable code!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I only started in 2020, I'm kicking myself too! You're gonna have a great time, make sure you've watched the rest of my Rust series, I have a playlist of them if you need it! And do come say hi on Discord if you get stuck :-)
@danraine9009
@danraine9009 Жыл бұрын
@@NoBoilerplate Thank you for responding, I will join the discord and work my way through videos, they are really valuable so far so thank you for taking the time to create them for us :)
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@danraine9009 my pleasure 🙂
@AntonioSchiavon
@AntonioSchiavon Жыл бұрын
minor errata, Discord uses Elixir instead of Erlang as a primary language.
@billasweather7833
@billasweather7833 Жыл бұрын
Primary language varies by the service. Their REST api is primarily python. The gateway uses elixir but the gateway is just a very small part of the puzzle :)
@AntonioSchiavon
@AntonioSchiavon Жыл бұрын
@@billasweather7833 the voice/chat app is they primary service/app, and this is written in Elixir, so I think we can say that Elixir is they primary language
@AntonioSchiavon
@AntonioSchiavon Жыл бұрын
For me, primary language is not about the total lines written in such language, instead I like to think how much those line of code are responsible for the business they are running. And I'm pretty sure that the python part of they stack could be much more easily replaced by rust or any other language than the elixir part, just because os all the good stuff around the elixir and erlang for websocket scalability
@billasweather7833
@billasweather7833 Жыл бұрын
Sure. But there are far far far more Microservices than you’re acknowledging and each managed by their own team and lang.
@billasweather7833
@billasweather7833 Жыл бұрын
Python is not being replaced due to developer simplicity.
@daniel-wood
@daniel-wood Жыл бұрын
Always nice to see more Rust evangelizing in my sub box. I look forward to the day it replaces the terrible tools I use for work!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
The revolution could start with you! Have you tried Rust yet? Really great to get started -> rustup.rs
@SianaGearz
@SianaGearz Жыл бұрын
If Rust is so great, how come there isn't a GUI library for it? When D was only a couple years old, someone ported Eclipse's SWT to it, while the standard library was realistically only about 10% complete and it was a relatively neat and fully functioning port. It's kind of one of the first things anyone spins up if you have any hope targeting desktop, even just duct taping Qt and GTK in there. I can see a bunch of projects started and abandoned or left very incomplete and talk of how this or that approach proved unsatisfactory due to lack of OOP. One of the bigger Rust projects uses a Vue JS frontend for GUI. You say you don't need two languages with Rust, well uh there's a counterexample. I'm probably also going to duct tape some dynamic language and an associated GUI library to the Rust core for my project, plus have several of the GUI bits implemented in C++, which is specifically the language I was hoping not to have to come back to.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I have great news for you, there are both QT and GTK bindings: - www.gtk.org/docs/language-bindings/rust/ - wiki.qt.io/Language_Bindings#Qt_for_Rust_.28Rust-Qt.29 gtk-rs.org looks especially mature, which I am delighted to see! I can highly recommend www.egui.rs as a very full-featured Rust gui library that works natively or in-browser using wasm. If I were to start a GUI app today, I'd use this, specifically with the crates.io/crates/eframe framework. Good luck!
@SianaGearz
@SianaGearz Жыл бұрын
@@NoBoilerplate Hardly news, i saw most of these. Nobody uses the Qt bindings so who knows what the quality of them is. GTK is seeing a good bit of use in Rust, but then, that's... GTK. It has no screen reader support on Windows or Mac so you can barely even count it as a fully featured toolkit, like sure they have all the really difficult stuff worked out, but 98% of the users aren't on Linux so the feature basically isn't accessible to them. The apps using GTK are more in the... not quite toy but not super complex category, but then that's GTK so it should be fairly difficult to mess up and not too difficult to fix the binding, so i wouldn't have qualms using the binding per se. I'm looking to rewrite an ancient inherited legacy project in Rust which has like 400 dialogues and where lack of accessibility is one of major existing criticisms - it's using a custom retained mode OpenGL based toolkit. Another is lack of multimonitor support via breaking out things in the app into separate windows. I need to retain a good bit of existing feel if not quite the look, avoid too drastic functional changes. Another problem is that the GUI isn't asynchronous at all, and if the rendering of the 3D scene stalls, and it does and it probably will even after the rewrite, so does the UI, so that's something i'm looking to avoid. It also turns out that the layouts of the dialogs are a fairly good match for Qt in particular, i could even automate most of the conversion. There's also some UX... near atrocities that i'm sure people want kept, such as a treebox which reaches tens thousands of entries, so there are performance requirements at play, but only a very very small selection of UI pieces are anywhere near performance sensitive. And the reason that i'm looking to rewrite it is that the application has become slow and fragile, and the more hands touched it, the more fragile it got over the course of over 2 decades. It's over a megaloc of C++, but i feel it could easily be 1/8th of that if it wasn't just layers of bad design. I've also found that rend3 is an exceptionally good fit for my requirements. I've been thinking of also Qt's QML/Quick so i can move a lot of UI code to JS and not have to recompile so much and enable more third party extensibility, but i'm not fully convinced yet in multiple regards. Among these Qt company doesn't seem to take QML accessibility seriously, there is screen reader support but the focus control isn't nearly robust enough to make it work properly, and i don't need a lot of its selling points, i don't need the UI to be fluidly animated etc. I'm also not at all married to JS as a scripting language i'd like to embed, indeed it's kind of a third rate choice, but also i don't have a really strong opinion on what it should be. Egui is bar none the MOST impressive immediate mode toolkit i've ever seen and i'm certainly going to do some quick and dirty prototypes with that, it somehow slipped me by this far. I also love that accessibility is at least somewhat implemented, like it can screenread, but there isn't full keyboard control for floaty windows and their size, which, OK, i can get that fixed up. Also a lot of stuff in the app that i'm to rewrite seems like a poor fit to an immediate-mode toolkit. I don't personally have a first- or even second-hand need for accessibility features, but talking to users, one finds that there's thousands of people who need these sorts of features and are increasingly struggling with modern software. Back in the day, even when i got started 25 years ago in Delphi, accessibility support was basically a given, basically everything was screen readable and keyboard-navigable. Today even such a basic application as Discord, while it can be screen-read (somewhat), it just doesn't have basically any keyboard control at all. We have suffered a massive regression especially since touch-based and web UIs started leaking onto the desktop.
@RoamingAdhocrat
@RoamingAdhocrat Жыл бұрын
3:35, man, who here remembers Twitter? those were some crazy times. remember Bean Dad?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Was that like a text message you could send to multiple people? Sounds weird to me /j
@wronex
@wronex Жыл бұрын
Awesome videos. Great inspiration to learn Rust. I've been trying to figure out how to deal with dependencies of dependencies. Let's say my project depends on crate A which depends on B. A uses some of B's types in its interface without re-exporting them or B. Now what? From what I can gather there is no way to tell cargo that my project also need that specific version of B. Am I missing something?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Unlike in other many other languages crates dependencies are independent. A -> B -> Cv1 and A -> Cv2 (where '->' means 'depends on') Is perfectly legal - just specify the version you want in your cargo.toml Any more questions, come ask in #newbie-advice on my discord!
@zacharywallace8067
@zacharywallace8067 Жыл бұрын
When I was about 16, I had a mentor at Mozilla who told me I should start using Rust. I thought exactly what you said. This is a fad language that'll pass. Well, I didn't listen to my mentor. Now I work on a lamp stack.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
There's still plenty of time to learn :-) fasterthanli.me/articles/a-half-hour-to-learn-rust
@heater5979
@heater5979 Жыл бұрын
Wow, that is telling it straight. Performance is not even the game changer for me. The correctness, robustness, predictably, reliability and security of my product is. That is to say "quality". Programmers should take pride in their work, rather than quickly shipping out dross for a quick buck. Our civilisation depends on software, software that works, we should not let civilisation down.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Couldn't agree more here - critical infrastructure should be built with Rust
@heater5979
@heater5979 Жыл бұрын
@@NoBoilerplate Yes, but what is "critical infrastructure"? I want everything to work and work reliably. From the calculator in my phone, to my banking web page and everything behind them. Anything that does not deliver or causes errors can be critical. It's not just aircraft auto-pilots and nuke plant controls. Failures in security can cause grief on a huge scale, above and beyond whatever stupid program they are in. In Rust we trust :)
Жыл бұрын
Rust is great, but it still has to stabilize more on the framework side, especially those targeting the browser. The backend is already well covered. On the frontend the future is promising, but currently I wouldn't write a complex webapp in Rust, the current frameworks are not on the same maturity level as React or Vue. Of course, if you write something with WebGL or Canvas ignoring the DOM, it might already be a perfect choice. But it's not just the problem of tooling, some standardization on the browser level needs to happen so Webassembly can access the DOM without going through JavaScript. But we will get there for sure.
@Wave_Commander
@Wave_Commander Жыл бұрын
0:18 Unless I'm missing something, I'm pretty sure Rust does not have 1st class support on GCP. I have been working with it for a hobby/demo app and there is no official SDK or client libraries. It isn't supported in Cloud Functions like it is in AWS Lambda. The best thing I can find is auto generating gRPC stuff with Tonic
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Ah interesting. I can imagine google might be uninterested in making a SDK for a competitor to Go! However, the Rust community seems to have filled in the gaps here crates.io/search?q=gcp I imagine you can just deploy a binary to GCP quite easily, just as with Go.
@just_smilez
@just_smilez Жыл бұрын
Alright, I'm convinced, it might be worth picking up rust after years of standing by cpp. A few questions to get a handle on how many of my personal projects I might want to consider writing in rust, since you seem to focus mainly on web dev, which is decidedly not what I do. If none of these exist for rust, that's fine; it just means I'll have to figure out other projects to work with in the language: Where should I start looking for libraries to handle hpc - can you write sycl code in rust? I'd prefer to avoid opencl due to poor vendor support. Cuda and hip bindings would be less desirable due to the extra work involved in supporting both, but they'd be useful as well. Please tell me there's more than just an under development spirv wrapper and packages to handle regular shader pipelines; I'm looking to do compute on the gpu, not just shaders. How well does it handle avx and simd? Can the compiler auto vectorize, or are you able to write it by hand? Are the vulkan bindings good? Are there any that actually have first party support?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
As you quite rightly say, I'm a web developer, not a game dev. BUT Loads of the great people on my discord ARE. Come ask that EXACT question (copy and paste it, even) in #programming and you'll get a great explanation :-)
@BloodnutXcom
@BloodnutXcom Жыл бұрын
I have decided to study Clojure instead of Rust. Rust is cool and all but for my personal growth (as a developer) I want the mind-expanding experience of writing in a lisp. I'll get to Rust eventually.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
RUST!
@tayustgemil9285
@tayustgemil9285 Жыл бұрын
Although I'm still in the phase of fighting the compiler, I love rust. I think my favorite things are Options and Results. Idk, but I find the wording of "Option" sooo cute :D. It feels like marrying Some(data type). Every time you use unwrap_or(), you think: "Yeah, another error handled". Whetever the use case is, Rust seems to be a great... "Option"! Sorry xD
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Isn't it great!
@fayaz2956
@fayaz2956 Жыл бұрын
I thought, rust is slower for servers than go, as primeagen showed it in a test. its surprising to see what discord did. interesting
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Test results are SUPER dependent on how you test. Go is really great, but a little too timid for my liking - I like writing my whole stack in one language!
@yoshiyahoo1552
@yoshiyahoo1552 Жыл бұрын
This channel should be renamed to the rust missionary
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I quite like the name "The Cargo Cult"
@edrayel
@edrayel Жыл бұрын
Yo! Wow! I just had to comment. You breathe life into me when you said, “I am tired of writing bullshit that I cannot guarantee.” I felt your pain. It's so refreshing to see a community like this exists! I am now a follower. 🤣😂😂
@edrayel
@edrayel Жыл бұрын
😂 Still watching and I am hooked. Your delivery is perfect! Your tone is soothing, too.
@edrayel
@edrayel Жыл бұрын
This is the video I just needed to clear my hesitation on Go and Rust. This is confusion was not about garbage collection, but support and adoption for developers. As I can clearly see from your video, the evidence you present is beyond unreasonable doubt. Thanks!!!
@edrayel
@edrayel Жыл бұрын
Upon hearing Rust Crates, you reminded me of V-lang. Would you consider making a video analysing V-lang? I would like to see your perspective. I like how you think and order things. It's a humble request. 😊
@edrayel
@edrayel Жыл бұрын
I can't believe I am considering joining Discord because of you. 😂I just finished watching this video.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Ha! I'd be delighted if you were to say hi on Discord :-) I'll check out V-lang, I love learning new languages, but it's rare that I'd make a video on them, popularity is a feature you see. Thank you so much for your kind words, I hope you'll like my other Rust videos, do check out my channel for them. If you would like to hear me ACTUALLY try to be soothing - I'd love to know what you think of my hopepunk scifi podcast, Lost Terminal, here's the first episode: kzbin.info/www/bejne/pmTFdXhvoNitg8U Thank you!
@אסףרוזנצויג-ה1י
@אסףרוזנצויג-ה1י Жыл бұрын
While i enjoy your videos as always, you keep saying that rust has a first class support in aws and is production ready, however when i looked it up it seems the aws sdk for rust is only in beta phases and is not recommended for production use. What am i missing?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
You're right, the aws crate is both 'in beta' and production ready. You know, like half the plugins we use in production software! Rust packages 0.X releases are SO stable compared to other languages, in my experience. That the compiler guarantees SO MUCH makes me very caviller about getting going with pre-1.0 software.
@KohuGaly
@KohuGaly Жыл бұрын
Rust crate developers are super cautious about releasing 1.0, because that comes with stabilizing the API and disallowing any breaking changes (without major version change, ie. 2.0). What you will find is that many crates are not "stable" (as in 1.0), but they are "mature" (0.x, production ready, with breaking changes being minimized).
@peanut-sauce
@peanut-sauce Жыл бұрын
Very enlightening video! But instead of just talking about the philosophy, maybe make a video or two about rust-unique features (&str vs String, etc)?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
There's loads of really great youtubers doing these deep-dives at the moment (try Code To The Moon and The Primeagen) I may yet do such a deep dive, but I see the gap in the market at the moment is getting people EXCITED about Rust enough to try it. From there the language sells itself. Have you seen my whole Rust series? kzbin.info/www/bejne/h2Skma1-pp2indU
@LewisCampbellTech
@LewisCampbellTech Жыл бұрын
The most interesting thing about this video is that it didn't focus on how 'safe' rust is, and how 'dangerous' C is, and instead listed some real life practical benefits.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
This is exactly it. As I said in RUST-1 (kzbin.info/www/bejne/h2Skma1-pp2indU) I don't care about safety - I've never had to, it's not a selling point for anyone coming from high-level languages! Now, macros and compiler-provable error-free code? Count me in!
@jmsaffroy
@jmsaffroy Жыл бұрын
From the outside, I can see Rust has so many advantages, I will pick it up eventually. One thing I would clearly miss (and I miss in C/C++ as well) is the absence of a REPL. I found a REPL so nice to have (at least in Haskell and Python) that's it's become a favorite tool for me. Do you miss it too? Any idea if a REPL will ever be part of Rust?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I have excellent news for you, I really dig irust crates.io/crates/irust and for an even better experience, you can use rust inside a jupyter session with crates.io/crates/evcxr_jupyter It will never be the same experience as a language with a real long-running REPL, but you might find that, like me, you start learning rust with a repl, and then find that the compiler is so powerful, you don't need it!
@jmsaffroy
@jmsaffroy Жыл бұрын
@@NoBoilerplate Nice! :D Thanks for the pointers!
@sleaf6
@sleaf6 Жыл бұрын
My main issue with Rust is their seemingly immense support from community and so many individuals it’s mind boggling Yet they will not support certain older architectures. It boggles my mind Small price to pay to make the entire linux community happy with the new kernel changes, so why not?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Could you go into detail? There's only so many architectures llvm supports, and then the rust team need to choose a subset of THAT, depending on their available time?
@sleaf6
@sleaf6 Жыл бұрын
@@NoBoilerplate My issues stem from the reliance on llvm only. Which I get, llvm is much simpler to work with than the alternatives, but it’s worrying to put all your eggs in one basket. My other worry is that now, going forward, LLVM being required now by much more code puts the responsibility of keeping older and even newer architectures that will come out solely on LLVM to support. Meaning that future revisions of gentoo and the like won’t support even something simple like ia64, hpaa, s390, among others. So when I see the massive support for Rust, why haven’t I seen a lot of support for bringing in and expanding llvm support before trying to bring it into the linux kernel? Since rust leans so heavily on llvm, this would be an awesome opportunity to see more arch support for llvm which would benefit many and reduce friction. You said it yourself, Rust is a mature language that has been around for well over a decade, so then I ask, why isn’t it seeing the arch support that it should.. if the aim is to bring in and replace C components then it should be better in every way or at least meet the standard. Less than optimal arch support will limit reusability and as a result, keep older but critical systems from receiving the proper support, opening up vulnerabilities for businesses and infrastructure.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
@@sleaf6 I'm unfamiliar with the low-level discussion, could you give examples of architectures that LLVM doesn't support?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
It's possible that the LLVM's team are RIGHT to not support every architecture, reading this blog.yossarian.net/2021/02/28/Weird-architectures-werent-supported-to-begin-with
@ericng8807
@ericng8807 Жыл бұрын
Great video as always!
@jupitersky
@jupitersky Жыл бұрын
You're right, it is ready for usage in my company. How do I know? I'm already using it, and it's fantastic!
@NoBoilerplate
@NoBoilerplate Жыл бұрын
TEACH US YOUR SECRETS :D
@justa5code
@justa5code Жыл бұрын
It was a very good joke and we had a jolly good fun.
@mattgarelli1371
@mattgarelli1371 Жыл бұрын
When you say "entire tech stack"... What about mobile?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Check out egui and (soon afaik) yew!
@bobweiram6321
@bobweiram6321 Жыл бұрын
Ada is a far superior language designed to be reliable, scalable and performant. If Torvalds was truly concerned about reliability, he wouldn't use C, a language which provides no provisions for safety.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Interesting! Why do you think he did though?
@uipo1122
@uipo1122 Жыл бұрын
>Has more packages than NPM did. Dude. This is like saying steam has more games than origin or something. It is an argument AGAINST the platform, when you need to plow through 1000s of packages to find something meaningful is definitely not good.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
yeah, it's a pretty arbitrary measure - but you'd be surprised the people who care about this number to gauge 'ecosystem maturity'.
@friend7120
@friend7120 Жыл бұрын
The mention of "perfect code" always puts me off. In university we had a secure programming module, we read case studies on programming errors that cost lives, and a key theme among them all wasn't choice of language or style, it was the assumptions the engineers made about the quality of their code. I recommend reading the report. It's called "Case Studies of Most Common and Severe Types of Software System Failure", from the International Journal of Advanced Research in Computer Science and Software Engineering. The perfect code thing was also seen a lot years back in the Haskell sphere, which lead to Haskell code being of significantly less quality than was expected, largely because of the assumptions programmers held about the language.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I sympathise with this thinking, I also studied formal system at university, and have tried for over a decade to find a programming language and ecosystem to let me write GOOD ENOUGH code that had loads of safeguards built-in to the language. I also thought it was Haskell, but what turned me off wasn't the community attitude, but I do know what you're talking about there, but Haskell's popularity, or lack, thereof. I need a language that has safety built-in, in a comprehensible way that doesn't scare off normal developers. My first video in this series is called Your Code Can Be Perfect (kzbin.info/www/bejne/h2Skma1-pp2indU) and I want to be clear: I don't think Rust is perfect, but I think it's the best language to write perfect code USING, because of the tools it gives you.
@piotrp6793
@piotrp6793 Жыл бұрын
Nice video! Ok now I want "boring" transition from C# and Blazor to Rust. What libraries and frameworks should I look at? What you guys recommend?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I have a video on that! kzbin.info/www/bejne/pqDGiKWLn5trqrc
@ИванЗакутний-м3ц
@ИванЗакутний-м3ц 10 ай бұрын
Alright, let's go! You have convinced me, my man. I am starting to learn Rust.
@MistaSmith
@MistaSmith Жыл бұрын
This is why I didn’t start c++ yet. Was waiting for you, 😘
@trejkaz
@trejkaz Жыл бұрын
We're at the point where, if I had to write a native launcher, I would do it in Rust. If I had to write native glue code to something native, I would use FFI from whatever language the main code is in, because that is more maintainable than dragging along a hand-written native shim, even if that shim were written in Rust. But actually replacing the Java application with Rust? Not likely. But if we wanted to, here are the main gates in the way: - Rust's UI libraries are still very rudimentary. Even compared to Elixir, and Elixir is already something we want to use in production, but can't, because _its_ UI library isn't ready. - Java has a ton of libraries and sometimes it feels like we're using almost all of them - The quantity of the code that someone would have to migrate somehow
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I see what you're saying, but take a step back: Coders in the top 10 languages all say "You can't replace [my language] with Rust, there's too many essential libraries that I use all the time from [my language's community]". I've had people say something like what you said in a dozen languages, including languages (like elixir) that are less popular than Rust and have fewer packages. (Rust: 110,655 packages Elixir: 14,255 packages) Perhaps you're not as familiar with the Rust ecosystem as you are with Java, or perhaps even Elixir? Regarding your specific use case, HTML is the standard interface, and with a project like tauri.app making it first-class on desktop and mobile, I don't see the problem. If your users want NATIVE native, then www.egui.rs is incredible.
@trejkaz
@trejkaz Жыл бұрын
@@NoBoilerplate I don't want to use web technologies to make a desktop application, so Tauri is already not an option. (Their web site is also terrible. I had to visit several pages even to figure out that it was just embedding a web browser. Initially I was reading "you can use whatever frontend framework you want", and thinking, "no, I'm looking for a frontend framework, you absolute buffoons.") Egui I have discovered before. I'm not so fond of immediate mode UI because when someone comes by to automate testing for it, they usually complain that there is no way to walk the component hierarchy to find a button to click on. I've also played with their example for long enough to realise that foreign languages don't work in their text renderer and that their emoji rendering is terrible. I'm also aware of Iced, but I haven't looked too closely at that one yet, so I'm not sure. I have read its examples - it is *WAY* more clunky than Jetpack Compose. I'm sure this is because these frameworks are "first attempt" frameworks - they don't have any other Rust frameworks to compete against, so they think they can get away with a somewhat ugly API. But then I come in, comparing with Jetpack Compose, and they look bad. So to answer your question, no, I'm not as familiar with Rust. → The reason I'm not as familiar with Rust is, I haven't used it for 1,000 hours at work. → The reason I haven't used it for 1,000 hours at work is, we haven't found a way to adopt it yet. → And the reason why we haven't found a way to adopt it yet is that we are still yet to find a good UI framework. We're also not confident enough to create that UI framework ourselves - so "just make it yourself" isn't really an option either. Just in case you try to argue that angle. I do acknowledge that 100% of today's code could be rewritten in Rust. It assumes that you're also happy to reimplement all the missing frameworks before you start on the actual code - but the claim is true, with this caveat.
@howlowl7866
@howlowl7866 Жыл бұрын
Ah, Go programmings language. A compiled language with a performance of an interpreted one. Why would someone choose it to write software in beyond my understanding :)
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I don't hate Go, though you maybe surprised to hear it. I'd choose it over java every day of the week! But it does not go far enough for my liking, it's a little too bare-bones for me.
@sunilanthony17
@sunilanthony17 11 ай бұрын
Rust give me nightmare since I work with API alot and MS SQL. The package I was using drop mssql support.
@NoBoilerplate
@NoBoilerplate 11 ай бұрын
oof, my sympathies!
@cerulity32k
@cerulity32k Жыл бұрын
Rust is the only language that makes me feel like I can accomplish something *solid.* When writing things in C#, there are exceptions that can just _happen_ and cause the program to come crashing down. Handling exceptions is not very easy either. (While Rust does have the panic!() macro which can be put anywhere, every single competent crate or method I've come across always uses Results, which are inherently explicit and much easier to handle.) I would MUCH prefer: `function().unwrap_or()` than: `try { v = function(); } catch (Exception e) { v = ; }` Not to mention the ? operator. All of Rust's types and mechanisms are not built into the language. Results, Options, Iterators, Deref, Index, Mul, Add, I could go on and on, are simply traits and enums that _you could make yourself._ While special traits like Deref/Index are syntactically special, it's all syntactic sugar which you can take hold of. This means that they can have a ton of helpful functions like map, filter, fold, chunks, enumerate, and unwrap_or. Rust is boring in the sense everything is made the same way and nothing is special, but that makes creating fun stuff much easier.
@ReedoTV
@ReedoTV Жыл бұрын
Since the Twitter takeover, Elon Musk has mandated that all backend code be re-written in Java 11
@NoBoilerplate
@NoBoilerplate Жыл бұрын
ew
@user-jt7wb3zc1m
@user-jt7wb3zc1m Жыл бұрын
Thank you for Boring (not) reminding of why we loving Rust! For Boring (yes). 💖🦀
@NoBoilerplate
@NoBoilerplate Жыл бұрын
you are welcome!
@coyo_t
@coyo_t Жыл бұрын
Rust is a language i _want_ to like but simply cannot. Oh sure, i read through the list of stuff it has/can do and go "wow, this sounds great!", but the moment i try to write it or god forbid _read someone else's rust code_ i suddenly feel as if the language centre of my brain was shut off barring alien concepts like the borrow checker and ownership malarky, its as if the language designers went "wow, c++ is becoming unreadable! look at how much crap is on one line and how long things get! LETS GO THE DIRECT OPPOSITE DIRECTION". Like, who thought that a statement without a semicolon being the return value for a scope was a *good* idea? thats the most miserable troll design decision i have ever come across. I'm like 90% sure that breaks _some_ kind of accessibility guideline somewhere (or at least it does for me. whee, mild dyslexia!). there are other readability problems i have with it (jesus christ why is ', and a _singular one_ at that, used outside of the context of strings???) but i think that one's the best example. Also, it has the same miserable after-school detention "write the same thing on the blackboard 100 times" schtick that c/c++ has. maybe not _as_ bad since there isnt a header/source file split but its still rather agonizing. if y'all can make effective use of rust then more power to you but unless some saint makes an alternate syntax style for it ill be sticking to my HolyC and GML ; v ;
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Rust is extremely different isn't it! No inheritance, new syntax for lifetime annotations and borrows, and the compiler hates a lot of the standard normal patterns we've been using for decades. I know how you feel. Back in 2020 I crashed out of learning Rust twice. First time due to multiple string types (Haskell's biggest mistake made again, I thought to myself) and second due to lifetimes. At the time I had a great mentor who picked me up and helped me back on the path. Most people don't have this. This is why I made my Rust series. Yes Rust is very different from what you're used to. But that's the point. Two features you can't get in C++ that I think you'll like are Macros and the Unsafe system. Macros are nothing like templates or cmptime (they're more like lisp macros), and the unsafe system is a genius way to ring-fence pointer arithmetic, to allow us to build safe abstractions around unsafe pointer code. I did a video on both of them here, and I'd love your opinion on it: kzbin.info/www/bejne/hqawiYqZZd2lgZI Cheers!
@KohuGaly
@KohuGaly Жыл бұрын
> Like, who thought that a statement without a semicolon being the return value for a scope was a good idea? Pretty much the entire CS branch of functional programming languages, where that is the norm. Also leaking into non-functional PLs like Ruby. Also, code-blocks in Rust are not just scopes. They are a combo of scope and comma expression from C. Almost everything in Rust is an expression that returns a value. Which is actually a simplification over C/C++ where there's a semi-arbitrary distinction between expressions and statements.
@rustyshackleford1964
@rustyshackleford1964 Жыл бұрын
Once Rust gets a good framework for gui design like qt, then I can use it in my workflow.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
While you wait, try tauri.app - designing inside html with the html inspector is a really great experience!
@tudbut
@tudbut Жыл бұрын
I'm halfway through the video and if I wasn't convinced yet, I would be now.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
11/10
@vectoralphaSec
@vectoralphaSec Жыл бұрын
So i need someone who has worked with Rust and is not biased towards Rust to tell me. Is Rust any good or useful for Artificial Intelligence/ Machine Learning and Computer Graphics and AAA Games Development? Or No??
@cerulity32k
@cerulity32k Жыл бұрын
Python is more geared towards AI development and training, however the libraries required to properly train and actually use the AI will likely need to be written in an extremely fast language to be efficient, as Python does not have speed on its side. They can be built with C, C++, and Rust, or any language at around the same speed, but those three are much more bare metal and give you much better access to the device. For a proper AI, you will definitely need to use the GPU, which is difficult to do without using CUDA/OpenCL, or Rust's gpu crates. Computer graphics need to be fast and safe. C, C++ and Rust can be used, but Rust is the safest. AAA game development, unless you're making the engine, Rust is not a very good option. While it is great, C# gives the much needed leniency for game dev (for instance, nulls can be used as an advantage at times when Options are somewhat cumbersome, and the reflection in C# is amazing). tldr AI and CG _need_ to be fast and safe, enter Rust. AAA games do need to be optimized, but Rust is not required. C# is definitely recommended for game dev.
@Sandromatic
@Sandromatic Жыл бұрын
@@cerulity32k C# is *not* the best for game development, like yeah, unity uses it but it's just... Not the best choice, (unity has to do a lot of stuff to make it happen and even unity is quite a lot of C++ internally). Rust is definitely a good choice, the trouble is that basically every engine is C++, and rust just doesn't have the support from gamedevs that C++ does.
@Sandromatic
@Sandromatic Жыл бұрын
@@cerulity32k also, nulls cause *so many issues* in practice which is *why* rust doesn't have them. There is no good reason to have them. Reflection is a disaster that is really slow and frankly... Unnecessary? If you do the right thing you don't need reflection, it's really only useful for patching problems in existing code.
@lucky-segfault
@lucky-segfault Жыл бұрын
As someone with a bias towards rust, i can say rust is not currently well suited to AI or games. Not because it cannot handle these kinds of tasks, but because the relevant libraries are immature. For AI you likely want python, and for games you want whatever language works with your game engine (C# for unity)
@Sandromatic
@Sandromatic Жыл бұрын
@@lucky-segfault yeah I mean that's true. It's well suited, as a language, to handle those things but the frameworks are immature. That's the only real problem there (and c# is still a bad choice for game development imo, not that C++ is much better.)
@katurday
@katurday Жыл бұрын
Not great for ML/DS though. You can nerd out about it all day, but it is only useful for its own paradigm.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Totally agreed re Data Science - in this field a long-running, heavyweight runtime is a feature, not a liability. Python's the king, of course, though if I were starting out today, I'd take a look at Julia. Rust's not absent from Data Science, do check out kzbin.info/www/bejne/o53GhKOunsirY5Y ML I'm not sure I agree with you entirely. ML needs to GO FAST. While Rust isn't very active in this field yet, it's early days, I would expect to see much of the C++ fast plumbing of the ML pipelines be written in Rust as we go forward. Rust is *80x* faster than Python, and at some point, you'd rather your stablediffusion run in 1s than 80s!
@DaxSudo
@DaxSudo Жыл бұрын
This love letter to rust gave me chills... I'm a react dev and love typescript. This is the first time since switching from linux to mac to that I have ever considered a career change.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
You know what you have to do now, right? kzbin.info/www/bejne/aJm7f5dsrZ6mkNU :-)
@ironosenshicas
@ironosenshicas Жыл бұрын
You said in this video that rust has fitst class support for all cloud platforms. Yet the library for Azure isn't supported by the core team and isn't in version 1.0 yet. Would you still consider this first class support?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
You're quite right, I misunderstood the unofficial nature of the azure sdk. I assumed that because it's hosted in the official Azure github org, it was official (github.com/Azure/azure-sdk-for-rust) but I see in their readme that it isn't, somehow! Given the APPETITE microsoft has for Rust (have you SEEN recent developments? www.theregister.com/2023/04/27/microsoft_windows_rust/) I would imagine an official Azure sdk is already being built!
@VioletGiraffe
@VioletGiraffe Жыл бұрын
"As fast as C" is a downside, not a plus. C++ can be faster than C. JIT languages (e. g. Java, C#) can be faster than C thanks to their profile-guided optimizations on the fly.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Sure, but overall, languages have very predictable performance characteristics, as shown in general-purpose benchmarks.
@KohuGaly
@KohuGaly Жыл бұрын
Rust can also be faster than C, for precisely the same reasons why C++ is. C is slower because most of the time you need to manually do dynamic dispatch to do polymorphism. With Rust/C++ you can have parametric polymorphism (generics/templates) that do static dispatch. Also, I've seen comparisons of Java and Rust in terms of performance. It takes several minutes of PGO in very repetitive task for Java to beat Rust. That pretty much never happens in practice. Rust beats Java in latency and performance just because of the initial JIT compilation and periodic GC pauses of Java. It's like the turtle vs. rabbit race, where the Java rabbit takes ridiculous detours and munches on kale every couple of minutes, except the Rust turtle is also a rabbit.
@gaurav_W
@gaurav_W Жыл бұрын
my guess is 20 years at best. Because we are slowly hitting a limit in performance through binary computers. the computers themselves are going to need to start changing is my prediction otherwise a faster programming language wouldn't matter when you you hit a hardware bottleneck.
@achintya-7
@achintya-7 Жыл бұрын
For backend I would still prefer Go Though, I would like to try Tokyo
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Go is a very good language! But it has its limits - check out my previous rust video for a case study where Discord had to switch a service from go to rust, to avoid garbage collection pauses
@achintya-7
@achintya-7 Жыл бұрын
@@NoBoilerplate yah those garbage collection spike is an thing indeed
@aizensoskue3880
@aizensoskue3880 Жыл бұрын
writing front-end code with rust will take y ages js will stay the king of web dev rust isn't build for web
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Oh this is a very exciting area of development, I'd love to know what you think of my take on it: kzbin.info/www/bejne/hmWvfpmhe7GFqas
@romangeneral23
@romangeneral23 Жыл бұрын
Rust is not magic. There are trade offs like any other language
@tudbut
@tudbut Жыл бұрын
Like what?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
It's kinda magic dude. I'm not making up my claims. Try this video on for size kzbin.info/www/bejne/hqawiYqZZd2lgZI
@laundmo
@laundmo Жыл бұрын
@@AnnasVirtual as if you can't write messy code in any language... i don't think Rust encourages messy code, and i find it much easier to grasp Rust code, because of it's syntax which is verbose where it needs to be.
@flogginga_dead_horse4022
@flogginga_dead_horse4022 Жыл бұрын
Sorry but Rocket is not that great. Actix is much faster and more supported.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Agreed, but I think beginners will have an easier time with Rocket, which is why I often reach for it as an example. I'll do an actix video at some point!
@AyonReiko
@AyonReiko Жыл бұрын
If only Rust syntax wasn't abysmal.. Other than that, great language indeed
@NoBoilerplate
@NoBoilerplate Жыл бұрын
I know what you mean, I found it very difficult to get through the initial adaptation phase back in 2020, I crashed out twice, even! However, looking back, I don't think it was syntax that I was annoyed by. Rust's very similar to other c-like languages. I did a video blasting through the basics of the syntax in 10 minutes, if you're interested! kzbin.info/www/bejne/mKOWeHx_hsqYnLs
@El-Burrito
@El-Burrito Жыл бұрын
Alright, holy crap, I'll try out Rust. Damn.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
WELCOME TO THE CARGO CULT. The Book is a terrific place to start, it's very approachable doc.rust-lang.org/stable/book/
@weirdo911aw
@weirdo911aw Жыл бұрын
As a point to Rust being backward-compatible guaranteed, isn't this the same thing as what C++ is doing? Or is there some nuance that I'm missing differentiating how Rust does this compared to C++?
@user-dh8oi2mk4f
@user-dh8oi2mk4f Жыл бұрын
Well yes, but actually no
@NoBoilerplate
@NoBoilerplate Жыл бұрын
as i understand it, C++ does not have the focus on backwards compatibility that Rust does - try compiling an old project in a new version of C++ and you'll see this. Perhaps a C++ dev can confirm?
@gideonunger7284
@gideonunger7284 Жыл бұрын
​@@NoBoilerplate no c++ is backwards compatible. way more than rust is actually. rust version have breaking changes. like dyn being required starting with 2018. c++ also has versions just like rust but they are always backwards compatible so to your example YES you can always compile a c++03 project with the c++20 flag and expect everything to work out of the box. binary compatibilty from the vendors is another thing but MSVC guarantees it since 2013 for example. and using a new clang and compiling with -std=c++98 works also just like if you were to compile a rust crate with 2015. something you could mean is vendors (which rust doesnt have yet but with the gcc frontend soon maybe) can introduce breaking ABI changes. but even there they are very shy about ever introducing any.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
​@@gideonunger7284 Ah yes you're right, I am trying to remember what C++ devs have told me (I am not a C++ dev). I have seen people say (IIRC) is that even though old CODE compiles fine on new C++ compiles, they have no idea how to use new C++ code - SO MUCH seems to change, for them, that they feel like whole new languages appear every so often. Let's hope Rust Editions don't fall into this trap too.
@sergiorodrigoroyo5079
@sergiorodrigoroyo5079 Жыл бұрын
I think backwards compatibility is a big mistake. It will end up in a bloated language, as JavaScript and others.
@--------------------.
@--------------------. Жыл бұрын
I certainly am impressed with rust after watching your videos. Currently i'm torn between focusing on rust and nim. I believe you dabbled in nim language before, could you share your opinion / what made you settle on rust? Rust seems for me to be more complicated, polished and suitable for big, complex projects. In nim beauty lies in the simplicity and ergonomics of language. Is the rust compiler's safety a killer enough feature for you, or was there something else?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Simplicity is a double-edged sword. No harming in learning how to program on simple languages, but simple syntax harms you. I explain my thinking on the matter in this video kzbin.info/www/bejne/apXZl2mhgpxjp68.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Thank you!
@fededevi1985
@fededevi1985 Жыл бұрын
I definitely have a different definition of boring than Chris Dickinson.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
How so?
@xDELTAGIx
@xDELTAGIx 11 ай бұрын
For those looking to use rust for web dev, do not use rocket. It’s really good and I like it but the problem is it’s not really in active development. It is but if you look at the commits and community activity compared to Axum ( a good replacement for rocket btw) it’s not. Don’t use Rocket I had to end up migrating my backend to Axum because of a lack of database pooling and other features. Though rocket finally added this, it was ready to go for months but never got updated in a new version.
@NoBoilerplate
@NoBoilerplate 11 ай бұрын
This is unfortunately very true. I've stopped recommending it since this video as development stalled. I do have a recommended stack, based on Poem, did you see my video? kzbin.info/www/bejne/pqDGiKWLn5trqrc
@xDELTAGIx
@xDELTAGIx 11 ай бұрын
I did! The videos are great! I’m sad rocket doesn’t really update anymore as I really liked the framework! Keep up the great content! I just wanted to make sure nobody else ran into the same problem I did haha
@levizin917
@levizin917 Жыл бұрын
Macros are not boring tho, I got to make one that automate a bunch of code writing by just adding something that looks like a json, in the service I wrote at mt company
@juampibehler
@juampibehler Жыл бұрын
Rust is great but remember not to be fanatic a.k.a fundamentalist a.k.a delusional. No Boilerplate should be the stepping stone to figuring out by yourself why do you love or hate Rust, not be taken as a fact but as a mere motivation. Fanatical thinking harms the development community (a former linux fanatic here)
@NoBoilerplate
@NoBoilerplate Жыл бұрын
You know what I'm fanatical about? Not getting paged at 4am for a nullpointerexception. I've been having my life ruined by python and javascript for 15 years, and now that we have a language that solves nearly all my problems, I'm absolutely going to shout about it to help as many people as I can.
@juampibehler
@juampibehler Жыл бұрын
@@NoBoilerplate And that's great but to be enthusiastic, not fanatical. Rust is one of the best options out there, but not the undisputed perfection, it's great if you believe it but not a good habit for a learning mind and community. This I say not in a personal critique of yourself but on a general level in multiple areas of learning and in hope of helping, it must and should not transform in a religion of code, unless we want our "Life ruined" again (I've been also programming since my 20s in Python, JS, C, Shell script and many other sloppy ones 😱😂)
@lambrechta
@lambrechta Жыл бұрын
Jack Dorsey didn't build anything. He was just at the right time at the right place and had a good idea.
@LuccDev
@LuccDev Жыл бұрын
To be honest, while I like Rust, your videos are cringe. I don't like the people who push a language with such joy and happiness, depicting it as some miracle solution to everything in awe. While Rust is nice, you don't know how it will play out in the future, and it's not (yet) a silver bullet.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Sorry to hear that Luc. let me explain a bit where I'm coming from: I've been a web developer, all over the stack, for 15 years, and I'm tired of writing bullshit in languages that don't really help me out. My joy comes from finding a language that not only does help me write really reliable correct code, but is popular enough that I could build a team and get paid to do it - I can't contain my joy in my videos! You say it's not yet a silver bullet - fine, but when it IS a silver bullet, at some point in the future, I guarantee there will be naysayers telling me that it's not. When will we know that it's ready to use? - When it's accepted into the Linux kernel? Done. - When openssl is rewritten in it? Done, Rustls. - When all FAANG companies are publicly and loudly migrating core services to it? They ARE. For me, the time has come. Rust is good enough now, and I'm ready.
@LuccDev
@LuccDev Жыл бұрын
​@@NoBoilerplate Thanks for the reply despite my assholish comment. I understand the joy to be honest, but there's not way to tell if some GC languages will be all replaced by Rust (because there's Go now), if gaming industry will switch to it because of legacy libraries, if WASM will replace JS in browsers... Some design patterns of some types of programs might be too difficult to consider rust as an option... So maybe rust will take off only in some specific jobs, such as networking, some embedded chips, systems programming etc. and that's it. Not even taking into account that not an easy to use language, so if ultra-performance is not needed it can be counterproductive to use it. But maybe it will overtake all those fields, who knows ! A language is a tool, and depicting it THE tool that replaces all the others is not realistic in my opinion. When you talk about a language, you have to talk about the potential drawbacks, otherwise its misinformation. People might pick it where they actually really don't need it.
@justageekygamer
@justageekygamer Жыл бұрын
if I happen to be failing at learning c++, should I learn rust?
@NoBoilerplate
@NoBoilerplate Жыл бұрын
Why not! You can always go back to C++ later if you would like :-) doc.rust-lang.org/stable/book/
@danice7873
@danice7873 Жыл бұрын
Alright, you got me! What does the job landscape look like for Rust these days. Thanks for the great video.
@NoBoilerplate
@NoBoilerplate Жыл бұрын
My pleasure! Thank you for commenting. The job market's small, of course, but the big players are all advertising rust positions: careers.microsoft.com/us/en/search-results?keywords=rust www.amazon.jobs/en/search?base_query=rust&loc_query=&latitude=&longitude=&loc_group_id=&invalid_location=false&country=&city=&region=&county= And the trick is you can very easily make the pitch to write small amount of YOUR COMPANY's app in Rust - just a single lambda, or an event processor, something small. That's how you get'em ;-)
@danice7873
@danice7873 Жыл бұрын
@@NoBoilerplate wow, thanks for the thoughtful and thorough response!!!
Rust Is Easy
8:58
No Boilerplate
Рет қаралды 157 М.
What Makes Rust Different?
12:38
No Boilerplate
Рет қаралды 202 М.
The joker favorite#joker  #shorts
00:15
Untitled Joker
Рет қаралды 30 МЛН
How To Get Married:   #short
00:22
Jin and Hattie
Рет қаралды 25 МЛН
Why Rust is NOT a Passing Fad...
8:54
Travis Media
Рет қаралды 38 М.
Hack Your Brain With Elaborate Coping Mechanisms
11:42
No Boilerplate
Рет қаралды 320 М.
The Untapped Productivity Hack, You NEVER Heard Of.
5:34
MedyFlix
Рет қаралды 33 М.
Rust is not a faster horse
11:37
No Boilerplate
Рет қаралды 326 М.
Rust Data Modelling Without Classes
11:25
No Boilerplate
Рет қаралды 174 М.
Your Command Line, Oxidised
10:09
No Boilerplate
Рет қаралды 202 М.
Rust on Rails
11:34
No Boilerplate
Рет қаралды 132 М.
I spent six months rewriting everything in Rust
15:11
chris biscardi
Рет қаралды 430 М.
Rust makes you feel like a GENIUS
10:48
No Boilerplate
Рет қаралды 407 М.
The Cult of Done: How To Get *Started*
9:10
No Boilerplate
Рет қаралды 601 М.
The joker favorite#joker  #shorts
00:15
Untitled Joker
Рет қаралды 30 МЛН