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

  Рет қаралды 214,920

ThePrimeagen

ThePrimeagen

2 жыл бұрын

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.theprimeagen.tv/
Links
Linode: linode.com/prime
Discord: / discord
Twitch: / theprimeagen
Insta: / theprimeagen
Twitter: / theprimeagen
VimRC & i3: github.com/ThePrimeagen/.dotf...
Keyboard (15% off, I don't earn commission): bit.ly/primeagen-adv2
#vim #programming #softwareengineering

Пікірлер: 686
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
Language doesn't matter, as long as you're editing it in Vim.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
the truth has been spoken
@yehudamakarov
@yehudamakarov 2 жыл бұрын
This is the way. I use jet brains though. That’s my personal issue lol
@abdirahmann
@abdirahmann 2 жыл бұрын
@@yehudamakarov 🤣🤣
@norentkhy3363
@norentkhy3363 2 жыл бұрын
This is the way.
@sohn7767
@sohn7767 2 жыл бұрын
@@yehudamakarov then YOU ARE LOST
@MrAnandml
@MrAnandml 2 жыл бұрын
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 жыл бұрын
hah, i do think its a great language. but your experience is a rarity
@amans6504
@amans6504 Жыл бұрын
*invented
@mattwilliams1844
@mattwilliams1844 Жыл бұрын
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 Жыл бұрын
@@mattwilliams1844 letsss gooooooooo
@janise237
@janise237 Жыл бұрын
@@mattwilliams1844 C is a beauty, man!
@Sky_ye
@Sky_ye 2 жыл бұрын
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 жыл бұрын
Thx for elaborate, I'am at step 0. I am choosing between Rust & Go (chose Rust).
@Sky_ye
@Sky_ye 2 жыл бұрын
@@jsonkody Try both and decide, and take right tool for right purpose
@spreadkit
@spreadkit 2 жыл бұрын
This was a helpful comment. Thanks for the insight !
@sildcave3926
@sildcave3926 2 жыл бұрын
Ty for advice
@cplusplussizeddick1430
@cplusplussizeddick1430 2 жыл бұрын
hey how about go vs node? specifically for backend web development
@lucgeorges4360
@lucgeorges4360 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@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 Жыл бұрын
just learn c
@user-fr2fm3ri3w
@user-fr2fm3ri3w Жыл бұрын
@@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.
@nodidog
@nodidog 2 жыл бұрын
Been learning Go for the last six months or so, always nice to hear positive reinforcement 🥳
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
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 Жыл бұрын
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.
@earthling_parth
@earthling_parth 2 жыл бұрын
I had a feeling it would be go overall w.r.t to current situation. Can't wait for GO/Rust comparison video Prime!
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
its on its way
@calder-ty
@calder-ty 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
Rust is my favorite language by far, but Go is definitely easier to learn. It does what it's designed for fantastically
@levizin917
@levizin917 Жыл бұрын
rust is gonna pass go for sure
@worgenzwithm14z
@worgenzwithm14z 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
There are 2 kinds of programmers: those who ship code to production, and those who use Haskell
@gimlam5909
@gimlam5909 Жыл бұрын
@@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 Жыл бұрын
Learn Lisp.
@mohammaddh8655
@mohammaddh8655 Жыл бұрын
@@ThePrimeagen bro that was harsh lol
@DevlogBill
@DevlogBill Жыл бұрын
I don't know if you should be creating KZbin content for programming or stand-up? But your hilarious and entertaining! At the same time, you provide very informative content, thank you.
@kylewoock
@kylewoock 2 жыл бұрын
Thanks Prime! that is good advice and that is a good way of looking at things.
@levantos
@levantos Жыл бұрын
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.
@fixer8173
@fixer8173 2 жыл бұрын
More videos like that! Love the opinion, didn't know what to choose, started learning rust, but man :D
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
i like rust a lot, like a lot, its just not great if you are trying change your life :)
@jonathancamarena3117
@jonathancamarena3117 2 жыл бұрын
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.
@salamander1782
@salamander1782 2 жыл бұрын
ok you got me with the discord argument hahah. love your content!! I hope to eventually learn both
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hah. i am glad you liked it
@Maquiz89
@Maquiz89 2 жыл бұрын
Dude just found your channel but I love the honesty ❤️
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
ytytyt! i try the no bullshit approach
@edoardocostantini2930
@edoardocostantini2930 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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.
@aus10d
@aus10d Жыл бұрын
i appreciate this video and the comparison. useful advice for how to consider this choice
@heXan
@heXan 2 жыл бұрын
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 Жыл бұрын
Your English is great. :)
@yannickpeter8607
@yannickpeter8607 2 жыл бұрын
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 жыл бұрын
Yes! Cobra is pretty neet though super overkill for most things.
@wylelias
@wylelias Жыл бұрын
Answered all my questions!!! Thanks a ton!
@ThePrimeagen
@ThePrimeagen Жыл бұрын
wait till you see my latest video... it flips this on its head
@renanbrayner984
@renanbrayner984 2 жыл бұрын
Learn both! I'm learning Rust mainly for wasm stuff and i'm planing to learn Go afterwards
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
i am excited about wasm.
@holonaut
@holonaut Жыл бұрын
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.
@sirbuttonhd
@sirbuttonhd Жыл бұрын
The Rust language is fantastic in many ways, like the borrow checker for manual memory management, match statements and smart ways to define data like ADT with enums. But what you said in the end, first you’ll cry from the borrow checker, then async. And after that, cry more from async, I could not have said better myself. Concurrency is the biggest weakness in Rust, and that’s what makes Go fantastic for modern general purpose development, and what makes keeps Rust from achieving the same status. It makes Rust a niche language you can sometimes use instead of C++ in a greenfield project if all the stars align with your use case.
@jingqianliu7078
@jingqianliu7078 Жыл бұрын
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.
@computerscience1152
@computerscience1152 2 жыл бұрын
I crazily love this kinda content
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
awesome! That is really great! I actually really enjoy making this kind of content.
@harunsheikhali5179
@harunsheikhali5179 2 жыл бұрын
DUDE you have no idea how much you influenced my decision to learn Go lool :)
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
that is pretty cool :)
@GeorgGrabler
@GeorgGrabler 2 жыл бұрын
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.
@maninalift
@maninalift 7 ай бұрын
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
@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 :-)))
@desengenho1539
@desengenho1539 Жыл бұрын
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
@fishfpv9916
@fishfpv9916 2 жыл бұрын
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 жыл бұрын
yes, i am very excited for the web assembly sstuff and plan on investigating soon.
@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
@lala123nne
@lala123nne 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@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.
@ozzyaararon
@ozzyaararon 2 жыл бұрын
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 жыл бұрын
yeah, jumping into new envs, especially new envs with new paradigms make it REALLY hard to learn :)
@hyblm
@hyblm 2 жыл бұрын
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 жыл бұрын
now this is very likely. The amount of rust jobs in 4 years should be large.
@VascoCosta
@VascoCosta Жыл бұрын
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.
@konga8165
@konga8165 2 жыл бұрын
We use go microservices at work. Works like a champ. Quick to learn.
@iamtheV0RTEX
@iamtheV0RTEX Жыл бұрын
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 Жыл бұрын
I pretty much feel the same way as you.
@jessepinkman144
@jessepinkman144 10 ай бұрын
Thank man, I’m that someone 😊
@kqvanity
@kqvanity 27 күн бұрын
couldn't put in a better way
@garethalliday833
@garethalliday833 Жыл бұрын
I agree, Go's major advantage is that it's very simple like C
@LtdJorge
@LtdJorge 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@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.
@SheldonHull
@SheldonHull 2 жыл бұрын
Fantastic summary. I love working with Go. Considering Go powers so super popular cli tools what is it missing? This is the first time I've heard anything less than raving about Go for CLI tools.
@paul1
@paul1 2 жыл бұрын
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 жыл бұрын
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
@ttcc5273
@ttcc5273 Жыл бұрын
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.
@marcello4258
@marcello4258 2 жыл бұрын
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 жыл бұрын
Sounds like you have some rust in your future
@marcello4258
@marcello4258 2 жыл бұрын
@@ThePrimeagen better there than on my car I guess ;)
@sexyeur
@sexyeur 2 жыл бұрын
I'm breaking that 404... Thank you, Primeagen! ✌️ The best.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
GET IT
@arturfil
@arturfil 2 жыл бұрын
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 Жыл бұрын
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.
@abiodun6897
@abiodun6897 2 жыл бұрын
You're my favorite KZbinr 😂, I'm not sure if I'm here for the jokes or golang
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
yeah! Thank you :)
@azatecas
@azatecas 2 жыл бұрын
hey just found your channrl and im hooked! im hoping to transition from JavaScript development to system level languague
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
Awesome
@hotscriptgg
@hotscriptgg 2 жыл бұрын
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 жыл бұрын
its a SUPER fun language, recommend learning it. but that is a totally valid reason :)
@ggalvaorn
@ggalvaorn 2 жыл бұрын
I particularly enjoyed the "Go from there" bit. This is the right choice.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
if only i was that smart :)
@grapesalt
@grapesalt 2 жыл бұрын
thanks a lot, after a lot of thinking I choose procrastinating.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
A very classic and time tested tradition
@esquilo_atomico
@esquilo_atomico 2 жыл бұрын
I was in doubt between Go and Rust so I choosed Elixir
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
Interesting choice. I personally would have chose an employment, Sick burn
@user-zu8rf4hq4f
@user-zu8rf4hq4f Жыл бұрын
​@@ThePrimeagen 😮
@DevlogBill
@DevlogBill Жыл бұрын
New to programming learning JavaScript for the client side and PHP for the server side. What would you say is the differences between languages like Java, C#, PHP versus a programming language like GO? I am interested in learning more about Go and the benefits of using this technology.
@RoyRope
@RoyRope 2 жыл бұрын
I kinda like Go using it for about 9 months professionally now, would like to try Rust sometime.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
same
@yo-meeguen5822
@yo-meeguen5822 Жыл бұрын
Concise and clear from the start as a person with ADHD I appreciate it. Like and sub
@luiscarloscorderopena7030
@luiscarloscorderopena7030 2 жыл бұрын
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!
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
/giphy feelshurtman
@henrmota
@henrmota Жыл бұрын
Nowadays I'm mostly a javascript developer. If I want to choose a language to learn, just to be a better programmer and understand better the underlying concepts, what language should I choose? Rust?
@scottiedoesno
@scottiedoesno 2 жыл бұрын
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
@jazzgirl2358
@jazzgirl2358 Жыл бұрын
Apart from learning Go, do you recommend learning Java as it has a lot of backend jobs atleast in my area
@samarnagar9699
@samarnagar9699 11 ай бұрын
WTF IS SENIOR INTERN ENGINEER
@joshuaconter2386
@joshuaconter2386 Жыл бұрын
It’s been a year do you still have the same recommendation? Especially for backend? I see you have been reading Zero to Production.
@roccociccone597
@roccociccone597 Жыл бұрын
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.
@joshi1q2w3e
@joshi1q2w3e 11 ай бұрын
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.
@morozovme5389
@morozovme5389 2 жыл бұрын
Much obliged, this was killing me
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
you are welcome
@gritcrit4385
@gritcrit4385 Жыл бұрын
Yeah, if you want a job js/ts. But outside of that C, Assembly, Rust, Haskell, Idris... anything you like. What matters is math, CS, hardware and your ability to think and learn
@nerdy_dav
@nerdy_dav Жыл бұрын
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.
@ekiaka
@ekiaka 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 жыл бұрын
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.
@kalvinpearce
@kalvinpearce 2 жыл бұрын
Ferris is just too cute to resist! 🦀
@Galakyllz
@Galakyllz Жыл бұрын
I fought the borrow checker until I learned to love Rust. Now I can't imagine using anything else.
@tristanlukens7158
@tristanlukens7158 2 жыл бұрын
"The little crab dancing song is also really exciting" lol
@pinchoboo736
@pinchoboo736 Жыл бұрын
After carefully considering this advice I have decided to pick randomly.
@hypergraphic
@hypergraphic 2 жыл бұрын
Thanks, that really helps.
@mezzasegolas
@mezzasegolas 2 жыл бұрын
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.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
too much work, but great idea
@Pbertrand_dev
@Pbertrand_dev 2 жыл бұрын
I have absorbed your opinions and will use them to my benefit. Yayayaya
@abdirahmann
@abdirahmann 2 жыл бұрын
the way you said "rust... you know... there's like... No JObS" at 1:27 am dead!! 🤣🤣💀
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hah :) the market is rather slim
@runtimejpp
@runtimejpp 2 жыл бұрын
The answer to all my questions in life
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
good
@justprogramming4435
@justprogramming4435 2 жыл бұрын
Elixir is another great language to consider for almost anything that GO might be considered for.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
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.
@meltygear5955
@meltygear5955 2 жыл бұрын
"...what are your goals, what are you building, and Go from there" I see what you did.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hah, if only that was planned
@kamertonaudiophileplayer847
@kamertonaudiophileplayer847 2 жыл бұрын
I made a decision to create a new language GR after watching your amazing video.
@masnoesnada
@masnoesnada 2 жыл бұрын
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 жыл бұрын
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.
@crispy_rw
@crispy_rw 2 жыл бұрын
Have you tried V because I was thinking of replacing GO with V
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
V could be neet. its just so immature compared to go. The ecosystem is also weak in comparison
@majorgamerjay5221
@majorgamerjay5221 2 жыл бұрын
Daddy came back with wisdom
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
now i am going to go get a pack of cigarettes, be back in 15
@IvanSatsiuk
@IvanSatsiuk Жыл бұрын
what about front-end turning (partially) to Rust for blazingly fastness in the next year or two? e.g. libraries, builds, etc.
@jsonkody
@jsonkody 2 жыл бұрын
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 жыл бұрын
not a bad approach
@Simple_OG
@Simple_OG Ай бұрын
Good luck, I also choose rust with actix-web
@wilkyarny3012
@wilkyarny3012 2 жыл бұрын
What do you think about haskell? Does it worth a video? :)
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
i probably wont ever do haskell
@jeremycoleman827
@jeremycoleman827 2 жыл бұрын
Dlang has a cargo equivalent called dub and an llvm backend. Its kinda like zig took a shower and got a job.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
you got a job using dlang? dang
@AmirHosseinHonardust
@AmirHosseinHonardust 2 жыл бұрын
I started learning go as my first language. And before this I have tried many more... Python, r, matlab, js, lua, ... I'm having a blast in go. Everything is absolutely unixy. However, i can definitely see myself learning rust in future as they both seem to address the same general fields of questions and are much more similar in spirit than it may seem.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
rust is a ton of fun, i would totally recommend learning it, but again, depends on your goals :)
@theroboman727
@theroboman727 Жыл бұрын
I disagree with them being similar in spirit. Go is taking a very generic GC'd feature set, and making that go as fast as possible and be as simple as possible. Rust is like, starting from C, making it completely memory safe, and then making it have as much robustness and utility as possible while keeping it at C/C++ performance. The two end up having relatively similar use cases, but because they're coming from completely different perspectives, they have completely different design decisions.
@AustinMarlar
@AustinMarlar 2 жыл бұрын
I thought dealing with strings was easier in Go? I haven’t used either, just going off what I’ve seen and heard from other people. I mean, you had a video/stream where you were doing some string stuff and the Rust code was a nightmare hellscape and the Go code was clean.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
i just love string processing in rust. the iteration stuffs is amazing. you should try it out again!
@harleyspeedthrust4013
@harleyspeedthrust4013 Жыл бұрын
im going with apl rust is next edit: ended up learning go and rust. rust isn't too bad if you're used to RAII and the concept of data ownership in other languages. rust just makes it a requirement
@globalinvestor4675
@globalinvestor4675 2 жыл бұрын
I strongly recommend you to learn COBOL... I don't have to explain why bc we all know why we should learn COBOL
@notlessgrossman163
@notlessgrossman163 2 жыл бұрын
I did Solidity smart contracts and the whole npm broken dependencies thing and Rust seems attractive because it's all in one strongly typed package and with wasm output ( haven't tried it yet). Gimme the down low. Am I delusional?
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
not sure :) rust is great, but it is going to reflect hard the npm eco system.
@BlunderMunchkin
@BlunderMunchkin Жыл бұрын
I'm just going to learn both.
@fulconandroadcone9488
@fulconandroadcone9488 Жыл бұрын
I'm thinking about learning a new language. I think I'll settle for Iron Oxide, starting to move is not my cup of key strokes.
@fg786
@fg786 9 ай бұрын
A senior intern? Is there also a CEO intern or shareholder intern or an "I'm the actuaol Boss" intern?
@benheidemann3836
@benheidemann3836 2 жыл бұрын
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 жыл бұрын
I agree, the ownership and borrowing really isn't that hard and I come from a Python background
@benheidemann3836
@benheidemann3836 2 жыл бұрын
@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 Жыл бұрын
@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.
@fadhilimalongo9910
@fadhilimalongo9910 2 жыл бұрын
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 жыл бұрын
Very excellent. I'm not saying it's the only way. I'm just saying it's a darn good way
@SS-in2kr
@SS-in2kr Жыл бұрын
now that it's march 2023, what do you think about it now? from the point of view of job market
@window.location
@window.location 2 жыл бұрын
Any plans on making tutorial for building cli apps using go or rust or maybe both ?
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
I'll be doing a front end master's course on it here in a month and a half
@window.location
@window.location 2 жыл бұрын
@@ThePrimeagen yehhh !!!
@markvaldez8602
@markvaldez8602 2 жыл бұрын
What if I want to get hired a the Degen Startup? Which one should I learn then???
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
Definitely rust and typescript
@ahuman32478
@ahuman32478 Жыл бұрын
I noticed that you mentioned that Rust is for CLI and Go is for web apps. What about desktop apps? Are desktop apps not a thing anymore? Do most people deploy apps on the web nowadays?
@flogginga_dead_horse4022
@flogginga_dead_horse4022 Жыл бұрын
uh for a long time now...
My Best Advice After 20 Years of Programming Experience
13:15
Anthony GG
Рет қаралды 27 М.
Countries Treat the Heart of Palestine #countryballs
00:13
CountryZ
Рет қаралды 26 МЛН
Super gymnastics 😍🫣
00:15
Lexa_Merin
Рет қаралды 94 МЛН
Универ. 13 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:07:11
Комедии 2023
Рет қаралды 4,3 МЛН
Watermelon Cat?! 🙀 #cat #cute #kitten
00:56
Stocat
Рет қаралды 27 МЛН
Databases
2:09
uwpglibrary
Рет қаралды 35
err != nil Is GOOD? (And Why)
7:19
ThePrimeTime
Рет қаралды 85 М.
Interview with Sr. C Dev | Prime Reacts
6:52
ThePrimeTime
Рет қаралды 313 М.
Projects Every Programmer Should Try
16:58
ThePrimeTime
Рет қаралды 370 М.
1000 People Play Doom At Once
15:42
ThePrimeagen
Рет қаралды 99 М.
Software engineer interns on their first day be like...
2:21
Frying Pan
Рет қаралды 13 МЛН
Go vs Rust: Which To Learn In 2024?
6:57
Melkey
Рет қаралды 22 М.
why rust libraries may never exist.
7:26
Low Level Learning
Рет қаралды 221 М.
What can you build in Golang?!
11:10
Golang Dojo
Рет қаралды 155 М.
How am I suppose to get a job as a software engineer?
4:12
ThePrimeagen
Рет қаралды 217 М.
wireless switch without wires part 6
0:49
DailyTech
Рет қаралды 3,9 МЛН
AI от Apple - ОБЪЯСНЯЕМ
24:19
Droider
Рет қаралды 116 М.
Настоящий детектор , который нужен каждому!
0:16
Ender Пересказы
Рет қаралды 345 М.
📦Он вам не медведь! Обзор FlyingBear S1
18:26