How Rust Works

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ธ.ค. 2024

ความคิดเห็น • 38

  • @Kane0123
    @Kane0123 5 หลายเดือนก่อน +93

    Memorised and added to CV

    • @MasterHigure
      @MasterHigure 5 หลายเดือนก่อน +9

      But did you clone it when you moved it from your memory to your CV? Did you copy the underlying data, or do you have two pointers now?

  • @NotherPleb
    @NotherPleb 5 หลายเดือนก่อน +15

    The counter in Arc is also on the heap, so every instance manipulates the same counter

  • @gusvanwes6192
    @gusvanwes6192 5 หลายเดือนก่อน +4

    How rust works in it's most simple form is that the compiler proofs on the basis of all your type, mutability, and lifetime annotations that there is memory safety. The heap and the stack are tools rust uses in the background and that can help you to be more efficient but not the main thing for people unfamiliar with rust.

  • @Mempler
    @Mempler 5 หลายเดือนก่อน +4

    Arc a shared pointer.
    A Rc is the same as an Arc, except that it's not thread safe / atomic to clone & drop. but gives better performance as its less complicated to implement & use on the cpu
    An Box is a unique ptr

  • @nordgaren2358
    @nordgaren2358 5 หลายเดือนก่อน +2

    I mean, C++ can also work like this. A lot of the newer standard library does. The only time you are guaranteed to put something on the heap in C++ is when you use the new key, but a lot of stuff, like std::string is also generally a stack item with a small string optimization. Also, you can have both c++ std::string and Rusts String object on the heap with the pointer being a pointer into somewhere else on the heap. Of you have a boxed object, say. Or an arc, even! With c++, you just do new std::string and you get a pointer instead of the string object.

    • @philipehusani
      @philipehusani 5 หลายเดือนก่อน

      Except C++ is not memory safe and anyone doing anything low level should just use Rust henceforth.

    • @nordgaren2358
      @nordgaren2358 5 หลายเดือนก่อน

      @@philipehusani yes, but this isn't about safety, this is about memory layouts

    • @philipehusani
      @philipehusani 5 หลายเดือนก่อน

      @@nordgaren2358 Zig?

  • @DenisFalqueto
    @DenisFalqueto 4 หลายเดือนก่อน +1

    I feel that lifetimes are an abstraction leakage from the compiler to the user...

  • @NihadBadalov
    @NihadBadalov 5 หลายเดือนก่อน +3

    what’s the best resource to learn rust

    • @anandmahamuni5442
      @anandmahamuni5442 5 หลายเดือนก่อน +13

      The Rust official book

    • @antonkarpov9841
      @antonkarpov9841 5 หลายเดือนก่อน +10

      @@NihadBadalov Honestly, skimming through the official book and immediately starting to code in Rust is the best way

    • @NihadBadalov
      @NihadBadalov 5 หลายเดือนก่อน +1

      thanks guys

    • @aabassiouni1
      @aabassiouni1 5 หลายเดือนก่อน +1

      Look up rustlings also alongside the book

  • @LutherDePapier
    @LutherDePapier 5 หลายเดือนก่อน

    Ready to hear some hate.

  • @fuzzy-02
    @fuzzy-02 5 หลายเดือนก่อน

    Uhuh, you don't say?
    (Like I respond to my grandma)

  • @NihadBadalov
    @NihadBadalov 5 หลายเดือนก่อน +2

    also, why do you guys care if it’s in the stack or the heap

    • @aviadisto
      @aviadisto 5 หลายเดือนก่อน +2

      Variables which size is not statically known (like dynamically sized arrays) have to be allocated on the heap.

    • @NihadBadalov
      @NihadBadalov 5 หลายเดือนก่อน +1

      @@aviadisto thank you, but why does that matter?

    • @NihadBadalov
      @NihadBadalov 5 หลายเดือนก่อน +1

      I mean, why is it important to know that stuff?

    • @SMorales851
      @SMorales851 5 หลายเดือนก่อน +3

      ​@@NihadBadalov heap allocation is more expensive, so you'll want to use it only when you need to. In particular, it's because dynamic memory allocation is a more complicated algorithm, which in some cases requieres OS calls, which are slow.

    • @gusvanwes6192
      @gusvanwes6192 5 หลายเดือนก่อน

      ​@@NihadBadalov It only matters in compute constraints. This video doesn't really explain what you need to know about rust. The important part is that the types, enums, and lifetimes create a system that allows the compiler to proof the memory safety of your program.

  • @ThisIsAGoodUserNameToo
    @ThisIsAGoodUserNameToo 5 หลายเดือนก่อน +12

    Rust takes forever to compile

    • @antonkarpov9841
      @antonkarpov9841 5 หลายเดือนก่อน +14

      Considering just how much rust does in that compilation process that other languages need to do at runtime, it's understandable.
      Plus, a tiny bit of optimizations (lld, codegen-cranelift, disabling debug symbols for dependencies) can reduce the time by a ton.

    • @rcoder01
      @rcoder01 5 หลายเดือนก่อน +20

      You clearly haven’t experienced a sufficiently complex C++ codebase.

    • @julesoscar8921
      @julesoscar8921 5 หลายเดือนก่อน

      Honestly, it's not that long. You have to wait like 2 sec when after a successful build

  • @infastin3795
    @infastin3795 5 หลายเดือนก่อน

    Wrong

  • @donwinston
    @donwinston 5 หลายเดือนก่อน

    Shouldn't have to know any of this to effectively use a programming language.

    • @tiagomello
      @tiagomello 5 หลายเดือนก่อน

      You’re wrong

    • @donwinston
      @donwinston 5 หลายเดือนก่อน +1

      @@tiagomello How can I be? I've programmed in nearly a dozen languages as a software engineer for over 20 years without being conscious of any of this. If you have to know this sort of thing for general purpose programming to effectively use Rust then Rust is no good.

    • @donwinston
      @donwinston 5 หลายเดือนก่อน

      @@tiagomello No I'm not. You have your head way up your ass.