Rust or Go for my next project? WHAT TO CHOOSE? (as a senior intern engineer)

Поділитися
Вставка
  • Опубліковано 6 жов 2024
  • Hey! What should I choose, Rust or Go? This is my experience and my thoughts on this and they are likely to change :)
    Editor
    All my videos are edited by Flip. Give him a follow! / 88thpl He is also open to do more editing, so slide deeeeeeeeep into his dms.
    Sweet Hooooodie
    shop.theprimea...
    Links
    Linode: linode.com/prime
    Discord: / discord
    Twitch: / theprimeagen
    Insta: / theprimeagen
    Twitter: / theprimeagen
    VimRC & i3: github.com/The...
    Keyboard (15% off, I don't earn commission): bit.ly/primeag...
    #vim #programming #softwareengineering

КОМЕНТАРІ • 696

  • @ThePrimeagen
    @ThePrimeagen  2 роки тому +601

    If you like this comment, please hit the like button. it lets me know you like the talking commentary as much as other videos. Thank you very much ya algo

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +61

      yes i liked and hearted my own comment

    • @MATHURIN92
      @MATHURIN92 2 роки тому

      finally some good sales! Your insane, it's like giving away hoodies man!!!

    • @notlessgrossman163
      @notlessgrossman163 2 роки тому

      Ok good, more please! Do with Rust what you did with Vim: break it down and tell it like it is

    • @ricardorng
      @ricardorng 2 роки тому

      thanks now i've decided

    • @folaemmanuel7719
      @folaemmanuel7719 2 роки тому

      Awesome ❤️😍

  • @mgdotdev
    @mgdotdev 2 роки тому +1636

    Language doesn't matter, as long as you're editing it in Vim.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +397

      the truth has been spoken

    • @yehudamakarov
      @yehudamakarov 2 роки тому +34

      This is the way. I use jet brains though. That’s my personal issue lol

    • @abdirahmann
      @abdirahmann 2 роки тому +3

      @@yehudamakarov 🤣🤣

    • @nrn-insane
      @nrn-insane 2 роки тому +8

      This is the way.

    • @sohn7767
      @sohn7767 2 роки тому +15

      @@yehudamakarov then YOU ARE LOST

  • @MrAnandml
    @MrAnandml 2 роки тому +472

    Our company ...is now using Rust in production, especially embedded ML (inference side). I must say ...Man its one of the finest programming language humans ever discovered .

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +121

      hah, i do think its a great language. but your experience is a rarity

    • @amans6504
      @amans6504 2 роки тому +31

      *invented

    • @mattwilliams1844
      @mattwilliams1844 2 роки тому +30

      I agree, I work in embedded systems that monitor power grids, and we are switching to Rust for our newer systems and for our terminal driven testing tools. C/C++ is a fucking nightmare, and Rust is a beautiful work of art.

    • @harshwardhanshetty4683
      @harshwardhanshetty4683 Рік тому +4

      @@mattwilliams1844 letsss gooooooooo

    • @janise237
      @janise237 Рік тому +5

      @@mattwilliams1844 C is a beauty, man!

  • @Sky_ye
    @Sky_ye 2 роки тому +91

    I also had same problem couple months ago. Knowing already Node+TS & Ruby on Rails my tech stack didn't include performant multiplatform any-purpose language that didn't need installing any runtime libraries to execute it. Had to choose between between Go and Rust (I didn't want C++).
    After some pros and cons I've choosen Rust. It took me like 2 weeks to finish rust book (couple hrs a day) and many small projects to "feel the language" as it was my first low-level language, and understanding ownership, smart pointers first ever seen or raw multithreading with Arc Mutex and other "features" wasn't the easiest and other languages experience didn't help much with more advanced things. But couple months later (not focused on Rust, but used on some projects) I feel very natural writing Rust, and I don't regret my decision.
    From my observation Rust are much more multi-purpose tool than Go, I see Go mostly focused in webservers and microservices but there are not that huge community around other things like: Game development, Machine Learning, Crossplatform desktop app (Tauri) etc. many of them aren't production-ready but it's still growing. Also another thing is ATM for GraphQL Rust seems to be more attractive. Rust also gave me other look on "how other languages I use works under the hood". Also Rust compiler does great job here preventing most errors (other than logical) so when you'll manage to compile your code it'll likely work and won't crash. After learning Rust I've also took some time to learn about Go to see if I've missed the mark... aaand I didn't. Surely often I've used less code to accomplish same things but I've had runtime errors that almost doesn't exist in Rust even if you are beginner, maybe it's caused by libraries I used but sometimes it lacked types completion,I also didn't like way of structuring project to make every project package, Rust is much better here for me, and I'm sure that code maintenance are much better in Rust and it needs much less tests. Only thing I'm missing in Rust are Go compile time, even tho I'm using MBA M1 or I9-10900k PC it's noticeable and are the biggest pain of Rust for me at the moment. For less explicit and performance hungry things I prefer using things I know the best: NodeJS or (if possible by 3rd party) Deno (written in Rust) that can even create executable file to run anywhere.
    I don't think Go is bad language, It's great but in my situation Rust suits much better, and when Rust is not needed Node is enough. But if someone don't know any language knowing both are great combo. And I don't recommend Rust as first language to learn. Better first learn any easier language like Go, Typescript or Python to understand what's all about then trying yourself in Rust.

    • @jsonkody
      @jsonkody 2 роки тому +9

      Thx for elaborate, I'am at step 0. I am choosing between Rust & Go (chose Rust).

    • @Sky_ye
      @Sky_ye 2 роки тому +5

      @@jsonkody Try both and decide, and take right tool for right purpose

    • @spreadkit
      @spreadkit 2 роки тому +2

      This was a helpful comment. Thanks for the insight !

    • @sildcave3926
      @sildcave3926 2 роки тому +1

      Ty for advice

    • @cplusplussizeddick1430
      @cplusplussizeddick1430 2 роки тому +2

      hey how about go vs node? specifically for backend web development

  • @worgenzwithm14z
    @worgenzwithm14z 2 роки тому +292

    I wanted to say "you should learn Haskell, because side effects are for losers"
    but then this video was very wholesome and earnest so now I don't know what to do

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +180

      i'll accetp your joke, laugh at it, and tell you that there are no losers using haskells because no one wins using haskell

    • @JeffsterProductions
      @JeffsterProductions 2 роки тому +53

      There are 2 kinds of programmers: those who ship code to production, and those who use Haskell

    • @gimlam5909
      @gimlam5909 2 роки тому +2

      @@JeffsterProductions I got to say Cardano ships, though they did regret choosing Haskell at one point. Evan Czaplicky also ships.. when he pleases, which is just being badass. Richard T. Feldman somehow successfully had his company's Java back end completely substituted with Haskell. These are but the ones I'm aware of.

    • @francisking708
      @francisking708 2 роки тому +4

      Learn Lisp.

    • @mohammaddh8655
      @mohammaddh8655 2 роки тому +1

      @@ThePrimeagen bro that was harsh lol

  • @lucgeorges4360
    @lucgeorges4360 2 роки тому +242

    I'd argue learning Rust is kind of like learning C, in the sense that it teaches you programming fundamentals that you'll be able to translate to any other language you learn. It has definitely made me a better programmer, though I agree it's tough finding a job where you can do Rust.
    EDIT : I use vim everywhere

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +80

      good. vim is the best
      but the c thing, unsure about that. c forces the fundamentals whereas rust has a lot of the feelings of ahigher abstraction where you don't really know what is happening.

    • @lucgeorges4360
      @lucgeorges4360 2 роки тому +15

      @@ThePrimeagen maybe fundamentals isn't the right word for Rust, rather concepts that are useful. I picked up the language when I was already somewhat experienced as a dev and have found the way you think about coding when writing Rust personally very useful!

    • @ninjaasmoke
      @ninjaasmoke Рік тому +6

      just learn c

    • @PanosPitsi
      @PanosPitsi Рік тому +6

      @@lucgeorges4360 We had to learn c in the first semester in uni and the final exam was all about pointers. Before I just knew some python, I learned 1000x times more about computers in a month.

  • @calder-ty
    @calder-ty 2 роки тому +116

    I love Rust so much, but solid advice about go. For personal or helpful side projects I always find myself turning to it. But I can't argue that if you only have the time to choose one, currently as it stands, Go is the option that the market wants right now.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +29

      yeah. it does sadden me as i really do like rustlang, but boy howdy, can you get a job in go so easy

    • @theStumblinbear
      @theStumblinbear 2 роки тому +15

      Rust is my favorite language by far, but Go is definitely easier to learn. It does what it's designed for fantastically

    • @levizin917
      @levizin917 Рік тому +1

      rust is gonna pass go for sure

  • @heXan
    @heXan 2 роки тому +12

    Thanks for the video. I'm programming now for more than 20yrs with first setting up and using linux(and doing the distro hopping until now, but settling now on debian) in '99 at 10 to recover some falsy partitions on a disk and using win95 to mainly fuck around in the registry keys to change folder colors and from there on to study physics(learned C in a course at university and later python and also was doing fortan77-/95 for the BA./Ma.Thesis on a parallel clusters for computing black holes and gravity fields) .
    I now mainly do connect old-/new-production machines in the industry and also doing mainy cloud, full-stack apps for data-science of the things happening in production for these machines in different companies. I even had my fair share in further education in blockchain techs. and implementing some concepts in the production industry (IBM-hyperledger, solana-stuff and even with ETH-layer 2-stuff...)
    Anyway I'm not getting to the point and just wanted to set up some context. I tried to learn GO but I could just not justify why I should learn GO when there are so many other languages, frameworks and libraries which one can use. I hate Java or Kotlin, but couldn't I use them instead of GO? Does the simpler syntax justifiy all the black magic going on in the back?! I'm not too well versed on these topics because I wanted to avoid them. (Sorry, your main point of telling former yourself was not being ignorant about other peoples work and framework. I fully understand but I want to exclude the java-ecosystem from this!).
    I started to learn about Rust 4 years ago, started to get a little bit comfortable to write production code about a year later and since then I still don't fully grasp the language as a whole(macros, atomics, etc). I implemented projects on embedded IoT-projects, robots, backend-services and even simple TUI-stuff. I still don't feel very sure that my code just works, but one thing is clear.
    I had never, ever encountered a bug, which was not a logical mistake by me or the team in production. All these programs written in Rust were fast, never gave an unexpected output and never shut down or failed in production. I never experienced such stable programs running in production. In the very, very rare case something panicked or terminated, it was because of a programmer's 'wrong' logic.
    That's why I really see rust taking up a prime spot in the future for reliable 'stuff' working in the background of everthing else.
    It starts with the linux kernel modules extensions as we saw some time ago and I hope we will see more things coming from this.
    I even have some programs written in fortan77 which are less accurate, slower to execute and many more times much more complicated to understand than rust code(don't get me started on subroutines...).
    Rust beats these 'heavily' optimized fortan programs in my limited empirical experience by sometimes 15% less execution time.
    EDIT: Sorry, I forgot to add: English is not my native lang. and I fucking love Rust-Apps in Production! It's so great to never see a 'Segmentation fault'

    • @d-shiri
      @d-shiri 2 роки тому +2

      Your English is great. :)

  • @harunsheikhali5179
    @harunsheikhali5179 2 роки тому +11

    DUDE you have no idea how much you influenced my decision to learn Go lool :)

  • @jhonsen9842
    @jhonsen9842 3 місяці тому +2

    C/C++ both are Legend how many programming Lang will come no one can beat these two.

  • @levantos
    @levantos 2 роки тому +13

    I will say whilst I've been looking for jobs this summer in 2022 I've seen a lot of new Rust jobs popping out of the woodwork. It's been a genuine suprising amount. There's fullstack frontend leaning roles that use Rust. There's been junior Rust positions I've seen that don't even require strong Rust skills. I've seen crazy junior software engineer positions in fintech using Rust for £80k+. HOWEVER, definitley more GoLang jobs out there but hey, watch this space. I think Rust is really snowballing with it's adoption.

  • @nodidog
    @nodidog 2 роки тому +15

    Been learning Go for the last six months or so, always nice to hear positive reinforcement 🥳

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +6

      yayaya! Its a great language. i love it a lot.
      Rust is so fun though, hard not to want to write everything in it.

  • @SquidwradThomas
    @SquidwradThomas Рік тому +8

    This was a crucial conversation that was significantly needed, even to this day i question my quest to learn rust. I have a long history with Java and python so I should have definitely learned go for it’s simplicity but I loved rust speed so I gave it a try and I guess I’m surviving.

  • @edoardocostantini2930
    @edoardocostantini2930 2 роки тому +60

    I've been working with rust for six months and I must say I wasnt really into it in the beginning, the learning scale is steeper than a wall and it can be frustrating. Once you get the hang of it though you start to appreciate all that it has to offer in terms of compile time checks and memory management. Rust coupled with a decent test suite makes it very hard to have runtime errors. On the other hand I think go is by far gets you the most value per time spent learning between the two and in terms of compile time leaves rust in the dust which is a God send if you're into tdd.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +43

      One thing I appreciate about both languages is they took testing as a first class citizen. For me, that is the most important thing

    • @Asrashas
      @Asrashas 2 роки тому +2

      Yeah, compile time in rust is somewhat bad. But OTOH, you don't really need to compile as often. rust analyzer or cargo check is enough, until you have to actually try out your program, after a while. Because of the compile time checks that you mention.

  • @DevlogBill
    @DevlogBill 2 роки тому +7

    I don't know if you should be creating UA-cam content for programming or stand-up? But your hilarious and entertaining! At the same time, you provide very informative content, thank you.

  • @ggalvaorn
    @ggalvaorn 2 роки тому +32

    I particularly enjoyed the "Go from there" bit.
    This is the right choice.

  • @jonathancamarena3117
    @jonathancamarena3117 2 роки тому +16

    Rust is an awesome language if you like to know WHY things are they way they are. The burrow checker will tell you why you can't do something. The compiler will give you smart suggestions on how to write working code which is also nice.

  • @earthling_parth
    @earthling_parth 2 роки тому +10

    I had a feeling it would be go overall w.r.t to current situation. Can't wait for GO/Rust comparison video Prime!

  • @GoWithAndy-cp8tz
    @GoWithAndy-cp8tz 7 місяців тому +3

    I'd like to be hired in some nice company to build my experience in programming since I whole my life was a Linux Administrator (just average by the way) and wanted to do more creative work.
    Programming was my dream job since I can remember. Even if I had to work at McDonald's to survive I will code everyday overtime to be alive ;) Cheers!

  • @lala123nne
    @lala123nne 2 роки тому +19

    I agree with your advise. Coming from C++ I love Rust buuuut the simplicity of Go is unbeatable, so yuo can have something working in no time plus the runtime speed of Rust is not necessary on every domain.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +13

      yeah. i literally have spent a lot of time creating web servers now with rust and have yet to successfully create one that _really_ performs well. its actually really hard.

    • @SkullTraill
      @SkullTraill 2 роки тому

      So is there really significant performance difference in go vs rust (question is asked by a JS/TS coder).

    • @lala123nne
      @lala123nne 2 роки тому +2

      @@SkullTraill potentially yes!, but that "blazing" performance of Rust like I said before I think is very niche, from the top of my mind, some trading algorithms, high performance proxies ala envoy, things like that, the same applies for C++. I have seen lot of code written in C++ which could perfectly been written in go or java because the raw performance of C++ really was not needed.

  • @meltygear5955
    @meltygear5955 2 роки тому +5

    "...what are your goals, what are you building, and Go from there" I see what you did.

  • @holonaut
    @holonaut Рік тому +7

    Solid advice for learning a first language. But if you already have a job as a dev, the next language should be purely based on your passion. Since you already know a language that you can get a job in. Learning a language purely based on how easy it is to find a job in it right now will only hurt you in the long run.

  • @yannickpeter8607
    @yannickpeter8607 2 роки тому +28

    Last year i hired in a company which mainly uses go. I was a bit concerned if it would be the right fit for me (mostly done python and java before)... I am now absolutely loving it! Migrated all my sideprojects to go.
    Even some cli tools. Cobra and Viper are awesome libraries for that.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +7

      Yes! Cobra is pretty neet though super overkill for most things.

  • @paul1
    @paul1 2 роки тому +5

    How to choose a language:
    1. Pick your favorite mascot
    2. Buy all the swag and stickers
    3. Grab a dubious benchmark and vociferously claim superiority over X-lang.
    4. Repeat when cool new mascot appears

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +3

      Dude, number three is such a common thing I see. I cannot tell you how many people try to say what's faster than something else. They are full of shit and they have no idea what they're doing

  • @jingqianliu7078
    @jingqianliu7078 2 роки тому +5

    Companies, in general, need something that can write POCs and MVPs fast to show clients and put into the market. The least they need is a language for which you need to spend a week to learn to write a for loop.

  • @fixer8173
    @fixer8173 2 роки тому +4

    More videos like that! Love the opinion, didn't know what to choose, started learning rust, but man :D

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +3

      i like rust a lot, like a lot, its just not great if you are trying change your life :)

  • @renanbrayner984
    @renanbrayner984 2 роки тому +4

    Learn both! I'm learning Rust mainly for wasm stuff and i'm planing to learn Go afterwards

  • @salamander1782
    @salamander1782 2 роки тому +4

    ok you got me with the discord argument hahah.
    love your content!! I hope to eventually learn both

  • @hyblm
    @hyblm 2 роки тому +26

    I'm in my first year of uni and I feel like the rust book is just such a great resource about a lot of good to know concepts in general. The rust job situation will hopefully be better by the time I get out of uni.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +14

      now this is very likely. The amount of rust jobs in 4 years should be large.

    • @VascoCosta
      @VascoCosta Рік тому +7

      This is very true. I've graduated in computer science 15 years ago and while I was lucky enough to be taught C++ by a great teacher and reading good books, still nothing compares to the Learn Rust book. With over 20 years of programming experience, I'm currently reading the book to learn Rust and I feel like I'm learning a lot about programming in general. One of the great aspects of Rust and this book is that you'll get better at programming in general, no matter which language.

  • @iamtheV0RTEX
    @iamtheV0RTEX 2 роки тому +56

    For someone who just wants to learn and isn't restricted by time or money, I would say Rust is a better choice. Rust is hard to learn because Rust is fundamentally different from pretty much any other language, and forces you to understand your code on a deeper level. Time invested in learning Rust will pay off even if you don't end up using Rust, because concepts like reference pointers, stack vs heap allocation, mutability vs immutability, and algebraic type systems are useful in virtually all languages. Languages that hide these details from you make it easier to go from project idea to a working prototype, but they aren't going to make you a more well-rounded computer science expert, and they won't help you when these abstractions fail and you have to fix a dangling pointer or deadlock condition in your code.
    But yeah Go will get you a job way faster than Rust. And sometimes you gotta prioritize paying the bills.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +9

      I pretty much feel the same way as you.

    • @jessepinkman144
      @jessepinkman144 Рік тому

      Thank man, I’m that someone 😊

    • @kqvanity
      @kqvanity 4 місяці тому

      couldn't put in a better way

  • @GeorgGrabler
    @GeorgGrabler 2 роки тому +22

    I mostly use Go for APIs, automation and stuff like that, I do use Rust for controlling hardware/SoC boards and the peripherials attached... where Rust is a lot more suited for in my opinion than Go.

  • @ttcc5273
    @ttcc5273 Рік тому +6

    For me, the initial choice years ago was C++ or Java. I chose Java because Java was new and I was just starting out, so I was on an even playing field with everyone else.
    Recently I wanted to learn a new language. I narrowed the set to Python, Go, or Rust.
    I chose Rust because I like the philosophy behind it: code that will run forever, become old rusted infrastructure. I also like how it fits the same niche as C without the buffer/pointer security risks. And I like how it feels like programming by contract, which has been an approach I’ve used to make Java more declarative and less boilerplatey.
    I decided against Go because it is yet another garbage collected language and the JVM world is full of those… and I wanted to stretch my brain. And Java still pays the bills for me. Plus when I looked Go meant Google… no thank you.
    As for Python, I like how it is a front end glue language around a lot of domain-specific C libraries, and it seems easy to get started with. But, since I wanted to stretch my brain, Rust’s memory management and support for functional style had already won. And if Python libraries are largely in C… well, why not learn Rust to see if it is a worthy successor to C.
    Saying all this, it occurs to me that I chose Java which I saw as a successor to C++, and now Rust as a successor to C… is Go a successor to anything?
    I imagine Google would like to own a successor to Java and to avoid paying license fees to (and having court battles with) Oracle.
    But I’ll stick with Java since I like it and it pays well, and I’ll branch out into Rust because it’s everything Java isn’t.

  • @garethalliday833
    @garethalliday833 Рік тому +3

    I agree, Go's major advantage is that it's very simple like C

  • @arturfil
    @arturfil 2 роки тому +9

    I learned C a while ago to do networks and later on to do a graphics engine. It's funny because recently I dabbled with go and rust. For me Go seems like a weird mix between python typescript and C where you can use if for microservices and api's and tends to be easier and faster to use than C# and Java. Seeing Rust it, the little I've seen, looks like a mix of python, C and C++ but where a it's a more tilt towards the C languages and it's good for more low level stuff a.k.a linux kernel dev, game engines from scratch, microprocessors maybe?
    I did an API with Rust in actix, not fun at all, I'm doing another one in Go waaaay easier to pick up. Long story short, there isn't and will never be a language that does everything therefore learn languages that are proper for your project.

    • @theroboman727
      @theroboman727 2 роки тому +2

      Yes, rust is better for things where you would use C/C++. But the problem is that C and C++ were designed without focus on robustness and safety. Rust's safety, maintainability and robustness is better than almost any language out there. Go can get a task done quicker but its going to perform worse and be less robust.

  • @abdirahmann
    @abdirahmann 2 роки тому +5

    the way you said "rust... you know... there's like... No JObS" at 1:27 am dead!! 🤣🤣💀

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      hah :) the market is rather slim

  • @esquilo_atomico
    @esquilo_atomico 2 роки тому +20

    I was in doubt between Go and Rust so I choosed Elixir

  • @kylewoock
    @kylewoock 2 роки тому

    Thanks Prime! that is good advice and that is a good way of looking at things.

  • @pinchoboo736
    @pinchoboo736 Рік тому +3

    After carefully considering this advice I have decided to pick randomly.

  • @maninalift
    @maninalift 11 місяців тому +1

    For learning, there might be value in learning both at the same time, building the same functionality in parallel. You will get stuck on different things in the two languages. That might seem bad as you'll get stuck twice as much and obviously do more work but
    1) when you get stuck on something in just one language but can build it in the other, it separates the design problem from the language problem, once you build it in one language, you understand it better and know what you need to figure out in the other language
    2) you can always switch to whichever feels more fun in there moment, which feels like skipping class, and helped you keep motivated, particularly if you are a bit ADHD

  • @grapesalt
    @grapesalt 2 роки тому +3

    thanks a lot, after a lot of thinking I choose procrastinating.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      A very classic and time tested tradition

  • @aus10d
    @aus10d Рік тому

    i appreciate this video and the comparison. useful advice for how to consider this choice

  • @computerscience1152
    @computerscience1152 2 роки тому +1

    I crazily love this kinda content

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому

      awesome! That is really great! I actually really enjoy making this kind of content.

  • @ozzyaararon
    @ozzyaararon 2 роки тому +10

    I'm hella (yeah I said it) into BJJ and wanted to both learn a new language and make a simple diary style App. I'm a Ruby/JS guy and decided Elixir would be nice to learn. The App likely would've taken 2-3 days with Ruby & JS to get something very usable. I'm about 21 days in and have nothing usable. Elixir has so much worse documentation and guides and tutorials than Ruby/Rails/JS. So yeah, community is huge when learning and perhaps sometimes it is worth just banging out a working prototype so you can get a tool/app you want/need and then moving on to redoing it in the language/framework you want to learn :P

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +2

      yeah, jumping into new envs, especially new envs with new paradigms make it REALLY hard to learn :)

  • @luiscarloscorderopena7030
    @luiscarloscorderopena7030 2 роки тому +4

    clearly next project needs to be done in javascript, it is after all the BEST language in the world, what are you doing prime?
    PS: love your videos!

  • @jsonkody
    @jsonkody 2 роки тому +4

    Hmm really good points, thx. I choose Rust cause JS is my "bread and butter" but I like to dream high and build awesome stuff out of 'nodejs' scope while also learn system programming ;)

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      not a bad approach

    • @Simple_OG
      @Simple_OG 4 місяці тому

      Good luck, I also choose rust with actix-web

  • @LtdJorge
    @LtdJorge 2 роки тому +4

    Yes, I am crying in Async a bit. I haven’t cried in the borrow checker yet, because I have been ignoring the parts that I haven’t needed. I started learning Rust by following Peter Shirley’s Raytracing in One Weekend, and that is very simple programming, it’s more computation than anything. It was working perfectly until I got to a point where I noticed that something is wrong in my math, so when I move either X or Y in an object the same happens. I still haven’t found where the problem lies.
    However, I’m doing other small projects in Rust now, and that’s where I’m using async.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +2

      yeah async is a beast. but you should already be in and potentially through the borrow checker then :)
      if you can assign vars and move them around and never have to worry about how to do that, then you have made progress.
      the last piece is the lifetimes, but even i don't have the best grasp of how to do use &str throughout the program and cause minimal copy yet (working on it).

    • @LtdJorge
      @LtdJorge 2 роки тому +1

      @@ThePrimeagen yes, your last paragraphs is where I'm at. I kinda know how everything works, but don't have a solid grasp of it. Sometimes the compiler or IDE say something doesn't work, so I rework it until it does, but don't totally understand why.
      Going over this is my next step.

  • @Pbertrand_dev
    @Pbertrand_dev 2 роки тому +1

    I have absorbed your opinions and will use them to my benefit. Yayayaya

  • @fishfpv9916
    @fishfpv9916 2 роки тому +10

    I think rust currently has a niche advantage over Go when it comes to web assembly projects. With that being said web assembly is really hard to work with as your project grows in complexity. It feels that new useful features are landing everyday plus as the project grows there is no best practices or structure.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +6

      yes, i am very excited for the web assembly sstuff and plan on investigating soon.

  • @wylelias
    @wylelias 2 роки тому

    Answered all my questions!!! Thanks a ton!

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому

      wait till you see my latest video... it flips this on its head

  • @roccociccone597
    @roccociccone597 Рік тому +5

    I fully agree. Go is a great language and it's perfect if you want to land a job. I was recently hired as a main dev to aid in the migration of 2 applications from a python backend to Go, because they ran into pretty crippling performance issues. But as a personal side project I've been learning Rust and found it to be very pleasant to write. It has some very unique things about it, but it's fun to write, unlike C++ which I never really enjoyed too much.

    • @JimRohn-u8c
      @JimRohn-u8c Рік тому +2

      Would Go be a good choice to start building applications in to become a full stack or backend developer?
      I'm currently a data engineer using mostly SQL and Python.
      I'm learning JavaScript, HTML, CSS as well.
      I hear a lot of people say learn C#, Java, or Node Js instead of Go.
      I was hoping to get the pros and cons of learning Go for Backend/Full-stack development from some experienced Go developers.

  • @desengenho1539
    @desengenho1539 Рік тому +1

    I'm using rust for the first time right into my startup, specifically for one module, I'm the only person allowed to touch it, and it is going pretty well

  • @MrRefael33
    @MrRefael33 2 роки тому +6

    I think Rust is a rising star of last year and I believe it will be the rising sun more 5 years ahead 🌞.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +3

      this i can totally buy. It is likely that this video can be redone in ~9 months even.

  • @marcello4258
    @marcello4258 2 роки тому +5

    Primeagen, thanks! I code mostly for myself and I hate everything which needs a GUI (so web is not in for me) and love CLI/TUI tools for my Linux machine(s)

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +5

      Sounds like you have some rust in your future

    • @marcello4258
      @marcello4258 2 роки тому +2

      @@ThePrimeagen better there than on my car I guess ;)

  • @oliverfoxi
    @oliverfoxi 2 роки тому +30

    I used PHP, JS, TS, Go, Python and Ruby in my work. And I can admit, Rust is the best

    • @lars-ragnarhaugen577
      @lars-ragnarhaugen577 2 роки тому +6

      So you never used Rust, but you admit it is the best?

    • @oliverfoxi
      @oliverfoxi 2 роки тому +4

      @@lars-ragnarhaugen577 I use Rust now. That's why it's not in a first list)

    • @mike-2342
      @mike-2342 2 роки тому +2

      Cool opinion

    • @arturfil
      @arturfil 2 роки тому +3

      @@oliverfoxi What did you use JS, TS for? and what do you use Rust for now?

    • @HermanWillems
      @HermanWillems 2 роки тому +1

      @@arturfil Javascript for frontend, Typescript for front end. Now RUST for front-end. Can you use Go for front-end? no ? ok :)

  • @abiodun6897
    @abiodun6897 2 роки тому +3

    You're my favorite UA-camr 😂, I'm not sure if I'm here for the jokes or golang

  • @Maquiz89
    @Maquiz89 2 роки тому

    Dude just found your channel but I love the honesty ❤️

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      ytytyt! i try the no bullshit approach

  • @sirnawaz
    @sirnawaz 2 роки тому +9

    I know many languages (C++, Rust, Go, Haskell, TypeScript, JavaScript, Python, C#, Java, Clojure) and have expertise on Modern C++ (I know its intricacies). So I didn't find much difficultly learning any language including Rust... and well even Haskell (though it's quite different). My advice is: learn Go and use it by default. Think of it as better JavaScript (or TypeScript, though TS is more expressive) or typesafe Python. But if you need speed and work in memory constraint environment, then use Rust, or C++. So it all depends on the use cases. If your problems can be solved using Go or TS, then prefer that. Do not use Rust just to show off! Rust is definitely more expressive and safe language though!

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +4

      these are facts.
      most people don't even know what a constrained env is though. Most people that write rust use 30% of the cpu for SPEEED

    • @sirnawaz
      @sirnawaz 2 роки тому +1

      @@ThePrimeagen Yes. That's true. That is why most problems people solve can be solved by Go/TS/Python etc. I dont prefer Python though for big problems. I like statically typed languages more.

  • @runtimejpp
    @runtimejpp 2 роки тому +2

    The answer to all my questions in life

  • @moostafashafaei
    @moostafashafaei 2 місяці тому +1

    I chose Rust as the programming language for developing my decentralized application (DApp) on blockchain because of its performance, safety features, and thriving ecosystem

  • @justprogramming4435
    @justprogramming4435 2 роки тому +2

    Elixir is another great language to consider for almost anything that GO might be considered for.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      yeah... but job market again. its so small.

    • @justprogramming4435
      @justprogramming4435 2 роки тому

      @@ThePrimeagen I think it goes both ways. I think when you learn a "niche" language it also open doors that you might not have otherwise. I got a gig at PepsiCo primarily because I knew Elixir. I think if they were hiring GO devs the pool would be so large it would be much harder for my resume to get noticed.

  • @masnoesnada
    @masnoesnada 2 роки тому +5

    I dont think expectations to be hired should be based on the number of positions available. Actually there is a big deficit of technical workers and strong demand persist in every segment.
    Ruby is a language that got to its peek years ago, and its far of getting back to the game any time. Still you can find pretty interesting jobs and very well paid. That is because even if being a small ecosystem they still need lot of programmers and Ruby world tends to be very exigent in terms of software patterns.
    Learning a language like Python can led you to many more options than Ruby, but you enter in a more diverse world where knowing Python is only the top of the iceberg, not to talk about the thousands of trash positions where no skill is demanded and the need to fill a slot creates a terrible position for anyone who wanta to grow and learn technology.
    Focusing on your interests in a specific technology niche is the best way to get a career. If you think learning go is the best way to build any specific kind of stuff and you can be good at it, go for it, sooner or later job is going to happen. Trying to do what everybody does is not going to put you well in any application as you will have to compete with people that are really good at it because they focus on their skills.
    If you find Rust interesting because you bet is going to be optimal is some kind of task youre good at it sure its that jobs are going to happen, its already a solid language and many companies are adopting it.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +4

      not too sure about this statement. if you love doing Haskell, that is great. But if you focus on it, especially as someone trying to find a job, it is going to take you significantly longer than just doing the "right" language.
      the world is not just about ideas but practical tradeoffs. You love rust? Great, so do I. Its hands down the best language for certain tasks, and that is a rarity to have in our world. But I wouldn't go into it thinking I can get good and just get a job and get paid for it. It will be a hard row until I get hired.
      But I do agree with the idea that you should focus on "what" you want to be doing with your career. That is a very reasonable position to take. Which should lead you to picking a language that is great for that if you wish to get hired. Which should lead you to go or typescript unfortunately in most cases.

  • @RoyRope
    @RoyRope 2 роки тому +4

    I kinda like Go using it for about 9 months professionally now, would like to try Rust sometime.

  • @kalvinpearce
    @kalvinpearce 2 роки тому +3

    Ferris is just too cute to resist! 🦀

  • @yo-meeguen5822
    @yo-meeguen5822 Рік тому

    Concise and clear from the start
    as a person with ADHD I appreciate it.
    Like and sub

  • @tristanlukens7158
    @tristanlukens7158 2 роки тому +1

    "The little crab dancing song is also really exciting" lol

  • @JohnnyThund3r
    @JohnnyThund3r 3 місяці тому

    Far more interested in Go after learning it's a compiled language, it seems to be just as fast as standard C code, yet more feature rich and easier to understand.

  • @azatecas
    @azatecas 2 роки тому +3

    hey just found your channrl and im hooked! im hoping to transition from JavaScript development to system level languague

  • @ekiaka
    @ekiaka 2 роки тому +2

    I’ll just stick to Typescript for bigger projects and as long as I don’t need to use any only in Go available packages for cloud. Go’s error handling is just horrible and I’m not talking about the fact that you should always check for errors but the fact that when a package you use decides to print fatal/ use panic, your app crashes and there is no easy way to prevent it as with try and catch. You have to build your own panic recover functions … It is just terrible. No idea about rust though

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      I think very few packages panic/print fatal. That may be a practice of old, but I haven't seen it in any practical sense these days.
      But I do agree, libraries that do terrible things suck. But I do not think it's only go that has this problem.
      Rust has the best error handling out of all.

  • @fadhilimalongo9910
    @fadhilimalongo9910 2 роки тому +5

    Ever since I started watching your vids.. I realized two things... ( 1.) I have to uninstall vscode and switch to vim and (2) I now find writing JavaScript on the backend a little sus lol

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +2

      Very excellent. I'm not saying it's the only way. I'm just saying it's a darn good way

  • @scottiedoesno
    @scottiedoesno 2 роки тому +4

    I was going to learn go/rust more better but then I got sucked into the nix-averse. Now I'm just trying to functionally recreate my i3 setup

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому

      hahah! the best part about your free time is that you get to spend it how you like

  • @majorgamerjay5221
    @majorgamerjay5221 2 роки тому +2

    Daddy came back with wisdom

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +4

      now i am going to go get a pack of cigarettes, be back in 15

  • @hotscriptgg
    @hotscriptgg 2 роки тому +4

    I would love to find more time to learn Rust but I have a nice job with APIs and webservers in Go

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      its a SUPER fun language, recommend learning it. but that is a totally valid reason :)

  • @jeremycoleman827
    @jeremycoleman827 2 роки тому +3

    Dlang has a cargo equivalent called dub and an llvm backend. Its kinda like zig took a shower and got a job.

  • @morozovme5389
    @morozovme5389 2 роки тому +1

    Much obliged, this was killing me

  • @samarnagar9699
    @samarnagar9699 Рік тому +16

    WTF IS SENIOR INTERN ENGINEER

  • @networkedsapien1229
    @networkedsapien1229 2 роки тому +2

    You read my mind

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      i had enough people with the same mind ask me the same question

  • @iagobontempocosta
    @iagobontempocosta 2 роки тому +3

    I'm currently at the second re-cry with rust async

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +2

      the second cry is difficult.
      tokio::mutex will help with some of it

  • @SherubThakur
    @SherubThakur 2 роки тому +3

    If you want to get RSI choose Go! If you want to paralyzed by the sheer number language features and not get anywhere with the actual project choose Rust.
    See so easy to pick.

  • @SkyKosiner
    @SkyKosiner 2 роки тому +30

    I have played around with both rust and go, and I did enjoy playing with rust, but I find go better for a lot of things, and coming from ts it is so much easier to use.
    Also on that outro from the first note I thought there was about to be some knight rider music 🙏

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +6

      there was knight rider music, it was just in your head only.

  • @BarakaAndrew
    @BarakaAndrew 2 роки тому +2

    Why fighting when. you can learn both? lol
    Been using Go for years, learning Rust now, right tool for the job.

  • @chrissaltmarsh6777
    @chrissaltmarsh6777 2 роки тому +3

    I'm doing Rust. But then, I'm basically retired, it is for fun. Because it is close to the metal, like C which is my first love, but addresses the wonderful dangers that C had.Has. I'd give Go a go, but if I'm going for another language, I really can't go for too many so I'll go for rust.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +2

      this is why i love rust.
      I started in c -> java -> javascript -> java -> typescript -> java -> c++ -> typescript -> c++ (again sadge) -> and now rust
      but its such a narrow market and very few get the real chance of using it.

    • @chrissaltmarsh6777
      @chrissaltmarsh6777 2 роки тому +2

      @@ThePrimeagen Paper tape machine code -> Nova assembler -> PDP RSX11M -> Fortran -> Algol (ah! getting there!) -> C -> C++ -> Java (tee to javascript, CSS, a derivative of Basic called Nodal, freaking hell, and my own language, called Glish) and now java and rust and a wee bit C. I'm content in my retirement. Glish is being resurrected. It is funny.
      Thanks for the laughs, prosper.

  • @schrenk-d
    @schrenk-d 2 роки тому +4

    Why not both?
    I jest. Both are great languages and tools.. I write mostly rust but also do a few things in Go.. And even the odd bit of python.
    I do sometimes get tripped up by async.. but, we march on optimise and keep going.

  • @mezzasegolas
    @mezzasegolas 2 роки тому +1

    I say you should make one of those 'a day in the life of a software developer' videos, with the hip music, the standard alarm clock and getting up scene and all that, but instead of programming, you have an alice in wonderland tea party with the Go guinea pig and a damn crab. Please.

  • @0xtz_
    @0xtz_ 2 роки тому +3

    Golang is just amazing

  • @MirkoVukusic
    @MirkoVukusic 2 роки тому +3

    Was just making this decission last two weeks. Comming from decades of JS, both are difficult. Started with Rust and really liked it. But ended up with Go, basically just because I'm more oriented to web services/apps and it seema like a much better fit.
    That said, how I *feel* when writing code .. Rust wins. I like it more. Also I find documentation and othwr resource for learning Rust much better than Go.

    • @rickdev1922
      @rickdev1922 2 роки тому

      do you still want to consider studying rust in the future...besides golang for work?

    • @MirkoVukusic
      @MirkoVukusic 2 роки тому +1

      @@rickdev1922 , yes, I'm sure I'll get back to it as soon as I need a CLI or similar

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +3

      every part of this is very true.
      rust feels better
      go just does it better
      I am going to try my 5th web server with rust shortly and make this damn thing work, but its very hard.

    • @rickdev1922
      @rickdev1922 2 роки тому

      @@ThePrimeagen love your.content as a programmer for 1 year.. thx

  • @bryanenglish7841
    @bryanenglish7841 2 роки тому +9

    Do what I did, and specialize in Go, but write some micro thingy's in Rust. Go is great for layers of communication, Rust is great for one-off processes that are super intensive. The umbrella of problems that Go can solve is probably a little smaller than Rust, but it's so easy, pleasant, and productive to work with and it FLYS at scale.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +8

      this is such a 100% agree
      I love rust. love love love it. But go is so easy to get right.

    • @bryanenglish7841
      @bryanenglish7841 2 роки тому +3

      @@ThePrimeagen SEMPAI NOTICED ME

  • @Galakyllz
    @Galakyllz Рік тому

    I fought the borrow checker until I learned to love Rust. Now I can't imagine using anything else.

  • @galaxian_hitchhiker
    @galaxian_hitchhiker 7 місяців тому

    As a veteran C++ Developer (I love it and very intuitive for me) I would chose GO. Because c++ already overlaps almost all areas that rust can fit with performance and knowledge advantage. Besides it has more jobs. But for the rest, I think Go will fill those gaps for me.

  • @sky_kryst
    @sky_kryst 2 роки тому

    That’s all cool prima( no actually it’s useful for someone who makes such comparisons) but we wanna know how you manage time between work, streaming, learning and that beautiful family, and body

  • @globalinvestor4675
    @globalinvestor4675 2 роки тому +1

    I strongly recommend you to learn COBOL... I don't have to explain why bc we all know why we should learn COBOL

  • @epiderpski
    @epiderpski 2 роки тому +2

    I'm learning both cuz I'm in it for the fun of it. But, if I'm being honest, Rust is grabbing my attention more. It's just more interesting.

    • @Asrashas
      @Asrashas 2 роки тому

      This is exactly how I feel about it too. There is just a lot for me to learn from rust and about rust. Go mostly just blends in with just about every other language in the C family. It really has no concepts that are really novel to me.

  • @prog4god
    @prog4god 2 роки тому +1

    thank you, thank yoooou for solving my drying painfull mess!!! oh, thank you! im eat my herring ang go for go!

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      yaya! Go is great. I must admit rust is simply more fun, but go is just more practical.

  • @konga8165
    @konga8165 2 роки тому

    We use go microservices at work. Works like a champ. Quick to learn.

  • @kinositajona
    @kinositajona 2 роки тому +6

    Rust is amazing. But no jobs.
    Especially for WASM and embedded programming... I tried so hard to get C++ to work with WASM well... pretty much gave up... embedded programming with C/C++ was always pulling teeth.
    Rust makes both of those stupid simple.
    Also, I learned a lot of things about memory management that C++ can only teach you if you use a lot of optional 3rd party tools. Rust just by default springs into lectures on memory management along with copy pastable solutions to each compiler error, this happens with every error... Banging your head against the Rust compiler is like taking a course on memory management at some college. Which is a good thing in my view. Others might disagree.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +1

      i do want to do some wasm really bad.

  • @jamesvaci7382
    @jamesvaci7382 2 роки тому +3

    The moment you mentioned the Discord argument i had a flashback when the headlines wrote "AIRBNB IS USING REACT NATIVE ALL THE WAY!!!", no bro, they are using just a really small part of it for their app, chill out xD

  • @benheidemann3836
    @benheidemann3836 2 роки тому +13

    I started using rust a month ago and still haven't had any problems with the borrow checker despite implementing some reasonably complex code (including a 2D game).
    Everyone keeps saying it's hard and that just hasn't been my experience so far...
    I did read most of the book before I wrote a single line of code though and I'm wondering if this is why? Do most people just (no pun intended) go for it and is this why people think it's hard or are there some hard concepts that I have somehow sidestepped.
    I'm thinking the former because I skipped reading about lifetimes and I found those really hard until I went back and revisited it in the book and now it's fine because the rules are relatively simple... 🤔
    I would genuinely love to hear peoples opinions on this because people keep asking me (when I tell them I'm learning Rust) a) if it's hard and b) how to approach it. I'm trying to figure out how to give good answers which is hard when my experience contradicts everything anyone says online.
    Thanks! ♥️

    • @john-peterkrause7237
      @john-peterkrause7237 2 роки тому +5

      I agree, the ownership and borrowing really isn't that hard and I come from a Python background

    • @benheidemann3836
      @benheidemann3836 2 роки тому +1

      @FichDich InDemArsch Firstly, love the username! 😁
      Recursive data structure - I implemented a programming language since my initial comment and did have some issues with recursive data but overcame them fairly easily.
      Complex object hierarchy - can you give an example?
      Async code - I've done a bit of this and it was fine for my simple use case. I can see how this might be tricky for a more complex system. I will spend some time trying to make my lexer and parser work in parallel - should be fairly complex I think so would be a good learning opportunity.
      Do you find maintaining enterprise software to be worse than other languages? JS is pretty bad for it IMO and the enterprise scale codebase I've hacked around in (mostly Deno) seem okay for the most part.
      Any other suggestions for complex/hard parts of Rust would be very welcome if you can think of any? I want to learn and I like a challenge 😁

    • @theroboman727
      @theroboman727 2 роки тому +4

      @FichDich InDemArsch you want people to make a complex object hierarchy in rust? Do you not know that object hierarchies are really hard to refactor and are a mess of managing mutable state everywhere? Rust intentionally avoids that kind of design because its really difficult to maintain.

  • @KoltPenny
    @KoltPenny 2 роки тому +14

    Go is indeed all the good things of Java without all the bad things of Java, which is almost all Java.

    • @ThePrimeagen
      @ThePrimeagen  2 роки тому +8

      good way of summarizing it.

    • @thanosfisherman
      @thanosfisherman 2 роки тому +1

      Go ain't got nothing on Java

    • @KoltPenny
      @KoltPenny 2 роки тому

      @FichDich InDemArsch I have nothing against the JVM though. The language itself and the community is what I dislike.
      Often, even if you specify you're new to it when looking for answers, you always get a cumbersome answer or recommendations to use deprecated or weird libraries, they asume you're already using what they use, if you ask for a specific answer for one particular library you most certainly will get the "you can do it by running this X code but with foobar library".
      If you share your code for help and they see a " variable%2 == 0" they will call you out and say "you should be using an EvenOddComparatorFactory to check for even numbers, it's more idiomatic", but turns out the factory doesn't have a static method for that, oh no, it produces an "EvenOddComparator" object, because of course, that class also doesn't have a static method.
      If Java factories were real factories, we would be facing human extinction by now.

  • @iternation1749
    @iternation1749 2 роки тому +2

    Awesome

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 2 роки тому +1

    I made a decision to create a new language GR after watching your amazing video.

  • @borispov5591
    @borispov5591 Рік тому

    I'm just a hobbyist, been programming as a hobby on and off for a couple of years, taught myself JavaScript, React, etc...
    Recently, got back and wanted to learn something new, it was between Elixir and Clojure, but then I discovered your channel. I tried a super simple CRUD in golang in the past and found it devastatingly boring because of the error handling, but Rust just feels like a significantly steeper learning curve. I'm not currently looking to switch careers, though, I'd like to pick a language that'll be fun and relatively easy to learn and build projects with. Elixir has got a fine web framework (Phoenix) which is quite appealing. Have you tried it, btw?
    In the meanwhile, I might just keep on watching your vids rather than actually learn Rust/Elixir/Go :-)))