Considering Rust

Поделиться
HTML-код
  • Опубликовано: 7 сен 2024
  • The Rust programming language has become a serious contender in the space of "systems" programming languages, and has recently been adopted by many of the tech giants for "serious" projects. In response to this, more companies are now considering whether they too should add Rust to their tech stack. This talk hopes to help you make that decision. We go through how the language compares to many current alternatives and what the language has to offer, but also what it's primary drawbacks are and its long-term viability prospects.
    You can find the slides here jon.thesquarep..., or in PDF format here jon.thesquarep....

Комментарии • 303

  • @karsten600
    @karsten600 Год назад +46

    I'm learning rust atm and I've watched a couple of your videos by now. I'm impressed with your articulation, pronunciation, delivery and knowledge of Rust. You'll be the first person I'd recommend to anyone interested in learning the Rust language. Stay awesome, Jon! 🌻🌞

    • @sandipndev
      @sandipndev 9 месяцев назад +1

      I fully relate.

    • @PaulSebastianM
      @PaulSebastianM 8 месяцев назад

      He's a computer science PhD, **with a RUclips channel**! 😇

  • @padraicfanning7055
    @padraicfanning7055 4 года назад +430

    0:17 - So if Rust is an *Option,* that means that we can either use *Some* or *None.*

    • @sriramkota
      @sriramkota 4 года назад +204

      took me a second to unwrap that...lol

    • @uranixcz
      @uranixcz 4 года назад +41

      @@sriramkota That was really unEXPECTed.

    • @clitaiulian4497
      @clitaiulian4497 4 года назад +46

      Be careful, Rust is watching every *move* you make :)

    • @pictureus
      @pictureus 4 года назад +29

      @@clitaiulian4497 and every thing you *take*

    • @WouterStudioHD
      @WouterStudioHD 4 года назад +30

      @@sriramkota For me it was no match

  • @YuriySolodkyy
    @YuriySolodkyy 3 года назад +117

    It's nice that the fact that Rust has a great regex library is mentioned in drawbacks section.

  • @snarkyboojum
    @snarkyboojum 4 года назад +69

    Excellent overview. Perfect for sharing with my colleagues and friends who are already very competent in another language, but are Rust-curious. Thank you.

  • @தமிழோன்
    @தமிழோன் 4 года назад +88

    I’ve written a lot of C, C#, JavaScript, and TypeScript code. I’ve also briefly used Java, Python, Swift, and Golang. But man, Rust is the most elegant language of all.

    • @cowslaw
      @cowslaw 2 года назад +6

    • @Rana-yk6xn
      @Rana-yk6xn Год назад +1

      This is great! And it was two years ago already! How do you feel now? I'm still in my first months into Rust and i've been feeling so happy with my choice!

    • @aftalavera
      @aftalavera 10 месяцев назад

      You just meant woke! Be concise!

  • @kehoste
    @kehoste 4 года назад +144

    Best Rust talk I've seen up to now, really motivates me to spend more time on working with Rust...

    • @zyansheep
      @zyansheep 3 года назад +1

      @Cosmo Kramer ...and use a generous amount of *?*

    • @tomjoy3538
      @tomjoy3538 3 года назад

      @Cosmo Kramer ooooooooooooooo

    • @tomjoy3538
      @tomjoy3538 3 года назад

      @Cosmo Kramer ooooooooooooo

    • @tomjoy3538
      @tomjoy3538 3 года назад

      @Cosmo Kramer y

    • @tomjoy3538
      @tomjoy3538 3 года назад

      @Cosmo Kramer o

  • @ronlobo707
    @ronlobo707 4 года назад +198

    Great stuff, thanks for putting this together. Only thing I'd improve here is to normalize the video's audio as the volume fluctuates a lot.

    • @jonhoo
      @jonhoo  4 года назад +42

      Yeah, I know, it's not great. I tried running a couple of volume normalizers over it, and it didn't seem to help. Not entirely sure why. I think what happened was that there was someone manually controlling the audio levels during the presentation, and I guess they got it very wrong at times..

    • @MendeltSiebenga
      @MendeltSiebenga 4 года назад +26

      @@jonhoo Sounds like someone messed up the settings on a compressor in the signal chain and turned the attack and release times all the way up. Let me know if you still want to fix this. I have some experience mixing down audio for podcasts and can probably make this better.

    • @jonhoo
      @jonhoo  4 года назад +7

      @@MendeltSiebenga Thanks, I appreciate that, but sadly I can't replace the audio track on a RUclips video after the fact, so not much to do about it at this point. I suppose I could upload a new version and point people to it, but not sure that's worth it.

    • @MendeltSiebenga
      @MendeltSiebenga 4 года назад +7

      @@jonhoo yeah, its a bit annoying but still pretty comprehensible. Not worth re-uploading. And the contents of the presentarion make up for the audio 😁

    • @jonhoo
      @jonhoo  4 года назад +20

      For what it's worth, I've added a lavalier recorder to my Amazon wishlist to ensure that all future talks will have proper sound! 😅 www.amazon.com/hz/wishlist/ls/EI8GP25AL8FU?ref_=wl_share

  • @diarmaidmac2149
    @diarmaidmac2149 4 года назад +31

    I have watched a few of Jon's videos...man you have a serious aptitude for programming especially with Rust. Look forward to more videos popping up on the web from this guy!

    • @jonhoo
      @jonhoo  4 года назад +19

      Haha, thank you, I appreciate that!

  • @SmitPatel-or6rq
    @SmitPatel-or6rq 4 года назад +132

    I really like how this guy explains stuff

    • @StefaNoneD
      @StefaNoneD 4 года назад +10

      Yes, he's absolutely accurate in describing things! This accuracy is really, really rare!

    • @JannisAdmek
      @JannisAdmek 3 года назад +1

      me too, super clear and easy to follow :)

  • @kernel2006
    @kernel2006 4 года назад +16

    Hey, it's the guy from the Missing Semester lectures. Thanks for the talk!

    • @sagarladla
      @sagarladla 3 года назад

      You remembered. Thanks

  • @kevin5475845
    @kevin5475845 Год назад +3

    i've been reading rust on/off for a long time and finally bit the bullet. tried it and the compiler helps so much and is also helpful as f. my first project was a big mess with a lot of clones. then i rewrote it in a much better way after more reading and ran perfectly.
    i've mostly been programming C# and some C++ too. wouldn't say i'm advanced c++ but knew enough to use references and pointers easily and add libraries without problem and use them.
    i shot myself in the foot sometimes with c++ but rust feels a lot better. get it to compile and follow their rules and it just works. i recommend using clippy in the beginning too.
    steep intro curve but worth it

    • @kevinmcfarlane2752
      @kevinmcfarlane2752 Год назад

      Somewhat similar to me. I didn't use clone but my initial rewrite of a C# project wasn't in the form I wanted it. But a year later I revisited it after having worked my way through a fair bit of Rustlings and last week I was able to adapt it to the form I originally wanted (with interfaces -> traits). The compiler certainly helped!

  • @leonie9248
    @leonie9248 3 года назад +4

    Very good talk. Unfortunate audio but still absolutely worth it.

  • @ximengxo
    @ximengxo 3 года назад +5

    Great info about rust. I'm used to C++ and have been learning rust for around two months, and I find this very clear in explaining rust's concepts and differences compared to other languagues (and why they are so)

  • @user-vr7dv8yf9y
    @user-vr7dv8yf9y 4 года назад +7

    I am a student from China . I can tell from the video that you are definitely a geeker, if your video could be watched in my country , you will be popular very quickly. However not every chinese student who learn Rust can watch such nice videos.

    • @Bomag
      @Bomag 4 года назад +7

      Why not ask Jon if you can mirror this video but voiced over or subtitled in Mandarin? I doubt he'll have an issue with that.

    • @Stephanie-pv4hf
      @Stephanie-pv4hf 4 года назад

      一起学

    • @Stephanie-pv4hf
      @Stephanie-pv4hf 4 года назад

      老夏 同学你有学习群么?

  • @michalkandulski3748
    @michalkandulski3748 2 года назад +17

    As an experienced C/C++/Python programmer, I have to admit this video makes me really want to learn and use Rust. Thanks a lot!

    • @wanderlustfunk
      @wanderlustfunk 2 года назад

      Rust is asking for it :'D

    • @kevin5475845
      @kevin5475845 Год назад +1

      if you haven't yet. try it. it's a steep intro because of the compiler slapping your hands constantly because of all safety checks and working a bit differently. but after wards. it's really good.
      i've found C++ to be annoying to type in because of header/source and then all the ways to shoot yourself in the foot.
      python i guess kinda like my C# knowledge but i still like rust more so far even though i'm so far a kinda newbie more

  • @chsblue2
    @chsblue2 3 года назад +3

    One can feel your personal enthusiasm and joy you had while working with the language. Wants me to start right away. Very nice. Thank you, Jon!

  • @GenusvProgramming
    @GenusvProgramming 4 года назад +4

    This is an awesome talk! How can someone not like this video?

  • @thomasskarshaug7374
    @thomasskarshaug7374 4 года назад +4

    Thanks for the great video Jon! This is truly a great resource to share with others who are not entirely familiar with Rust when arguing for using Rust in a project.

  • @lyingcat9022
    @lyingcat9022 4 года назад +9

    Jon is so right through! I’m a bit of a language connoisseur. I’ve researched the inner workings of languages like JavaScript, C#, Python, Java, Haskel, Elm, C, Assembly and even x86 and RiskV instruction sets. Rust is the most exciting language to work with so far! Elm is another exciting one as a functional language for the frontend.

    • @arnox4554
      @arnox4554 4 года назад

      How do you think it would do in terms of rather low-level software like drivers, OSes, and software for embedded devices?

    • @dynfoxx
      @dynfoxx 4 года назад +1

      @@arnox4554 it works well. Not perfect but there is nothing stopping the core language from running there. You may need to port over the std. Or use nonstd libraries.

  • @tango2olo
    @tango2olo 4 года назад +8

    “Simplicity is the ultimate sophistication.”

    • @TheMrKeksLp
      @TheMrKeksLp 4 года назад +3

      Just like "Good artists copy, great artists steal" that quote is true but hard to actually understand.
      I mean, just take a look at Go for an epic misinterpretation of the sophistication of simplicity

  • @Iuckystrike
    @Iuckystrike 3 года назад +3

    I will listen to this advice and see how far I can get with Rust in a week.

    • @cb2738
      @cb2738 3 года назад +2

      how far did you get?

  • @bqwood
    @bqwood 4 года назад +4

    While the audio is not great, it in no way hampers hearing and comprehending what is being said. I heard and understood every word, and I thought the content was excellent.

  • @nyurik
    @nyurik Год назад +1

    I think there is a bug at [16:00] -- match decompress() has a match guard (if e.is_eof()) -- which means the match statement does not cover every case - it shouldn't compile.

  • @streetwear37
    @streetwear37 4 года назад +2

    The borrow checker is only hard if you are used to write Imperative and OO code. For Functional programmers this I still a less strict language since mutability are aloud

    • @streetwear37
      @streetwear37 3 года назад

      @FichDich InDemArsch I didn't say it was functional.. I'm just comparing the typechecker to those of the ML family

  • @tomasz-waszczyk
    @tomasz-waszczyk 3 года назад +1

    Really good explained Rust language, need to watch the presentation once more time. Thanks!

  • @oscarfernandez8791
    @oscarfernandez8791 4 года назад +3

    Awesome talk! Thank you for putting it together!
    Rust has been on my radar for a long time, but after this presentation I'll definitely going to commit to learn it.

  • @jujijiju6929
    @jujijiju6929 4 года назад +3

    This is well done, explains things without assuming much prior knowledge. Good stuff!

  • @adesharatushar
    @adesharatushar 4 года назад +1

    Immutable by default is single feature I want to learn and try Rust. Really good overview.

  • @shirshak6738
    @shirshak6738 4 года назад +9

    wow jon this will inspire people to use rust

  • @diarshukor9879
    @diarshukor9879 3 года назад +1

    I enjoy the elaborate character of your presentation and something I would do, so it's highly skilled. Good job!

  • @MrGeissT
    @MrGeissT 4 года назад +3

    So keen to see you do another talk, Jon! Hope to be there for one someday!

  • @Bkgoodman11
    @Bkgoodman11 2 года назад +1

    ALL Rust intros should be like this: Focus on the purpose and benefits - rather than the syntax!

  • @marlls1989
    @marlls1989 3 года назад +1

    I missed a comparison with Haskell, IMHO it is the language most similar to rust. Except that rust solves the problem of data copying in Haskell by allowing controlled mutation.

  • @someoneelse6976
    @someoneelse6976 Год назад

    Thanks for the video! I highly appreciate the quality of the material you are making and sharing! And not only as a rust-learner, but also as an English learner. 🙃

  • @sjatkins
    @sjatkins 3 года назад +1

    Abstractions that go away at compile time hurt reflection and anything cool you could do with it. That said I could use a more modern and clean system programming language in my kit.

  • @alphabetsalphabets5242
    @alphabetsalphabets5242 3 года назад +2

    19:14 in and it's doing a good job of convincing me considering I'm awful at writing documentation.

  • @Kaslor1000
    @Kaslor1000 3 года назад +2

    I wish all programmers that hold tightly to C++ would watch this, the world could be a better place if people switched from C++ to Rust

  • @sadeghmirzaee8258
    @sadeghmirzaee8258 2 года назад

    Very informative! I'm started to like to learn Rust Lang and this Presentation was very awesome and helpful. Thank you!

  • @dandymcgee
    @dandymcgee 4 года назад +2

    Man.. I saw the volume complaints in the comments and skimmed the video thinking "I don't know what they mean, seems fine to me". But sitting here now trying to listen to this is extremely frustrating and distracting. I really hope someone can figure out how to fix the leveling in this video because it's currently pretty damn unbearable. I'm about 4 minutes in and I honestly just can't listen to this anymore. It's like, hurting my brain. 😢 Hopefully you have better luck with your next talk. I'll subscribe and hope for more in the future. Thanks for sharing anyways.. hopefully some other people can work their way through the audio and get something useful out of it.

    • @jonhoo
      @jonhoo  4 года назад +2

      Yeah, it's really unfortunate. They had proper audio equipment at the venue, but somehow the recording didn't go as planned, so all I was left with was this recording of the webcast of the talk. And, sadly, it turns out that it's quite hard to clean it up. Even if I could somehow though, RUclips also doesn't let me replace the audio track, so I'd have to upload a new video altogether. I guess here's to hoping I'll do the entire talk again some time! I think it's a little easier on your ears if you keep the volume a little lower, but it's still not great..

  • @guillaumebalaine6166
    @guillaumebalaine6166 4 года назад +5

    Been coding in Rust for 6 month now, I use it even for things it's not good at, I don't really care.

  • @y1ink
    @y1ink 4 года назад +3

    Most loved language 6 years in a row

  • @ts-ny6mx
    @ts-ny6mx 4 года назад +9

    In Rust we trust!

  • @sexychicken1
    @sexychicken1 3 года назад

    hey, good talk. I started learning rust. Looking forward to good rust content from you

  • @toddfulton2280
    @toddfulton2280 4 года назад +2

    I like that Rust has Algebraic Datatypes, but they are by no means a "Modern" language feature, they've been around since the 70's.

    • @TheMrKeksLp
      @TheMrKeksLp 3 года назад +4

      Modern by systems language standards ;)

    • @gianni50725
      @gianni50725 2 года назад +1

      Unfortunately ADTs and their friend the match statement significantly increase compile time (the latter being NP-hard), so even though it was technically done around the 70s it didnt become practical until much later. I still love them though.

  • @streetwear37
    @streetwear37 4 года назад +1

    Rust is in few words, a imperativet language that use study of programming language (mostly functional) from the læst 40 years and use it. I still has to ufølsom what is the difference are in "strong" typing in C# and java and strong typing in ML language like F#, Haskell, sml and now Rust.

  • @sgill4833
    @sgill4833 2 года назад

    This is excellent for a rust beginner! Thanks 😊

  • @luismaflorentin
    @luismaflorentin 3 года назад +1

    Hi, thanks for this wonderful masterclass, but please please if it's possible upload it again with better sound quality, only 20 minutes play and my ears can't take it anymore. Thanks!!

    • @jonhoo
      @jonhoo  3 года назад +2

      Unfortunately this is the audio I was provided with. I've since bought a lapel mic to use to record future talks myself rather than relying on the capture process, but there's not much to do about this one. If someone had the skills + time to clean up the audio, and it made a significant difference, I might do a re-upload, but I think the audio may just be beyond repair. My suggestion would be to run it at a lower than usual volume and then turn on subtitles :)

    • @luismaflorentin
      @luismaflorentin 3 года назад

      ​@@jonhoo Ok Jon, great! I really liked your talk. Thanks!

    • @samuelleeuwenburg
      @samuelleeuwenburg 3 года назад

      @@jonhoo
      If you want, I can fix the audio for you. I think youtube still allows reupload of audio without needing to reupload the entire vid and lose all comments and views

    • @jonhoo
      @jonhoo  3 года назад

      @@samuelleeuwenburg No, unfortunately RUclips won't let you replace any part of the video without a reupload :'( They used to have a limited feature to do this to do soundtracks, but replacement is sadly a no-go.

  • @legorockfan9
    @legorockfan9 Год назад

    Wow, testing the docs code is brilliant

  • @JeremyChone
    @JeremyChone 3 года назад +1

    What a great pres!

  • @StefaNoneD
    @StefaNoneD 4 года назад +1

    Best Rust talk ever, in my opinion!

  • @Holobrine
    @Holobrine Год назад

    What if you could compile with a runtime for rich debugging during development, but leave it out for release?

  • @DomainObject
    @DomainObject 10 месяцев назад

    Sold! Fantastic presentation.

  • @ahmadhassan8128
    @ahmadhassan8128 4 года назад +13

    I am a happy rust programmer :)

  • @Dazza_Doo
    @Dazza_Doo Год назад

    Do I need to turn down the brightness on my monitor :D I know, it's for projector ;) I have an excuse to wear my sunglasses at night, just like the song

  • @TheCocoaDaddy
    @TheCocoaDaddy 4 года назад +1

    Great video! This really has increased my interest in Rust.

  • @timespeed1910
    @timespeed1910 4 года назад +3

    I honestly love rust and prefer it over c++ and I use C# most of the time so you can imagine that really not familiar with objects in rust since they are implemented so differently

  • @yy3617
    @yy3617 3 года назад +1

    This talk is REALLY convincing

  • @ozanmuyes
    @ozanmuyes 4 года назад +1

    Great talk, I'm sold.

  • @jacklong2182
    @jacklong2182 3 года назад

    Thanks for giving such wonderful explanation.

  • @lyingcat9022
    @lyingcat9022 4 года назад +32

    My man should be in sales! He could sell a lead weight to a drowning man.

  • @StonkeyKong
    @StonkeyKong 4 года назад +16

    Rust is incredible... finally a language with the power of C++ but modern features.

    • @gareginasatryan6761
      @gareginasatryan6761 4 года назад +4

      Rust isn’t really suited for large codebase GUI apps because OOP lends itself better in that setting. But as a C replacement, definitely

    • @firexgodx980
      @firexgodx980 4 года назад

      @@gareginasatryan6761 is rust not object orientated?

    • @gareginasatryan6761
      @gareginasatryan6761 4 года назад

      firexgodx980 not according to its devs.

    • @swapode
      @swapode 3 года назад +11

      ​@@gareginasatryan6761 Your statements are misleading, if not outright false.
      Rust is a multiparadigm language, one of the paradigms most definitely is OOP. It's just not dogmatic about it and doesn't follow every idea that other languages had (not least because the last few decades have taught us that some of these ideas were terrible). You want to work with fully encapsulated, virtually dispatched objects that live on the heap? Go ahead, it's your choice. You'll probably realize that most of the time you don't actually need the overhead that comes with that and instead organically reserve it to the parts where it's actually useful.
      The best thing is, Rust's strictness about things like ownership, mutability and the like enforces OOP best practices. You, and everybody else on the project, will actually use things like dependency injection instead of just talking about it and then still using circular references everywhere because it's more convenient... and we're pretty sure the GC will catch that (or: We can just fix it when we get segfault), right? And this will never run concurrently, right? Please.
      The "downside" is that you'll get punished if you don't understand the problem you're working on and its design requirements before you start typing. Of course you'll also get punished if you do the same in something like Java but in a less concrete way where you kinda know that your code smells but it's far less obvious that a major refactor is the only way out.

    • @TheMrKeksLp
      @TheMrKeksLp 3 года назад +3

      @@gareginasatryan6761 Don't forget that inheritance OO doesn't lend itself to GUI particularly well either

  • @9739718777
    @9739718777 4 года назад

    Best talk on the topic, worth million views,👍

  • @klirmio21
    @klirmio21 8 месяцев назад +1

    The only problem with rust is lack of vacancies

  • @boroborable
    @boroborable 4 года назад +2

    audio dynamics are so bad never seen anything like that. its like sin function applied to dynamics for the whole talk.

    • @jonhoo
      @jonhoo  4 года назад +2

      Yeah, it's awful. Nearest as I can tell, what I was sent was almost a screen recording of the web broadcast of the talk. And the mic itself seems to have had some very aggressive noise cancellation/dynamic audio tuning applied to it. For what it's worth, I now have my own lapel mic that I'll be using when I give talks in the future :)

  • @rodelias9378
    @rodelias9378 2 года назад

    Thanks for such an awesome presentation!

  • @thingsiplay
    @thingsiplay 3 года назад +1

    I really would like to listen to this talk (I already did on another of you), but the changing audio level back and forth is just too bad. Nothing against your talk, just the technical issue here that hinders me listen to it. I like your talks so far.

    • @jonhoo
      @jonhoo  3 года назад

      Yeah, it's really bad, I'm sorry. I had a mic and everything, yet for whatever reason the audio file the venue ended up supplying me with was this weird recording of a web meeting view of the presentation. My recommendation would be to lower the volume and enable subtitles (which I've written). The audio also gets slightly better after a while.

    • @thingsiplay
      @thingsiplay 3 года назад

      @@jonhoo This is great! I didn't even think about subtitles and that you have written them manually makes it very valuable. Thank you for all the efforts. I am now watching/listen/reading the talk now and it is very interesting.
      Rust is somewhat revolutionary and I can imagine 40 years from now people won't even understand how programmers in the past could even write unsafe code.

  • @doshirac
    @doshirac 4 года назад +1

    thank you, very informative overview and special thanks for being objective and including the drawbacks

  • @richard1598
    @richard1598 4 года назад +1

    Hi thanks for nice presentation :) Just one thing I wonder: is there a reason, that an extern marked functions still have to use the no_mangle construct instead of having this sort of auto-set? As some developer I generally do not want to be exposed to compiler-interna (i.e., I don't want to know that the compiler mangles normally as long as I don't really need to). I see no reason why external identifiers should be mangled ever?

    • @jonhoo
      @jonhoo  4 года назад +4

      That's a good question! The same question was raised back in the day I discovered: github.com/rust-lang/rust/issues/11089, and the decision not to have no_mangle be the default was decided in this 2014 meeting: github.com/rust-lang/meeting-minutes/blob/master/weekly-meetings/2014-01-21.md#no_mangle-for-extern-fns. To quote: "because it breaks the module system. if libraries A and B both define extern functions foo, if you make no_mangle automatic/implcit, then library C cannot link againt A and B simultaneously".

    • @richard1598
      @richard1598 4 года назад +2

      @@jonhoo Thanks for the research. Although, I don't really understand the reasoning. If two libraries would expose the same function they would "no_mangle" them anyways, having the same problem. Also I don't see how an external library wants to link against a mangled function. Isn't the whole purpose of no_mangle to enable this without recovering the changed name?

    • @jonhoo
      @jonhoo  4 года назад +4

      Yeah, I'm not sure I completely follow it either. I think it comes down to whether extern "C" (or even other externs) without #[no_mangle] is ever useful. I can't immediately think of a use-case, but I also don't work a lot on the FFI side of Rust development. May be worth asking over on the internals forums at internals.rust-lang.org/ for a better answer!

  • @SolidAir54321
    @SolidAir54321 4 года назад

    I'm new to Rust and this is a very useful talk and well-presented.
    Regarding the drawbacks, it seems that the inability to have pre-compiled libraries might be a big disadvantage. It means you can't hide your source code which is what you'd want to do if you want to sell a library. It doesn't seem like generics is a good enough excuse. Couldn't you just disallow generics across a library interface? Just have a library interface essentially be like a C interface?

    • @jonhoo
      @jonhoo  4 года назад +3

      Oh, yeah, I think I mention this, but it may not have come across clearly: you can absolutely compile Rust down to a library that uses the C ABI. That means no generics or other Rust-isms in the interface, but it will be binary only and easy to interact with just like C libraries are.

    • @SolidAir54321
      @SolidAir54321 4 года назад

      @@jonhoo Thanks for taking the time to answer Jon. Yes, it wasn't clear to me from the presentation especially since @57:00 it says "No prebuilt libraries".
      After watching videos and reading about Rust for the past week I really like it a lot. But there was only one thing that really turned me off though you might consider it minor. I don't get why the creators of Rust have to force their favorite style on everyone else. I'm particularly talking about the enforcement of the Egyptian brace style which I dislike. It makes much more sense to line up braces on the left so you can see that your scopes are lined up and your eye doesn't have to go searching for the opening brace who-knows-where at the end of some line. Makes no sense. The other one is the enforcement of snake case on variable names. I've always used camel case for everything (I really dislike underlines. I don't like typing them and it's a waste of a character). Though I can probably live with that more than the brace thing. I'm aware I can get rid of the warnings using an attribute or something. But will using my own style get me ostracized from the Rust community? And I won't be able to use any of the formatting utilities.
      I've been doing C++ since the early 90's and traditionally you have to be able to deal with other people's style. I realize the creators of Rust are going for consistency. But I don't see the advantage of Egyptian braces over lining them up on the left.

    • @jonhoo
      @jonhoo  4 года назад +2

      The language doesn't require that you do either of those, and you can disable the warnings as well if you'd like. You will find that those are both pretty universal in the Rust community, but they are definitely not _enforced_ :) You can also continue to use the standard formatter by changing its settings appropriately.
      That all said, the Rust community does seem to favor "do whatever rustfmt says", and I think there is immense value in that. Even though it may not be your particular preference, having a single uniform style helps readability a lot (which is why Go for example does the same).
      As for why Egyptian style, that I couldn't tell you. Personally, I prefer to fit more code on screen, so to me the brace on an extra line is wasted space to me. The function signature is already the "start block" for the scope, so why add an additional line at that indentation level? Whether that's the reason it was chosen, I have no idea. I really hope you don't discard a language as a candidate because you don't like how it aligns braces though!

    • @SolidAir54321
      @SolidAir54321 4 года назад

      @@jonhoo "to me the brace on an extra line is wasted space to me"
      First, you do not need to have an extra line. Just move the opening brace to the next line at the left. Second, white space is a good thing anyway. More so when looking at someone else's code.
      I don't like to trust indentation only. It could be off due to extra tabs or spaces.
      "The function signature is already the "start block" for the scope"
      Well, you don't know that until you go looking for the open brace, which is what really defines the start. And it's harder to notice whether it's there or missing when it's off to the right.
      I wouldn't decide not to use Rust just because of formatting. Before that I'll just format it how I want unless I'm working on someone else's code in which case I'll format it like they do. Who knows, maybe I'll start a movement to change the formatting since I think I have a better argument. Now Python, that's a different story. I'm not a Python programmer. But to require a certain white-space indentation to start a block? I can't help saying that was not a good idea and I'll never use Python just for that reason. :)

    • @jonhoo
      @jonhoo  4 года назад +2

      A brace to the left of indented code? That sounds awful! :p
      I guess I just don't have problems with using indentation for this. If all your code goes through the formatter anyway, you know the indentation is always right, and never "off".

  • @michaelchen591
    @michaelchen591 4 года назад +1

    Thank you for all your videos :)

  • @kaichaosun
    @kaichaosun 4 года назад

    Thanks for sharing this video.

  • @AMFLearning
    @AMFLearning 2 года назад +1

    #amflearningbydoing #amflearning #rust is awesomeeee

  • @Vagelis_Prokopiou
    @Vagelis_Prokopiou 4 года назад

    Great talk Jon. Thanks a lot.

  • @_myron
    @_myron 4 года назад +1

    If libraries have to be compiled from source does that means people cannot publish proprietary libraries?

    • @jonhoo
      @jonhoo  4 года назад +5

      Correct. Or rather, you're in the same position as with C++. You can't publish proprietary templates, since the compiler needs the code that is templated to instantiate the template for new types/values. Anything you can expose through the C ABI (so, for example, no generics) you can publish as shared libraries/object files.

  • @sjatkins
    @sjatkins 3 года назад +1

    Following compiler errors until it compiles again when refactoring completely and utterly sucks. That is donkey work you want the compiler or IDE, something on the computer, to do for you. Programmer productivity is every bit as important as all the speed and safety. Also it is a LOT more safe to not have to do this sort of thing by humans trudging through it.

    • @jonhoo
      @jonhoo  3 года назад +4

      The IDE can do much of it for you in Rust too, that's not quite what I was getting at. Instead, the fact that so much is checked at compile time in Rust means that even if you have to make large changes (maybe even tool assisted), it's much easier to be confident that you didn't miss something, because the compiler will probably tell you.

  • @nomcognom2332
    @nomcognom2332 5 месяцев назад

    Great talk!

  • @thegeniusfool
    @thegeniusfool 2 года назад

    Wave sounds. Sad when a talk seems quite nice. Enjoy!

  • @jorickcaberio1865
    @jorickcaberio1865 4 года назад +1

    wonderful tech talk. very informative and balanced. wish rust was easier to learn though.

    • @driedurchin
      @driedurchin 4 года назад +1

      Been struggling for a few months, definitely worth it!

    • @lyingcat9022
      @lyingcat9022 4 года назад +5

      I don’t wish that :) I think it forces you to learn about and understand deeper programming and computer science concepts. Which only makes you a better all around programmer, no matter your preferred languages.

    • @driedurchin
      @driedurchin 4 года назад +1

      @@lyingcat9022 absolutely agree! So many things you gloss over in other language rust forces you to confront. Plus it feels great to write once you get better

    • @frankstevenson5013
      @frankstevenson5013 4 года назад +3

      @@driedurchin Just give it time, and don'† give up. Rust is not intrinsically complicated, but has some new ideas that takes time to learn properly.

    • @climatechangedoesntbargain9140
      @climatechangedoesntbargain9140 3 года назад

      I learned "it" (actually the concepts present in Rust) in C++ already - the hard way 😐

  • @superspideyx
    @superspideyx 4 года назад +1

    Dang, this seemed like a great talk but it's kinda unwatchable with the audio issues! Please fix!

    • @jonhoo
      @jonhoo  4 года назад +3

      Unfortunately I cannot replace the audio track on RUclips once the video has been uploaded. It's also surprisingly difficult to fix an audio stream in such a bad state as this. I now have a lapel mic of my own to properly record future talks :) I would recommend turning the volume down and enabling subtitles.

    • @jaysistar2711
      @jaysistar2711 3 года назад

      @@jonhoo I'd use a compressor.

    • @superspideyx
      @superspideyx 3 года назад

      @@jonhoo Thanks for your reply! Will try your recommendation.

  • @sercanyildirimtugcann
    @sercanyildirimtugcann Год назад

    Guys please help me. With Rust, Can I write real time notifications system with APIs or ecommerce easily? Why dont I find any ecommerce Rust tutorial from scracth? Any help would be appreciated!

    • @Phantom-lr6cs
      @Phantom-lr6cs 4 месяца назад

      easily ? nope . rust is harder than C or C++ . cuz you need to use everything it gives and trust me it doesn't give you too much , barely it supports struct and you need impl stupid thing to connect struct and impl to each OTHER XD
      its boring and hard and time-consuming Xd and unless there's some real things being added up there there's no way it can be popular with its hell-ish syntax

  • @vheyney
    @vheyney 4 года назад +1

    Just need a serverless framework on top of kubernetes/docker, and rust will the next language to learn (or even better, yet another kube but in rust)

  • @gordonlim2322
    @gordonlim2322 3 года назад

    I know python and java but I don't understand the comparisons he is making in the start of his presentation. What topics do those concepts lie under? eg. runtime, gc, buffer overflows, data races, static typing etc.

    • @Marshblocker
      @Marshblocker Год назад +1

      runtime - processes that run while your program run e.g. garbage collector (gc)
      gc - garbage collector automatically frees unused memory in the heap
      buffer overflows - a rust array is guaranteed to not exceed its size at compile time
      data races - undefined behavior caused by multiple threads having unrestricted access to a shared resource
      static typing - variable types are determined and checked at compile time (its opposite dynamic typing checks variable types during runtime).

  • @ehsankhorasani_
    @ehsankhorasani_ 2 года назад

    Rust book has an object oriented in Rust chapter

  • @MarkusBurrer
    @MarkusBurrer 3 года назад +2

    in my opinion, no OOP is not a drawback

  • @alirezanet
    @alirezanet 3 года назад

    great talk thanks jon

  • @ivanm9674
    @ivanm9674 4 года назад

    Cool! Thank you

  • @fsouza
    @fsouza 4 года назад +2

    This dude has used Python a while ago... Twisted lol Amazing talk btw.

  • @naveendavisv
    @naveendavisv 4 года назад

    awesome intro for Rust

  • @a314
    @a314 4 года назад +2

    Great talk. What are your thoughts on #Dlang ?

  • @rodarmor
    @rodarmor 4 года назад +4

    This is a great talk. I appreciate that you started it in such a measured, polite way.
    I would have been like "Ayoooo, I'm here to tell you that you should use Rust, and that the language you're using is probably trash. Like straight dog shit bro. JavaScript: Trash. C: Trash. C++: Epic Trash. Java: Bootlicking trash. Haskell: You get a pass. Python: No types, intractable, total trash…"

  • @4pmvim
    @4pmvim 4 года назад +3

    Is rust friends with category theory ?

    • @huihuihuihuihuihui1
      @huihuihuihuihuihui1 4 года назад +4

      To some extent. The type system supports type inference in the Hindley-Milner style, monadic operators (such as the question mark (?) operator) and combinators are available for most of the built-in algebraic types such as Option or Result. Though type system is not as advanced as in certain function programming languages and currently lacking Generic Associated Types, Dependent Types, Higher-Kinded Types.

  • @kevinkkirimii
    @kevinkkirimii Год назад

    Is there an alien in the audio that is tapping into the talk ? I can hear some weird noises.

  • @anthonytonev1357
    @anthonytonev1357 3 года назад +1

    I want to use it but I can't stand its cryptic syntax and overuse of symbols and wierd prebuild names.

    • @jonhoo
      @jonhoo  3 года назад +1

      Syntax is tricky, because you sort of need syntax to be able to express additional concepts in the language. For example, Go has simpler syntax than Rust, but it also does not have many of the features that Rust has. Generics for example _basically_ requires introducing syntax. I think Rust strikes a good balance, but it's true that there is some syntax you'll have to get used to when you start out. Overuse of symbols is related to this, though I don't think Rust is a particularly egregious offender there?
      Not sure what you mean by "weird prebuild names"? Rust mangles names by default, that's true, but that's a very common (and sane) practice these days in modern languages.

  • @jatin_nagar
    @jatin_nagar 4 года назад +3

    Please make learning videos on rust.

    • @FlaviusAspra
      @FlaviusAspra 4 года назад +2

      He does. Check out his yt profile.

  • @arunnair5534
    @arunnair5534 3 года назад

    You are a rock star. Thanks for giving such wonderful explanation, this could be the future of languages. A evolution that #React #ReactJs brought.

  • @igorthelight
    @igorthelight 4 года назад +1

    I really like how he say: GO AWAY! :-)

  • @supercat4882
    @supercat4882 3 года назад +2

    The syntax is just too complex to be called a 'productive' language. I wish the syntax could be simplified someday. But the idea of memory safety offered by this language is awesome.

  • @ian3084
    @ian3084 4 года назад +1

    Huge C++ libraries are a bother in C++ itself

  • @vorname1485
    @vorname1485 4 года назад +2

    I bet, when there is a security vulnerability in moria one day, it will be called balrog :D

    • @igorthelight
      @igorthelight 4 года назад

      Most likely! :-)

    • @vorname1485
      @vorname1485 4 года назад

      @@Deukapi where did you heard such a thing xD

    • @vorname1485
      @vorname1485 4 года назад +2

      @@Deukapi Can you elaborate this in detail :D

  • @samferrer
    @samferrer 2 года назад

    I would not call them drawbacks, but dev opportunities