Why go?

Todd McLeod
A free video tutorial from Todd McLeod
Tenured College Professor
4.5 instructor rating • 19 courses • 309,157 students

Learn more from the full course

Learn How To Code: Google's Go (golang) Programming Language

The Ultimate Comprehensive Course - Perfect for Both Beginners and Experienced Developers

46:34:12 of on-demand video • Updated August 2019

  • The ultimate comprehensive course
  • For beginners and experienced devs
  • Taught by a university professor
  • From beginning to advanced concepts
  • Concurrency, channels, benchmarking
  • Testing, error handling, documentation
  • Hands-on exercises with solutions
  • Access to valuable code base
  • This course is tried, tested, and proven
  • Over 2.65 Million students taught
  • Lifetime course access
  • Learn at your own pace
  • 100% satisfaction guaranteed
English [Auto] So now we're going to talk about why you should choose the Go programming language and the first thing that drew me to the Go programming language were the credentials of go go has amazing credentials. And so it's it's a software it's a programming language created by Google and to create a Google hired some of the heaviest headers in computer science. Some I call them luminaries luminaries in computer science. They hired Rob Pike Ken Thompson and Robert gress summer. And so these are some of the same individuals who helped create the bee programming language the C programming language Unix the Unix operating system and UTF 8 the world's most popular coding scheme. And and literally that's like the bedrock the foundation of computer science. So Google looked around at all of other programming languages and said none of these programming languages are meeting our needs. Not c not C plus plus not C Sharp not Python not Java not javascript definitely not javascript. None of these languages are meeting our needs. We need to create a new language. So just like let that detonate in your mind for a second. Like Google which to me is the best software engineering firm to have ever existed. Google looked around at all the other programming languages that are out there and said nope none of these are doing it. We're going to create a new one and to do that. They hired luminaries some of the heaviest hitters in computer science to create it. Rob Pike Ken Thompson Robert Grassmere. So as soon as I heard that I was sold on the go go programming language. And and that was in the early days of go. And so there weren't a lot of people involved in it and I got in and learned the language really early and and I benefited from that. It's been awesome because it's been really wonderful to see the go community grow and see the popularity of go grown to see other people validate that yeah literally this is the best programming language you could know and use today. And it's used widely in industry and you know all the major companies are using it. And we'll see. We'll take a look at that here in a second. But the other reason Ray like for you why goes the best language to learn today. It's the fastest growing programming language in America and it's also the highest paying programming language in America. And so I have some links here in this course outline and you're going to get access to all of these course resources very soon. But here's a link to a tweet that I put out where it's going is the top paying language so you could take a look at this graphic right here. When you of course resource you could just click that link. And by the way Todd McCloud right here on Twitter make sure you follow me. I'm kind of new to social media and but I'm just totally embraced and I love it. And it's a great place. Like I'm always sharing awesome things I think. So check me out on Twitter. But it goes to topping language he could. You could click that link to get their credentials. Go right. Google created it. Rob Pike Robert gresse summer and can Thompson. And then why did they create it. So that's the next thing that is like a really good question. Why did Google create this programming language. And here's the story. So in 2005 2006 the first commercially available dual core processors became available for for consumers right for the public. And and dual core up until that point in time every programming language was built to take advantage of a single core single CPQ and go was created to natively easily take advantage of multiple cores multiple cores in one machine and multiple cores across multiple machines. And so go does parallel computing concurrency design patterns and parallel computing really well and it's built to do it easily and it's super fast. And so 2006 first dual core processors came out. No no programming languages had been built to natively easily take advantage of multiple cores. Google started creating language to do that. In 2009 the open source language in 2012. The language was released March 2012 is released version 1. So stable version and so was built to take advantage of multiple cores and to do concurrency in parallel ASM really easily. And so the three goals of the Go programming language were to have efficient compilation meaning taking your code from from from your programming language and compiling it down to machine language to binary compiling it down to do that really quickly efficient compilation efficient execution. So to have it be really performant and ease of programming and if you click on this link right here it's going to take you to go Layng dot org. They have an FAA queue and you can read about why are you creating a new language and you'll you'll see those three things there you can pause it right now if you like and read that. All right. So that's that's why gos created for those those three reasons and one more nicely and great there which you could peruse if you want to pause the video and take a look at that. And then what does go good for so goes good for what Google does which is web services at scale that's one of the things that's really good for Google is rewriting a lot of their infrastructure in go. And so YouTube is already been completely rewritten and go. It's great for networking it's great for concurrency parallelism taking advantage of multiple C.P. use multiple cores on a machine. It's against system level programming language it's good for automation command line tools. It's good for a career. So there's a bunch of different things goes good for those are just some of them you can do image processing right. I did a course for Linda dotcom where one of the challenges as I did some image processing I don't recommend that course it kind of got destroyed in editing I think but you can do image processing with go. So the guiding principles of the language were to have an expressive comprehensible sophisticated clean clear and easy to read and some of the companies using go. Let's just take a look at that. Are the guiding principles of the design. You can pause a video and watch that read that there it is. And and here are the companies using go. And so companies currently using go throughout the world you can scroll through that entire presentation here which I get when people ask me to talk about the Go programming language. So it is kind of like scroll through that and do a little bit of review and see a little bit of additional information here. So why go Lange. This is a great article you can click that link it's going to take you there. Who made this. Ken Thompson Rob Pike Robert Grassmere and a few other engineers go was invented by geniuses. It's performant takes advantage of multiple cores does concurrency design patterns really well which leads to parallel execution. That's the difference between concurrency and parallelism we learn that through the course it's compiled language has a garbage collector it works well networked environments it's got a clean syntax to powerful standard libraries there's a lot of pre-written code for you to use garbage collected. I said that it's portable. I could code on Windows compiled to Linux and then you know have a Linux executable. It's backed by Google it's open source. Why are you creating the saw that. Here's a nice diagram right. So you can just pause this video and let that digest in your head fast and fun for humans. Fast efficient for computers like. Totally fast for computers. Not so fast for humans. You know Python fast for you fast for humans. Not so fast for computers but go like kills it in both categories. That's what they're going for efficient ease of programming and efficient execution is basically what this diagram saying. And then concurrency and parallelism efficient concurrency C C++ Java write beautiful straightforward code and not so much. But go is efficient concurrency and beautiful straightforward code so that's nice. And this is a really nice quote from Bill Kennedy. He's a heavy hitter in the go training ecosystem. So you could check him out at Arden labs if he ever get the chance. Make sure you go to one of his in-person trainings total Kagermann pants and he'll he'll he'll take you to new levels of knowledge with language skills awesome. Here is some more information on the Go programming language from Caleb Doxey. Caleb doxies also written a great book on the Go programming language for getting started with go and and a personal friend of mine and he's awesome That's his description of go. You can go to that your L By the way and read some of it. And just like a nice thing from the go from go and go is released right here Google. You can just take a look at this and pause it also. So how are companies using Go Google YouTube apple. You can see a longer I created this course had their old logo. YouTube Apple Dropbox all these people Gawker and it just goes on. Right. Like you recognize all these people even say OK how I'm going to learn this language everybody's using it. And there's a bunch of companies you don't you don't know. And I love this rate here. So farewell A.J.. And one of the creators of no one and one of the largest contributors from node left node and and then there's also here's here's what what what can be used for right here. There's also one of the founders let me find this for you. Hold on cool so I just found it here from October 2017 the creator of no JSA has abandoned a note in favor of go and and here it is. And I'm just going to click on these links here so we can take a look at it. And I need to know Jason and currency. And then here is interview with Ryan Dahl creator of no. So the creator of no G-S has completely abandoned Noojee. And his reason for it is I think note is not the best system to build a massive server web I would use go for that. And honestly that's the reason why I left. No. It was the realisation that oh actually this is not the best server side system ever. So the guy who created node left node for go. I don't know of anything else beyond that needs to be said. So that's that's why you choose the go programming language. Here's a little example of what you could what was done with go a couple of years ago and you could find that link and then go blog. So you could just read kind of like how that changed things. So for experienced developers it's great language to learn. It's the highest paying fastest growing language in America. And and it's the best language just from an architecture language design perspective was built by the best software engineering firm to ever existed and the best people some of the best programming computer science people have ever worked in computer science. And so if your experience that's why you might want to learn go. And if you're new to programming it's a great language to learn because it has ease of programming and it also has the constraints of being a compiled language with a compiler that's going to check your syntax in your code and tell you when you did things wrong and it's a static programming language not dynamic. So you have to learn all about types and values. And we're going to learn that in this course. So go is the absolute best choice. I say that with complete confidence absolutely best choice. They could use today that you can do that for a language and then also that you can learn as language whether you're a beginner or experienced. All right. So that's that's the gospel of go. That's me proselytizing the good word of programming. And and go is the way to go today.