Go is astoundingly easy to learn. Anyone with basic programming experience can learn it enough to be competent and writing complete applications within a day or two, and that is conservative estimate; it will be much less for many.
Just want to say how awesome your videos are. If you keep making awesome content like this you'll see massive growth during this year!!!! There's no doubt you'll be right there with fireship soon. You already got your unique style which is great because many people try to copy and it doesn't work out well.
Aww thank you so much. I really appreciate that. Fireship is awesome and there's certainly been some inspiration there, but I agree there has to be some personal style added. Definitely figuring it out still and learning, however! Looking forward to finding my groove.
I wanted to design my infrastructure with Go lang itself and since I just came to know that IaaC tool Terraform itself is written in GO ! It's pretty much decided that I'll create my career out of this language itself 😃
It's a great question. Personally I'd probably build in Rust. But if my team wasnt as familiar, then Go is much easier to pick up. It also depends if there's a need to build on top of any other framework and how well that is supported in Rust vs Go.
@@nictibbetts it what sense? Because Rust is faster and has less compiled errors but I know that golang is easier to write and do concurrency. Cloud probably is easier to write in go but better?
@@arturfil sure that may be true about Rust but Go is a powerhouse when it comes to many thing related to networking or infrastructure. On top this Go is just easier to use comparatively. Furthermore, this ease of use makes its scalability and maintainability superior to that of Rust. With that said Rust out performs Go in many other areas but again Go’s simplicity makes it an attractive alternative.
@OffroadG ; Rust is safer at compile time by being strict about what you can and cannot do. Go, however, has little compile time safety: everything is mutable, so you're always at risk of data races, the type system is weak, and there are many edge cases that can surprise you. Rust seems harder becomes it makes you handle all of the necessary complexity. Once you do that, your program is more reliable. On the other hand, Go tries to hide that from you, but it will eventually bite you. You see all this as "punishment", but it's better viewed as "additional safety".
After using rust I really miss some kind of option type in go. The some/none pattern along with the match statement has made me fall in love with rust. Go is fun but I don't think I'm gonna use it.
binitrupakheti: Go is fun but I don't think I'm gonna use it dreamsofcode: I 100% agree. This is probably my biggest criticism of rust me: what.... lol
Nice video, short and very descriptive. But, are there any reasons to use Go over Rust? Not talking about things like demand or simplicity. I wanna know if Go has any advantages in terms of code. Speed, safety, time spent coding, etc. Also, is it worth learning it over Rust for personal projects?
I'd say the major reason is cognitive complexity when compared to Rust. Go is much more aligned with imperative languages, which most devs learn to code with. Therefore productivity is easier on teams which some cost for speed or safety. That being said, I do love Rust and would personally prefer to use it more, but I can see the business use case for Go. For personal projects: it depends. Do you want to get something built fast or for fun, if for fun, then use whatever language will give you the most joy! For rapid prototyping, Go is probably going to be better, especially as it has a larger community and thus more mature packages to use.
I'm in total disbelief. I recently read a book with a similar topic, and it was astonishing. "The Art of Meaningful Relationships in the 21st Century" by Leo Flint
Hope you will make that channels video one day! Also, maybe a video that shows how you use all those great animations and motion effects in your videos. Your content is beautiful, cheers.
With Python background, would it be easier to switch to Go ? I see a lot of potential with Go, and still looking for any jumpstart for a python developer like me.
I believe so, Go is somewhat inspired by python. However, there's some key differences (especially around concurrency). I think Go is a decent next step, more so than any other languages.
hey mate, great video as usual! I've been learning to go for a while and I love it, but I'm getting interested in rust simply because it's all over the place on the internet. i was wondering if you could make a video about rust vs go.
Hi Goblin 😁 Go has less libraries so if you are into arcane projects it wont help you much on productivity since you'll be stuck somewhere and must solved it your self. If money is the aim then use ones that has the most benefit of them all.
I'm a CS teacher who's (re)designing our curriculum to move away from the classic C/C++/Java world to something more modern. Go looks interesting. But I don't see the basic textbooks - compilers, OS, DBMS... But most fundamentally, Data structures (CS2). Are there good books or at least cohesive readings available?
I think they both have different use cases and can compliment each other. Go is much easier to use and allows for rapid prototyping, whereas Rust is great for tightening up resources and performance.
rust is low level programming language and better for kurnel level things, where as go is a replacement of java, c++ basically backend/devops/gRPC/microservices these are the area where you will be using go
I think it would be worth while doing a bit more complicated stuff in Go, as there arent really any good quality resources. fun topic is the web assembly , or framework like Wails2, Fyne
V is a better Go. I wonder if Go will update to include much of its functionality. Also I wonder why V compiles faster than Go since they both rely on C. I don't know if V will ever make it to prime time but so far I've been liking it. I like the simplicity of `!` compared to having to handle all the errors. That way you can create "messages" (errors) and then just pass it up to the top and handle them at the very top to figure out what you want to send back to the user.
Hello, is it true that it´s nearly impossible to find a job as junior go developer(first language), because go is hard language for solving difficult optimisations and companies want to hire a junior developers that switched from other languages?
The only languages that seem to be in demand is C++, Java, and Python (and JavaScript and Bash). These are the only language you'll see on job ads, with the exception of the very occasional C or PHP. Of course, once people have a job, they will choose whatever language they like, so you will encounter Go, Scala, and C.
Go is pretty high in demand from what I see, but then I also spend a lot of time hiring for Go devs as well. I see a lot of Elixir, Scala and Clojure as well.
@@dreamsofcode At the moment I see 4 job ads for C developers (out of just above 3000 job ads for developers), and 4 job ads where Go is used but it is not a requirement for any of them. But I did forget about C# being in demand (I ignore them because they are probably for Windows development).
Elixir: 2 ads (not even irrelevant stuff show up) Clojure: 2 ads (not even irrelevant stuff show up) Scala: a few ads show up, but a lot of them seem to be irrelevant, and I cannot find any there it is actually a requirement.
@@dreamsofcode I think about Go as it gives lots of possibilities to build desktop apps not hard like in Rust Tauri but in Go Wails I was being told the same that Python have many jobs but nobody actually hiring
My personal experience with GO is quite bad, I'm currently learning it coming from Python and I didn't know that there's a lot of standard library, just from this video I have never heard any of these before. I can find a lot of answer for JS, Java, Python, PHP by searching it, but for GO I rarely had an accurate search result.
I agree. I don't think Go needed generics and the implementation has been pretty poor, especially for tooling. I hope they improve it soon. That being said, I do think Go is useful without generics.
@@dreamsofcode I kind of wish that Go had a system more like Zig's, where it added comptime evaluation and basically just made generics a special case of that where the generic parameter is a compile time argument to the function. It would have generally felt consistent with other places where this is done in go, where you often already do switches on the type of a value It's really powerful while also keeping Go's strength where the entire set of language features can be learned in a day
I learn languages by doing small projects. Java/Kotlin for Android, JS/TS for React, Vue, Svelte, etc..., Python for data processing, C# for Unity, Rust for Tauri... What type of project aside from an API would be good to start with?
I'd say anything hyper concurrent would be perfect for Golang. i.e. building a single process data pipeline with channels to read data off a push prot/stream and process it in parallel would be really cool.
i don't see why do we need another one language that based on a garbage collection when we have java, c#, js and many others. it's not faster, it's not better, it does not have many features that c# has for example, it introduces nothing new. sure, google wants to be intendent from others and has own language and this is the only reason why it exists.
Go wasn't created bc they hated C++. It was created bc the C++ standards committee still hasn't standardized a library for network encrypted communication. In this day, it's a necessity. Instead of waiting for the standards committee to get around to it, they created their own language specifically for network encrypted communication.
Go is certainly interesting, but I absolutely *despise* the fact that it deliberately lacks things like method overloading or default values. The fact you have to avoid dependency loops is also annoying. I can see *why* the creators made the decisions they did, but I disagree with some of them.
@@dreamsofcode That’s why it’s so stable. No swap space writes. It runs all in an emulation zone. When a process crashes it rebuilds the environment automatically, which means no data loss. GO has none of these aspects
No. Golang is not well designed for any specific domain. Pointers and concurrency issues make it more suitable for gaming not web dev. But there are surely better choices for game engines. So Go is in no-mans-land.
I'd be nicer for developement, but I think the garbage collector is the main reason this won't happen. It can cause periods where the code is frozen due to the "freeze the world" behavior in mark and sweep. Trading software tends to want very deterministic performance for execution of trades.
@@zuowang5185 Go uses Mark and sweep garbage collection which means it halts operation to run the garbage collector. This is very negligible in most operations, but for trading software it's usually deemed unacceptable.
They hated C++, so the created that has the simplicity of C and is also more safe. Like Java, but without classes.
Such an interesting story! I'm going to have to do a video about it
you're saying like it's something bad)
It's like C for the 21st Century. It's like scripting in a low level language.
Sounds like communism
Except there exists an even simpler language with even faster speed than Go, named Mojo...
Thanks for the simple breakdown of the language, helps a lot with the report im currently writing on GO 😁
More Go please! Would love to see Go in relation to DevOps as well. Tools, infra as code, CI/CD, all that jazz!
Absolutely! I've got a lot of Go content planned for this year 😁
Go is astoundingly easy to learn. Anyone with basic programming experience can learn it enough to be competent and writing complete applications within a day or two, and that is conservative estimate; it will be much less for many.
More content on go please, you have so much people wanting to see it 😍😍
Absolutely! I will put out some new content soon.
@@dreamsofcode please make a Playlist for learning
Yess, please do post more such videos!
Just want to say how awesome your videos are. If you keep making awesome content like this you'll see massive growth during this year!!!! There's no doubt you'll be right there with fireship soon. You already got your unique style which is great because many people try to copy and it doesn't work out well.
Aww thank you so much. I really appreciate that.
Fireship is awesome and there's certainly been some inspiration there, but I agree there has to be some personal style added. Definitely figuring it out still and learning, however! Looking forward to finding my groove.
@@dreamsofcode Honestly you're doing great, your videos are amazing. Keep up the good work
@@Redyf Thank you! I really appreciate that.
I concur with the above. If it weren’t for your videos popping up, I wouldn’t have known the magic of ✨NeoVim with LSPs✨
I think so❤❤
I wanted to design my infrastructure with Go lang itself and since I just came to know that IaaC tool Terraform itself is written in GO ! It's pretty much decided that I'll create my career out of this language itself 😃
It's a great choice! I have some more golang content coming soon as well which uses both!
that is nice , however do not base your career on a particular language but on skills, best wishes !
@@anuragbisht1200 humbled brother 😄😇
Thank you it really helped. Please do more on concurrency in GO.
I will do!
Yes more Go please.
I've got a few Go videos lined up!
I like go because it helps me go home early.
Haha! That's a good reason
I know Rust and Go are very different languages but if you had to choose one to develop apis, which one would you choose?.
It's a great question. Personally I'd probably build in Rust. But if my team wasnt as familiar, then Go is much easier to pick up. It also depends if there's a need to build on top of any other framework and how well that is supported in Rust vs Go.
Go is always superior when it comes to building anything that has to do with web apps, networking, and cloud architecture.
@@nictibbetts it what sense? Because Rust is faster and has less compiled errors but I know that golang is easier to write and do concurrency. Cloud probably is easier to write in go but better?
@@arturfil sure that may be true about Rust but Go is a powerhouse when it comes to many thing related to networking or infrastructure. On top this Go is just easier to use comparatively. Furthermore, this ease of use makes its scalability and maintainability superior to that of Rust. With that said Rust out performs Go in many other areas but again Go’s simplicity makes it an attractive alternative.
@OffroadG ; Rust is safer at compile time by being strict about what you can and cannot do. Go, however, has little compile time safety: everything is mutable, so you're always at risk of data races, the type system is weak, and there are many edge cases that can surprise you.
Rust seems harder becomes it makes you handle all of the necessary complexity. Once you do that, your program is more reliable. On the other hand, Go tries to hide that from you, but it will eventually bite you.
You see all this as "punishment", but it's better viewed as "additional safety".
the best video I have watched this week! Thanks for the well clarified video
After using rust I really miss some kind of option type in go. The some/none pattern along with the match statement has made me fall in love with rust. Go is fun but I don't think I'm gonna use it.
I 100% agree. This is probably my biggest criticism of rust.
binitrupakheti: Go is fun but I don't think I'm gonna use it
dreamsofcode: I 100% agree. This is probably my biggest criticism of rust
me: what.... lol
More content on Go ❤
Yes sir!
Nice video, short and very descriptive.
But, are there any reasons to use Go over Rust? Not talking about things like demand or simplicity. I wanna know if Go has any advantages in terms of code. Speed, safety, time spent coding, etc. Also, is it worth learning it over Rust for personal projects?
I'd say the major reason is cognitive complexity when compared to Rust.
Go is much more aligned with imperative languages, which most devs learn to code with. Therefore productivity is easier on teams which some cost for speed or safety.
That being said, I do love Rust and would personally prefer to use it more, but I can see the business use case for Go.
For personal projects: it depends. Do you want to get something built fast or for fun, if for fun, then use whatever language will give you the most joy! For rapid prototyping, Go is probably going to be better, especially as it has a larger community and thus more mature packages to use.
@@dreamsofcode I get where you come from. Rust would be a more mature solution, but Go is definitely easier for startups and getting a job. Thanks!
@@frittex Getting the job done extremly fast is one of the main focuses of Go. I prefer Rust over Go Tho
go is saver than rust
Mate I love your slick art and images. Do you create them yourself?
Can I be cheeky and ask how?
Love your channel!
Yo, thanks dude. I do create some of them. Mostly using Figma. Others I source online from places such as canva or freepik.
Excellent video would love to see some Go deep dives!
I shall have to do one on concurrency!
@@dreamsofcode That would be great!
I'm in total disbelief. I recently read a book with a similar topic, and it was astonishing. "The Art of Meaningful Relationships in the 21st Century" by Leo Flint
No, just keep watching videos and dont do anything
though i entered a @FireShip vid for a sec :), informative vid anyway!
im trying to learn this but i always give up afterr few hrs
I like your video. Please keep updating.
I am interested in Go. Make more videos
Hope you will make that channels video one day!
Also, maybe a video that shows how you use all those great animations and motion effects in your videos. Your content is beautiful, cheers.
With Python background, would it be easier to switch to Go ? I see a lot of potential with Go, and still looking for any jumpstart for a python developer like me.
I believe so, Go is somewhat inspired by python. However, there's some key differences (especially around concurrency).
I think Go is a decent next step, more so than any other languages.
Learning it at the moment, coming from C# and TS and it looks like it, without curly bracets, that makes it easier to learn.
No semi-colon too. No parenthesis for structure commands like "for", "if".
But still few curly braces for blocks.
WE WANT more good content we love go
hey mate, great video as usual! I've been learning to go for a while and I love it, but I'm getting interested in rust simply because it's all over the place on the internet. i was wondering if you could make a video about rust vs go.
I absolutely can do!
Awesome video!!
Hi Goblin 😁
Go has less libraries so if you are into arcane projects it wont help you much on productivity since you'll be stuck somewhere and must solved it your self.
If money is the aim then use ones that has the most benefit of them all.
which one like
The biggest downside is probably that it's a (de facto) Google product :/
How did you customize nvim to look like in the video with the tabs and go syntax highlighting?
I'm a CS teacher who's (re)designing our curriculum to move away from the classic C/C++/Java world to something more modern.
Go looks interesting. But I don't see the basic textbooks - compilers, OS, DBMS... But most fundamentally, Data structures (CS2).
Are there good books or at least cohesive readings available?
at timestamp 3:18 it should be Reason #5
I'm glad I found your site! I thought Rust was the replacement for C++, do you think Go has more momentum than Rust?
I think they both have different use cases and can compliment each other. Go is much easier to use and allows for rapid prototyping, whereas Rust is great for tightening up resources and performance.
rust is low level programming language and better for kurnel level things, where as go is a replacement of java, c++ basically backend/devops/gRPC/microservices these are the area where you will be using go
The way i look at it,
If C++ is "C with classes"
Go is "C with memory safety".
I think it would be worth while doing a bit more complicated stuff in Go, as there arent really any good quality resources. fun topic is the web assembly , or framework like Wails2, Fyne
Great ideas! I've added to my backlog for them
Lets GO 🔥
🔥
what neovim colorscheme do you use?
I use Catppuccin theme, for both Neovim and Alacritty
Go is awesome, just learn it it'll be worth your time.
I've learned that. there aren't that many advantages (compared to other languages)
Go for Go if you want to Go far
If you Go for Go, you're Going for Gold :)
is there a good course to learn go lang?
V is a better Go. I wonder if Go will update to include much of its functionality. Also I wonder why V compiles faster than Go since they both rely on C. I don't know if V will ever make it to prime time but so far I've been liking it. I like the simplicity of `!` compared to having to handle all the errors. That way you can create "messages" (errors) and then just pass it up to the top and handle them at the very top to figure out what you want to send back to the user.
I'm going to have to do a video on V I think. It's really interesting.
Autofree memory
Go compiler is faster.
Hello, is it true that it´s nearly impossible to find a job as junior go developer(first language), because go is hard language for solving difficult optimisations and companies want to hire a junior developers that switched from other languages?
I don't believe that's the case at all. There's a lot of companies looking for Junior Go developers still out there.
@@dreamsofcode thanks for the answer, you really helped me!
it depends where on Earth.
The only languages that seem to be in demand is C++, Java, and Python (and JavaScript and Bash). These are the only language you'll see on job ads, with the exception of the very occasional C or PHP. Of course, once people have a job, they will choose whatever language they like, so you will encounter Go, Scala, and C.
Go is pretty high in demand from what I see, but then I also spend a lot of time hiring for Go devs as well.
I see a lot of Elixir, Scala and Clojure as well.
@@dreamsofcode At the moment I see 4 job ads for C developers (out of just above 3000 job ads for developers), and 4 job ads where Go is used but it is not a requirement for any of them. But I did forget about C# being in demand (I ignore them because they are probably for Windows development).
Elixir: 2 ads (not even irrelevant stuff show up)
Clojure: 2 ads (not even irrelevant stuff show up)
Scala: a few ads show up, but a lot of them seem to be irrelevant, and I cannot find any there it is actually a requirement.
does go has a framework that is similar to nextjs for nodejs?
Yes there are.
Mahn, please do the dadbod plugins for NvChad
whats your vscode theme ?
My man. I am a Neovim guy! I use catppuccin
I was hoping if you would make a similar video but with Rust & Kotlin
I can add this to my list of videos to create!
Go disallowed Allman braces in all code, just because they don't like Allman braces.
that's because Allman is objectively trash
"They all hated C++"... hate alone is never a good drive, or guide, to build new things
Erlang not Elixir? Doesn't right this. Could be Erlang/Elixir.
Thank you
How long Go will last bruh as hot in job market
I believe for a long while!
@@dreamsofcode I think about Go as it gives lots of possibilities to build desktop apps not hard like in Rust Tauri but in Go Wails I was being told the same that Python have many jobs but nobody actually hiring
Good video.
Thank you!
More please.
My personal experience with GO is quite bad, I'm currently learning it coming from Python and I didn't know that there's a lot of standard library, just from this video I have never heard any of these before.
I can find a lot of answer for JS, Java, Python, PHP by searching it, but for GO I rarely had an accurate search result.
But then why dont they have null safety?!
I know. I wish they did.
My brain stuttering every time I see `n int` instead of `int n` lmao.
The new generics are still ridiculously weak and you still can't implement common iterator patterns in Go, because you can't have generic methods
I agree. I don't think Go needed generics and the implementation has been pretty poor, especially for tooling. I hope they improve it soon.
That being said, I do think Go is useful without generics.
@@dreamsofcode I kind of wish that Go had a system more like Zig's, where it added comptime evaluation and basically just made generics a special case of that where the generic parameter is a compile time argument to the function. It would have generally felt consistent with other places where this is done in go, where you often already do switches on the type of a value
It's really powerful while also keeping Go's strength where the entire set of language features can be learned in a day
I learn languages by doing small projects. Java/Kotlin for Android, JS/TS for React, Vue, Svelte, etc..., Python for data processing, C# for Unity, Rust for Tauri...
What type of project aside from an API would be good to start with?
I'd say anything hyper concurrent would be perfect for Golang. i.e. building a single process data pipeline with channels to read data off a push prot/stream and process it in parallel would be really cool.
cool video)
All I can say is: Run
It’s a cool language but some of the syntax can just fuck offff
i don't see why do we need another one language that based on a garbage collection when we have java, c#, js and many others.
it's not faster, it's not better, it does not have many features that c# has for example, it introduces nothing new.
sure, google wants to be intendent from others and has own language and this is the only reason why it exists.
Please do a video about the comparison between Golang and the newly released Mojo !!!
Because I am silly I prefer Goose 🦆 over goblin/gopher ;)
YES
rust
Haha you know I love Rust! Go does have it's place though still.
Go wasn't created bc they hated C++. It was created bc the C++ standards committee still hasn't standardized a library for network encrypted communication. In this day, it's a necessity. Instead of waiting for the standards committee to get around to it, they created their own language specifically for network encrypted communication.
Citation needed
no citation needed-- do a goog search.
@@FrenchPirate83
something like this sounds legit - b/c Go is a fairly uninspired language otherwise
They aborted the decision of adding the non-bypassable telemetry in the toolchain?
masm is the best👍🏻
❤❤
1:20 a typo
Go like like python++
Video about channels!!!!
You got it boss!
@@dreamsofcode much appreciated. Love your videos!
The answer is yes, save yourself the 4 minutes
Ahh you know people want more than that, right?
Go is certainly interesting, but I absolutely *despise* the fact that it deliberately lacks things like method overloading or default values. The fact you have to avoid dependency loops is also annoying.
I can see *why* the creators made the decisions they did, but I disagree with some of them.
Better to use zig, rust and v in future
I think Rust is fantastic but the cognitive overload is quite high and can cause teams to slow down somewhat.
Zig and V are very interesting though
GOPATH *
Gopher
It depends. 😂😂
Too many languages to learn man
Why? Erlang is better
I do like Erlang a lot. But the memory usage is so high 😭
@@dreamsofcode That’s why it’s so stable. No swap space writes. It runs all in an emulation zone. When a process crashes it rebuilds the environment automatically, which means no data loss.
GO has none of these aspects
no, you shouldn't.. learn rust or zig instead
@@xpynim why bro?
No. Golang is not well designed for any specific domain. Pointers and concurrency issues make it more suitable for gaming not web dev. But there are surely better choices for game engines. So Go is in no-mans-land.
I wish trading firms can pick up Go so that gophers can unlock higher pay jobs without switching back to C++
I'd be nicer for developement, but I think the garbage collector is the main reason this won't happen. It can cause periods where the code is frozen due to the "freeze the world" behavior in mark and sweep.
Trading software tends to want very deterministic performance for execution of trades.
@@dreamsofcode are you saying Golang software would freeze up randomly during it's garbage collection?
@@zuowang5185 Go uses Mark and sweep garbage collection which means it halts operation to run the garbage collector. This is very negligible in most operations, but for trading software it's usually deemed unacceptable.
cool video)