Go was the language of choice for my distributed class and the way it carried me through the hardest assignments I ever tackled in my degree has sowed a deep seed of appreciation in me. My professor called it a fusion of C and Python, and it takes a lot of the better elements of both.
@@jermainneespinoza2266 There is no perfect language. I would personally take Java for most use cases. It has come a very long way. It now has records, pattern matching, switch expressions, virtual threads, and string templates. Not to mention an excellent runtime that is the JVM, and an excellent ecosystem. C# is nice, but it seems to have a everything-including-the-kitchen-sink approach to design, and it has too many features.
I came back to say "Thanks!" I first came across this video at the end of May 2022. I've been working with C# since 2003. I had been thinking of picking up a new language and the weekend that I decided to start learning Rust I came across this video and saw golang for the first time. And I loved it. I started playing around with it on weekends but since November 2022, aside from about 50 lines of C# code, all my code until now has been in Go. This video format was enough to highlight all the important bits and get me hooked on the language. I did take a look at rust just in case, but it's not for me. I have now added Golang to the languages I'm comfortable working with going forward.
Did you ever find the name of it? I think I know which one it is by NoStarchPress but I'm not sure if that's what @thecoolnewsguy meant @@vishalvivekm
@@ioneocla6577 Sure, but that is already acknowledged in the video. It didn't have to take the step of saying that Ken also created C. He did have a lot to do with it, but the bulk of the work (and where the credit generally lies) was Dennis Ritchie.
I used to code in Go, I also used to think that Rust is Go's nemesis, but after switching to Rust, now i realize that idea was totally wrong. Rust is way more powerful then Go. if i have to compare, i would compare Rust to C++ & Go to Java.
I use to use a lot of go, iv tried rust but it did not work out of me. Personally iv been using D and I have been very happy with it. I feel it’s a shame that no one talks about it.
A series about programming languages could be fun! What's up with Rust? Why is Haskell so different? Is PHP still a valid choice? I have lots of questions that could be answered with a very basic overview of certain languages. Also, great video as usual
One of my favorite parts of using Go was the ease of concurrency - channels and waitgroups (kinda semaphores?) are built-into the language, and concurrency is as simple as appending "go" before a function call. No need to wrangle with threads (plus memory managment as well) or async/await or anything like that!
@@elderofzion That level of nightmare only became possible because another layer of complexity got abstracted. This new nightmare layer will get abstracted away in the future after it matures.
It is starting to become genuinely frightening that no matter what technology I discover or would like get into, it takes about 2-3 days until I receive a UA-cam recommendation of a new Fireship video about that specific topic. Seriously, no matter how often I think "that's it. fireship can't do even better." he simply does and that's why you are the #1 learning platform when it comes to software engineering to me!
You should make an API in Rust and in Go and compare your experience between the two. Also, you should make a video about deploying a fullstack application and specifically what point of the deployment process you would need to implement horizontal or vertical scaling. Deployment is still a black box to me since I mostly use tools like Netlify, Firebase, Supabase, etc.
Also you should make a video about building an app with Next and Supabase. Those tools fit really nicely into your catalog of videos. That being said, I'm already pretty confident with the stack so I'd rather see content about things I'm not confident in😂
I don't know if you'll see this comment but thank you for making such amazing and concise videos. You are very inspiring. There are two people that I really look up to on youtube, one is Grant from 3Blue1Brown, and you sir. Your video creation process video helped me a lot in assembling my own ideas and creating new things. Thank you again!
This channel is seriously gold, I have an serious attention issue where I can’t focus on long articles and 10 minute videos, these 100 second videos really help me get introduced to the tech without losing focus thanks Jeff
Ken Thompson has only created the B programming language, which was a stripped-down version of BCPL. Dennis Ritchie then developed the C programming language, which evolved from B. Later, Brian Kernighan and Dennis Ritchie together wrote the book "The C Programming Language," which set the K&R standard for C.
Should've focused more on goroutines and its excellent scheduler. "You can simply put 'go' in front of a function to make it a goroutine and spawn hundreds or thousands of goroutines and let go's excellent scheduler handle it efficiently without any sweat".
Indeed. While the type inference is cool, I would have preferred he go more in depth to the go-routines, channels, and interface system as that is where go shines IMO. but he was already at 150 seconds so I get what he picked.
I mean without few lines said about goroutine, channels etc.. how would people understand what's different in go than c/c++ etc..? What makes it unique? Why rob pike and ken thompson gang set out to make a new language? Talking about those unique go things should've been given more priority than showing how to declare a variable. Come on, everyone already knows how to type "var".
Your timing is insane, I started learning Go after applying to Hashicorp as an intern right after seeing your Terraform video. Would love to see a haskell video next!
It’s literally my favourite coding language. Don’t get me wrong python is my second but it’s fast, it’s easy and you can compile to an executable! I don’t need a VM and I don’t need a browser. Also I don’t need to put my stuff in the main folder anymore I can just use go mod init and run the files from Anywhere
Does compiling to executable mean it is primarily used for Windows applications? I'm relatively new to programming and trying to find the best language to learn to make apps for different operating systems.
@@NathanielBabalola I’d say travers media has a good short video that I started with. There are tons leading in all sorts of directions depends on whether you want to learn fundamentals are if you have an objective?
@@BakrAli10 the compile to an executable doesn’t mean it’s for windows it compiles to an execute able for windows/Mac/Linux It’s relatively OS agnostic. I’d say in terms of apps it’s not got any native GUI libraries to my knowledge. This is why a package manager built into it is so useful the community has a few options. Honestly go satisfies my use case for replacing python when I need speed and multiple threads. My advice is when your learning set a goal of what you want to achieve and then if you want to learn a language try to build it with the language of choice
@@BIBIJINO elixir is basically Erlang with in my opinion easier syntax and tools. Also I find it easier to call Erlang code with Elixer than the other way around.
As a C programmer, I like Go because you can do things procedurally like in C, and it gets in your way much less, do you do not even realize the difference (except that 'int x' in c would be 'x int' in go). Somehow, I get this feeling much more with Go than with C++.
C++ is a weird case. Basically 9 out of 10 times these new languages were created + are as good as they are because C++ tried to do something that didn't age well. It's like C++ is contributing to programming language design, by being poorly designed.
@@aldi_nh Uh No, there is a lot more to be said about the compilation or the interpretation process. linking, bytecode, machine code, lexing, parcing, object files, class files, pyc files / __pychache__, depending on what language, virtual machines, run time vs compile time.
I think it'd be cool of you had a series of "classic" coding languages "in 60/90/100 seconds" like fortran, pascal, and other much older languages that are either not used anymore or less often but to explain their purpose and the areas that they were helpful in
While I'm one of the most ardent advocates of short, targeted videos on UA-cam, I'm also against pushing too hard to shorten things. A video that conveys all the beauties of Go in a very short time should not necessarily be packed in 100 seconds. For example, what if it was 10 minutes? A 10 minute video that touches on all the key components of Go would be much better. Incomplete introduction is not laudable brevity. Being short doesn't necessarily mean 1-2 minutes. A laudable brevity would be to explain in 20 seconds what others cannot explain in 20 minutes. But while it can be a great success to tell something that others can say in 5-10 hours in 10-15 minutes, it may be meaningless to squeeze it into 100 seconds. Despite everything, as someone who just started learning Go yesterday, I became aware of the existence of the go build command and realized how much it simplifies the compilation. Thanks.
I think this is the 100s video that has piqued my interest the most out of everything you've done. I'm much more focussed on and familiar with desktop development and Go sounds like it could be an awesome alternative to the languages I usually use... Or would if there was native gui library support, but maybe one day. In the meantime I'm sure a third party library will get the job done.
0:03, coming from Ken Thompson (0:17), it's surprising why he didn't just chose C++. It has 3x the C# speed, coroutines (C++20), concurrency, and not a bad syntax (Go should be 3x sweeter to use): 0:45, auto x2 = 42; 1:19: #include //1:53. int main () { printf ("Hi Mom! "); //Or , if the system has carriage return. std::string name = "Jeff"; //No pointer. Or auto for 'const char' pointer. auto age = 75; auto likesGo = true; return EXIT_SUCCESS; } 1:58: #include std::string myArray[] = { "emoji1", "emoji2", "emoji3" }; #include std::map myMap = { { "robot", "robot_draw" }, { "pixel", "pixel_draw" }, { "clow", "clow_draw" } }; for (auto x = 0; x < 10; x++) printf ("emoji "); //Or: #include for (auto x = 0; x < 10; x++) std::cout
Great video as always mate, def seems a language to learn especially for the corposphere in the coming decades. Seems intriguing to me for the speedy compile, and server side usages, thanks for the information! Your videos are always a great place for me to start finding out a topic!
@@loureddd Concurrency means multiple tasks which start, run, and complete in overlapping time periods, in no specific order. Parallelism is when multiple tasks OR several parts of a unique task literally run at the same time, e.g. on a multi-core processor. Remember that concurrency and parallelism are NOT the same things.
@@Andrew4d Not really (I think). There is a well defined loop there. When concurrency is talked about it's mostly meant when the language itself decides to stop at certain parts and switch to others to save time. Or maybe I'm confusing concurrency with asynchronous programming... Always viewed them as the same thing
I took a semester of Go, Python, HTML and CSS…now I’m studying full stack development on codecademy and diving into JavaScript. I feel like Go and Python were both simpler than JavaScript
@@sb-jo2ch Concurrency != Parallelism. Goroutines follow a M:N pattern where M is the amount of threads (CPU cores), and N is the amount of processes running on each thread. So quan is correct in saying that it's not concurrency, it's parallelism, because multiple threads are involved, but go does both at the same time at the direction of the Go runtime.
running on multiple threads = running on multiple threads != parallelism running on multiple threads is different from concurrency concurrency is different from parallelism parallelism is different from running on multiple threads all of them are different from asynchronous execution asynchronous execution is different non blocking execution non blocking execution is different from all the above
I think it should be mentioned that Discord recently switched from Go to Rust because of issues with the garbage collector :) and also they said their codebase got way smaller because Go is very verbose and needs some workarounds to get around the fact that it doesn't support generics
I hate the Go programming language. At best, it's a trash language written by a bunch of ivory tower Googlers trying to solve the most Google problems like build times and onboarding new-grad developers that learned something other than the Stanford CS curriculum (god help them if they went to Brown and learned Scheme and might try to write a map or a reduce, better make that not allowed!). But the real thing that makes Go terrible is that it purposely encourages the developer to write more code than they need to and relishes in its lack of convenience. It's like a language written by someone who believes every corner bodega should really be a brutalist 7-story concrete shopping mall. And then everyone who writes Go embodies this philosophy, probably because of some Stockholm Syndrome of being trapped in their oppressive codebases, and they decide that every problem they have should be solved with more code. So they try and try. They write redundant for-loop after for-loop. But it's slow. To get anything done they have to write a fucking novel (in fact, I can't help but suspect this was a conscious decision to gum up ICs trying to make it to Google L5). And at some point the authors realize they're fighting some speed of light constant in how fast they can type and that the only way for them to move forward is to write less code. But less code is not the Go way. So to elevate their coding without violating their sacred ideals they settle on the horrific practice of using code generation. Historically, lots of languages are code that write code. C becomes assembly. Lisp is a whole language dedicated to the idea. Hell, even Pythonists accept that horror show that is source code of collections.namedtuple. But, in all those cases, the reader is spared the horror of actually experiencing that generated code. In Go it's right there in front of you because Go code generators just generate Go code. Or, sometimes even worse, it's not in front of you because you forgot to install some "generate my code" package that no one put in the fucking README. And, as the language has evolved to finally do something other than ship Protobufs over channels, it's been the go-to solution for everything. Generics? Nah, that sounds complicated, let's just generate a bunch of structs! Mocking for tests? Sure, instead of metaprogramming let's just meta-generate-some-crap! Write some SQL? Fuck that, "No SQL" is the future! We'll write Go that generates the SQL! Never will my fingers be cursed by having to write such a practical declarative language, I declare it be in Go! If you locked every Go developer in the world in a haunted castle they'd write a Go code generator that generates brute force loops to search over every square inch of every floor looking for a key. At the end they'd pat themselves on the back for how elegant their code generator was and how decorous the generated Go is. And they'd die in there waiting for it to finish instead of just asking the etherial floating butler standing next to the front door. If it's not writing more Go or writing Go that writes more Go, a Go developer just doesn't do it. It's a god damn monstrosity of a language and a culture.
Go is the new PHP, and the Go community are obsessed with "brutal pragmatism" or another way of saying "hey let's ignore language design and imagine we live in 1970s". It's taken this long and Go after so much peer pressure and anti go memes (lol no generics) has finally added Generics, but that's barely scratches the surface and at this rate Go will forever remain an outdated inferior language. Honestly if it wasn't for Google's strong arm backing then Go would have silently died. But alas like PHP this garbage language will continue to grow and continue to attract mediocre devs
You are the reason all employers think full stack is literally every language and framework.
The reason for my impostor syndrome, but also the cure
What?! Full stack is not all languages?
@@akshy471 all langs + assembler
@@Fuzkin if you can't get a website running in assembly language can you really call yourself a web dev?
@@ipodtouch470 big true right here
Go was the language of choice for my distributed class and the way it carried me through the hardest assignments I ever tackled in my degree has sowed a deep seed of appreciation in me. My professor called it a fusion of C and Python, and it takes a lot of the better elements of both.
Except that neither of those languages are what you would consider well designed.
@@zhamed9587what would you consider I well designed language?
@@jermainneespinoza2266 There is no perfect language. I would personally take Java for most use cases. It has come a very long way. It now has records, pattern matching, switch expressions, virtual threads, and string templates. Not to mention an excellent runtime that is the JVM, and an excellent ecosystem. C# is nice, but it seems to have a everything-including-the-kitchen-sink approach to design, and it has too many features.
@@zhamed9587poorly designed ,and well liked by its users and widely used? Sounds fairly well designed to me
@@jermainneespinoza2266Go, Rust.
Whatever I think this guy does that. Incredibleee
Same here
EXACTLY what I was thinking 😅
Haha same thing here. I was thinking yesterday that maybe it's about time that I should check Go as well and here it's a 100 sec video 😁
tell me what you are thinking right now so i know what he uploads next :)
I was watching some GO videos yesterday. This dude for real cam read my mind
I came back to say "Thanks!" I first came across this video at the end of May 2022. I've been working with C# since 2003. I had been thinking of picking up a new language and the weekend that I decided to start learning Rust I came across this video and saw golang for the first time. And I loved it. I started playing around with it on weekends but since November 2022, aside from about 50 lines of C# code, all my code until now has been in Go. This video format was enough to highlight all the important bits and get me hooked on the language. I did take a look at rust just in case, but it's not for me. I have now added Golang to the languages I'm comfortable working with going forward.
Great to hear that Go's doing great for you but it's unfortunate that you're missing out on Rust. Did you try following the Rust book?
@@biskitpagla i wanna learn rust any advice on how to get started?
@@vishalvivekm the official book is just amazing
@@youarethecssformyhtml can you name it please
Did you ever find the name of it? I think I know which one it is by NoStarchPress but I'm not sure if that's what @thecoolnewsguy meant @@vishalvivekm
As much as I admire Ken Thompson, C was largely Dennis Ritchie's achievement.
Was looking for that comment
Indeed. Ken Thomson initiated Unix.
But ken Thompson created the B language which is the C's grandfather
They are all great
@@ioneocla6577 Sure, but that is already acknowledged in the video. It didn't have to take the step of saying that Ken also created C. He did have a lot to do with it, but the bulk of the work (and where the credit generally lies) was Dennis Ritchie.
Ok I'm officially convinced that Fireship is a psychic... I seriously just started learning Go yesterday.
Same! I literally have another tab with getting started wiki when this video dropped
Numerous people start doing something everyday
it depends, if the next video is about authentication that it'll start getting weird
stop now
He has like a Million subs, and he picks up very famous technologies ... may learn probability before coding, might help!
Next: Rust in 100 Seconds, the Go nemesis.
I used to code in Go, I also used to think that Rust is Go's nemesis, but after switching to Rust, now i realize that idea was totally wrong.
Rust is way more powerful then Go.
if i have to compare, i would compare Rust to C++ & Go to Java.
I use to use a lot of go, iv tried rust but it did not work out of me. Personally iv been using D and I have been very happy with it. I feel it’s a shame that no one talks about it.
I used to be an adventurer like you. But then I took an arrow function to the knee.
@@bunny_the_lifeguard9789 LOL
@WolframaticAlpha Your definition of fun may be productivity, but Rust has qualities which are more fun to other people, f.e. safety & performance.
A series about programming languages could be fun! What's up with Rust? Why is Haskell so different? Is PHP still a valid choice? I have lots of questions that could be answered with a very basic overview of certain languages.
Also, great video as usual
If the record of this UA-cam channel speaks for himself, he is already planning all of that videos, the question is: In what order they will arrive?
PHP is 100% a valid choice
Rust is great
@@jondoe6608 Only with laravel on top tho, powerful tool.
Using php at work right now. Don’t! Trust me.
One of my favorite parts of using Go was the ease of concurrency - channels and waitgroups (kinda semaphores?) are built-into the language, and concurrency is as simple as appending "go" before a function call. No need to wrangle with threads (plus memory managment as well) or async/await or anything like that!
but since it's so easy people use it so much in complex patterns and you end up in a nightmare again
@@elderofzion That level of nightmare only became possible because another layer of complexity got abstracted. This new nightmare layer will get abstracted away in the future after it matures.
late to this thread, but take a look at Elixir (or Erlang if you have time on your hands).
Go is great. I mainly use it for automating tasks, and I'm starting to use it as a replacement for node for my web servers.
Great.... That you did not use python for automation but golang.... It is awesome... 😀
The quality is getting better day by day
thank you!!!
It is starting to become genuinely frightening that no matter what technology I discover or would like get into, it takes about 2-3 days until I receive a UA-cam recommendation of a new Fireship video about that specific topic.
Seriously, no matter how often I think "that's it. fireship can't do even better." he simply does and that's why you are the #1 learning platform when it comes to software engineering to me!
cringe...
@@IncomingLegend not really...
Try Godot/Unreal Engine, He made one for Unity but not these two.
@@ouo5634 after 11 months, and he covered these 2 as well.
The best thing about Go is that you keep the performance of native executables, but with GC and great package ecosystem.
What? ))) Go can’t offer you performance of C or Rust. Go isn’t about performance. It’s about simplicity, concurrency and compilation speed.
@@phat80 Did I even mention Rust or C? It is still much faster than any interpreted language out there. I didn't say it is the fastest.
@@phat80 Go can definitely offer you performance with more ease than other compiled languages, especially when coming from interpreted languages
@@phat80 huh your comment is weirdly worded, of course go cant be as fast as C. but you like it or not, it is fast, isnt it :D ?
People be like: bUt aSsEmBlY iS fAsTeR
You literally have the best channel on UA-cam.
This looks like a kids programming language from the surface, but the level of simplicity and complexity built into one language is truly astounding
Good lol because I have the brain of a child and I'm trying to learn it
I love simplicity. Most programming languages have a feature overload problem
Python is an actual kids programming language
Fireship is that kind of youtubers that you don't have to watch theirs entire video, you know youll like it
You should make an API in Rust and in Go and compare your experience between the two. Also, you should make a video about deploying a fullstack application and specifically what point of the deployment process you would need to implement horizontal or vertical scaling. Deployment is still a black box to me since I mostly use tools like Netlify, Firebase, Supabase, etc.
Also you should make a video about building an app with Next and Supabase. Those tools fit really nicely into your catalog of videos. That being said, I'm already pretty confident with the stack so I'd rather see content about things I'm not confident in😂
ok its about time you made the `rust` now
Goroutines are based on the 1978 "Communicating Sequential Processes" paper by Tony Hoare.
We stand on the shoulders of giants.
He should've spent more time talking about this. After all, Go is first and foremost a concurrent language.
This channel is my GO to channel for all things tech.
I don't know if you'll see this comment but thank you for making such amazing and concise videos. You are very inspiring. There are two people that I really look up to on youtube, one is Grant from 3Blue1Brown, and you sir. Your video creation process video helped me a lot in assembling my own ideas and creating new things. Thank you again!
Just solved a production grade issue by viewing just this 100 sec video on 'go' being a 'non-go' dev. I think that's all we need.
Many many thanks
Rust in 100 seconds
* borrow checker holding your family hostage *
This channel is seriously gold, I have an serious attention issue where I can’t focus on long articles and 10 minute videos, these 100 second videos really help me get introduced to the tech without losing focus thanks Jeff
Ken Thompson has only created the B programming language, which was a stripped-down version of BCPL. Dennis Ritchie then developed the C programming language, which evolved from B. Later, Brian Kernighan and Dennis Ritchie together wrote the book "The C Programming Language," which set the K&R standard for C.
The Go Logo is iconic.
Should've focused more on goroutines and its excellent scheduler. "You can simply put 'go' in front of a function to make it a goroutine and spawn hundreds or thousands of goroutines and let go's excellent scheduler handle it efficiently without any sweat".
Indeed. While the type inference is cool, I would have preferred he go more in depth to the go-routines, channels, and interface system as that is where go shines IMO. but he was already at 150 seconds so I get what he picked.
He doesn't know Go as he doesn't know most shit he talks about. He made a quick research for this video and the animations took the most time.
I mean without few lines said about goroutine, channels etc.. how would people understand what's different in go than c/c++ etc..? What makes it unique? Why rob pike and ken thompson gang set out to make a new language?
Talking about those unique go things should've been given more priority than showing how to declare a variable. Come on, everyone already knows how to type "var".
bhai ki deshi manush naki
@@biskitpagla yes
You note that a UA-camr listen to his community, when every video he makes is a video about something you wanted to hear about
Interesting timing with Twitch's code being leaked... XD
Most of it was in go too
@@lqx7 Exactly xD
@@lqx7 it's almost like that's what he meant with his comment
@@stijndcl I failed to get notion earlier yeah
Your timing is insane, I started learning Go after applying to Hashicorp as an intern right after seeing your Terraform video. Would love to see a haskell video next!
It’s literally my favourite coding language. Don’t get me wrong python is my second but it’s fast, it’s easy and you can compile to an executable! I don’t need a VM and I don’t need a browser. Also I don’t need to put my stuff in the main folder anymore I can just use go mod init and run the files from Anywhere
Hi, can you point me to a resource to learn Go
@@NathanielBabalola official tutorial Go Tour is a great way to start
Does compiling to executable mean it is primarily used for Windows applications?
I'm relatively new to programming and trying to find the best language to learn to make apps for different operating systems.
@@NathanielBabalola I’d say travers media has a good short video that I started with. There are tons leading in all sorts of directions depends on whether you want to learn fundamentals are if you have an objective?
@@BakrAli10 the compile to an executable doesn’t mean it’s for windows it compiles to an execute able for windows/Mac/Linux It’s relatively OS agnostic. I’d say in terms of apps it’s not got any native GUI libraries to my knowledge. This is why a package manager built into it is so useful the community has a few options. Honestly go satisfies my use case for replacing python when I need speed and multiple threads. My advice is when your learning set a goal of what you want to achieve and then if you want to learn a language try to build it with the language of choice
You are one of the main reasons I open UA-cam multiple times a day.
This is an extremely helpful overview for future gophers
Next: Elixir in 100 Seconds
Why not erlang
@@BIBIJINO elixir is basically Erlang with in my opinion easier syntax and tools. Also I find it easier to call Erlang code with Elixer than the other way around.
2:20 Nice touch with the double ampersand: if you like, you are required to subscribe!
I love these 100 seconds videos! No crap, just information
As a C programmer, I like Go because you can do things procedurally like in C, and it gets in your way much less, do you do not even realize the difference (except that 'int x' in c would be 'x int' in go). Somehow, I get this feeling much more with Go than with C++.
C++ is a weird case. Basically 9 out of 10 times these new languages were created + are as good as they are because C++ tried to do something that didn't age well. It's like C++ is contributing to programming language design, by being poorly designed.
Finally a 100 seconds on my favorite language! Great content as usual :)
Now u can create a video about gRPC vs REST vs Graphql APIS, that could be cool
I so need this
The most awaited video so Far Thank you, @Fireship
Also, Please Upload Video on the GoLang in the Field of Web or Server (more than 100s).
rust in 100 minutes
Yay ! Now I can add Go in the skills section of my resume.
Why did the beyond 100 seconds series stop? As someone wanting to learn go, I would have seen entire course around it narrated by you.
He wants you to go to his website and buy the full course. Man's gotta make his bread somehow, and UA-cam AdSense really doesn't cut it these days.
Check out the Go in Action book. It's a solid read.
Academind has a very good and cheap go course, it was very useful for learning the basics and getting a feel of the language
Its literally a link in the description to the video.
Not really much of a miss, considering the guy thinks C is a functional programming language.
he is the guy every job description expects in their skills section
nice, just wrote my first go program, something to add to my resume ;)
Just commenting to let people know that this guys is great ❤️❤️❤️❤️
Compiled vs Interpreted Languages 100 seconds would be awesome!
Wasn't that obvious enough already?
@@aldi_nh Uh No, there is a lot more to be said about the compilation or the interpretation process. linking, bytecode, machine code, lexing, parcing, object files, class files, pyc files / __pychache__, depending on what language, virtual machines, run time vs compile time.
You didn't even mention multiple return values in functions. :'(
I'm absolutely in love with Go. I find its syntax very elegant. Thanks for the share !
Go is amazing 🤩
Man you got me hooked in learning it in under 100 seconds!!!
I think it'd be cool of you had a series of "classic" coding languages "in 60/90/100 seconds" like fortran, pascal, and other much older languages that are either not used anymore or less often but to explain their purpose and the areas that they were helpful in
COBOL too!
While I'm one of the most ardent advocates of short, targeted videos on UA-cam, I'm also against pushing too hard to shorten things. A video that conveys all the beauties of Go in a very short time should not necessarily be packed in 100 seconds. For example, what if it was 10 minutes? A 10 minute video that touches on all the key components of Go would be much better. Incomplete introduction is not laudable brevity. Being short doesn't necessarily mean 1-2 minutes. A laudable brevity would be to explain in 20 seconds what others cannot explain in 20 minutes. But while it can be a great success to tell something that others can say in 5-10 hours in 10-15 minutes, it may be meaningless to squeeze it into 100 seconds. Despite everything, as someone who just started learning Go yesterday, I became aware of the existence of the go build command and realized how much it simplifies the compilation. Thanks.
nobody asked
I love your channel Jeff.
Your work is incredible, keep it up!
This should be an official presentation of GO :) Wanna try
Waiting to see algorithms and data structure courses taught in Go
you learn algorithms and data structures in general, not in a particular language.
@@marcello4258 True, but the course is being taught by a language afterall
@@amrelmohamady you can teach DS, Algo with only english as well
@@amrelmohamady ah I see.. I missunderstood your post.. Enjoy pal!
I get inspired whenever you make new videos from something different each time
I think this is the 100s video that has piqued my interest the most out of everything you've done. I'm much more focussed on and familiar with desktop development and Go sounds like it could be an awesome alternative to the languages I usually use... Or would if there was native gui library support, but maybe one day. In the meantime I'm sure a third party library will get the job done.
What a video, again, and again. Amazing man. Thanks and I wish you will keep doing more.
Rust is at the top of your graph @ 0:08 now you need to do Rust in 100 seconds 🙈
I was waiting for this for loong. Worth it!
Please expand on this video! Amazing how you compress such informative content into just 100 seconds 💪
0:03, coming from Ken Thompson (0:17), it's surprising why he didn't just chose C++. It has 3x the C# speed, coroutines (C++20), concurrency, and not a bad syntax (Go should be 3x sweeter to use):
0:45, auto x2 = 42;
1:19:
#include //1:53.
int main () {
printf ("Hi Mom!
"); //Or
, if the system has carriage return.
std::string name = "Jeff"; //No pointer. Or auto for 'const char' pointer.
auto age = 75; auto likesGo = true;
return EXIT_SUCCESS;
}
1:58:
#include
std::string myArray[] = { "emoji1", "emoji2", "emoji3" };
#include
std::map myMap = { { "robot", "robot_draw" },
{ "pixel", "pixel_draw" }, { "clow", "clow_draw" } };
for (auto x = 0; x < 10; x++) printf ("emoji
"); //Or:
#include
for (auto x = 0; x < 10; x++) std::cout
Great video as always mate, def seems a language to learn especially for the corposphere in the coming decades. Seems intriguing to me for the speedy compile, and server side usages, thanks for the information! Your videos are always a great place for me to start finding out a topic!
Short assignment is such an amazing little feature.
Would love to see Rust
soon...
@@Fireship I like how your reply has more likes than the OP
@@Fireship Thank you
GOD BLESS YOU 🙏❤️
Rust video was released today
@@thomasreese2816 ik
I really don't understand why ppl dislike these vids
Go beyond 100 seconds. That's a video I wanna see
Also for Rust. Heard a lot about it.
Yeah maybe building a rest api with the go stdlib?
I was blown away at how fast GO compiled your program.
This is great, but "concurrency" and "parallelism" (as you've described in the last sentence) are NOT the same thing.
Hi, do you have a link to a video or a website which explains that ?
@@loureddd Concurrency means multiple tasks which start, run, and complete in overlapping time periods, in no specific order. Parallelism is when multiple tasks OR several parts of a unique task literally run at the same time, e.g. on a multi-core processor. Remember that concurrency and parallelism are NOT the same things.
@@MichaelHV so you could say the event loop in nodeJs is an example of concurrency but not parallelism?
@@Andrew4d Not really (I think). There is a well defined loop there. When concurrency is talked about it's mostly meant when the language itself decides to stop at certain parts and switch to others to save time.
Or maybe I'm confusing concurrency with asynchronous programming... Always viewed them as the same thing
Very short but more helpful than long video tutorials. Good luck!
Do Kotlin and Kotlin Native next please!
Exactly!!
Should've focused more on how it handles concurrency. That's honestly the best part of Go.
Great video! A Rust video would be awesome!
Your amazing video has successfully summarized the basic things we should know about Go.
can't wait for rust
That feeling you get when you realise that these 100 seconds videos aren't actually 100 seconds long :(
Simply wow, this guy creates interest in learning about technology more than anyone else
aaah!! finally. THANKS....... We need a full course on this one Jeff.... Please. I'll buy lifetime subscription of FireShip just for this.
I took a semester of Go, Python, HTML and CSS…now I’m studying full stack development on codecademy and diving into JavaScript. I feel like Go and Python were both simpler than JavaScript
Go and Python ARE both simpler than JavaScript.
Both are better for the backend too.
Python >= JavaScript > Go
I don't understand pointers :(
@@aeggeska1skill issue
do rust in 100 seconds next.
Rust in 100 seconds!
Thanks! That's enough to start with for a 2-year experienced Computer Science master graduate
Rust in 100 seconds🦀
Thanks for 49 seconds of bonus content 😜
Could you provide the source for your first graph where you compare the programming languages to each other? Thanks!
unprecedented coding vids; best on yt
"ultilize cpu cores" is not concurrency =(
Why not?
@@sb-jo2ch Concurrency != Parallelism. Goroutines follow a M:N pattern where M is the amount of threads (CPU cores), and N is the amount of processes running on each thread. So quan is correct in saying that it's not concurrency, it's parallelism, because multiple threads are involved, but go does both at the same time at the direction of the Go runtime.
I think you should have explicitly mentioned channels. It's a fundamental part of Go not seen anywhere else.
I'd like to see something like the pros/cons/main uses of the most popular/most used languages today.
This is the best go review on the whole damn internet.
Would be nice to include that GO has a GC, instead of C, C++ or Rust.
you mean "unlike C, C++ or Rust."
@@biskitpagla you're right, English is not my primary language, so mistakes can happen. :)
@@_modiX it's not mine either, that why i replied
Cause C++ and Rust doesn't need a GC, and C still haven't figured out how to deal with resource management... despite being roughly 50 years old.
I tried Go to build backend service, and it actually is easy to learn
Running on multiple cores != concurrency. That's parallelism.
running on multiple threads = running on multiple threads != parallelism
running on multiple threads is different from concurrency
concurrency is different from parallelism
parallelism is different from running on multiple threads
all of them are different from asynchronous execution
asynchronous execution is different non blocking execution
non blocking execution is different from all the above
I would say concurrency is a superset of parallelism, but is true that that statement is misleading
Fireship Go 🔥 please keep it
I think it should be mentioned that Discord recently switched from Go to Rust because of issues with the garbage collector :) and also they said their codebase got way smaller because Go is very verbose and needs some workarounds to get around the fact that it doesn't support generics
I hate the Go programming language. At best, it's a trash language written by a bunch of ivory tower Googlers trying to solve the most Google problems like build times and onboarding new-grad developers that learned something other than the Stanford CS curriculum (god help them if they went to Brown and learned Scheme and might try to write a map or a reduce, better make that not allowed!). But the real thing that makes Go terrible is that it purposely encourages the developer to write more code than they need to and relishes in its lack of convenience. It's like a language written by someone who believes every corner bodega should really be a brutalist 7-story concrete shopping mall. And then everyone who writes Go embodies this philosophy, probably because of some Stockholm Syndrome of being trapped in their oppressive codebases, and they decide that every problem they have should be solved with more code. So they try and try. They write redundant for-loop after for-loop. But it's slow. To get anything done they have to write a fucking novel (in fact, I can't help but suspect this was a conscious decision to gum up ICs trying to make it to Google L5). And at some point the authors realize they're fighting some speed of light constant in how fast they can type and that the only way for them to move forward is to write less code. But less code is not the Go way. So to elevate their coding without violating their sacred ideals they settle on the horrific practice of using code generation. Historically, lots of languages are code that write code. C becomes assembly. Lisp is a whole language dedicated to the idea. Hell, even Pythonists accept that horror show that is source code of collections.namedtuple. But, in all those cases, the reader is spared the horror of actually experiencing that generated code. In Go it's right there in front of you because Go code generators just generate Go code. Or, sometimes even worse, it's not in front of you because you forgot to install some "generate my code" package that no one put in the fucking README. And, as the language has evolved to finally do something other than ship Protobufs over channels, it's been the go-to solution for everything. Generics? Nah, that sounds complicated, let's just generate a bunch of structs! Mocking for tests? Sure, instead of metaprogramming let's just meta-generate-some-crap! Write some SQL? Fuck that, "No SQL" is the future! We'll write Go that generates the SQL! Never will my fingers be cursed by having to write such a practical declarative language, I declare it be in Go! If you locked every Go developer in the world in a haunted castle they'd write a Go code generator that generates brute force loops to search over every square inch of every floor looking for a key. At the end they'd pat themselves on the back for how elegant their code generator was and how decorous the generated Go is. And they'd die in there waiting for it to finish instead of just asking the etherial floating butler standing next to the front door. If it's not writing more Go or writing Go that writes more Go, a Go developer just doesn't do it. It's a god damn monstrosity of a language and a culture.
absolutely based
I’ve been using go for 2 years. And though it sounds like you’ve never used it, you did a bang up job explaining it in 100 seconds. Cheers xD
100 sec of Kotlin pls!!
Those 100 seconds looking as flexible as your mo-
Go is the new PHP, and the Go community are obsessed with "brutal pragmatism" or another way of saying "hey let's ignore language design and imagine we live in 1970s".
It's taken this long and Go after so much peer pressure and anti go memes (lol no generics) has finally added Generics, but that's barely scratches the surface and at this rate Go will forever remain an outdated inferior language.
Honestly if it wasn't for Google's strong arm backing then Go would have silently died.
But alas like PHP this garbage language will continue to grow and continue to attract mediocre devs