It was that said something like this… "The more I learn harder it gets to ask questions, the more I ask questions the more I learn" Todd McLeod Before I actually start to talk about I wanted to talk about it's credentials and specially it's creators credentials. Go Go was created by these three guys called Rob Pike, Robert Griesemer and Ken Thompson. Let's take a look at what these guys have done before Go: , whom for me is like the Yoda of the computer world today, big fan, is best known for his work at , where he was a member of the team and was involved in the creation of the and operating systems, as well as the . Ohh! And he also helped create something called UTF-8, you might have heard of, hopefully! Rob Pike programming Bell Labs Unix Plan 9 from Bell Labs Inferno Limbo programming language , had an early interest in programming languages and ended studying in Switzerland under the creator of Pascal, language which a lot of people will say that had a direct impact on Go. He also had about 15 years of experience working with C++ and his biggest credential in my opinion is that he got recruited by Rob and Ken to join the original Go Team at Google. Robert Griesemer this guy is out of this world, if Yoda had a brother, Ken would be him. He also worked most of his career for , and he was only responsible for designing and implementing the original operating system. He also invented the , the direct predecessor to the , and was one of the creators and early developers of the operating systems. Did you hear that he invented the language that came before C? Ok then. Ken Thompson, Bell Labs Unix B programming language C programming language Plan 9 Anyway, they work or worked for Google when Go was originally created. So… Let's Go! Perfomance: One thing that I like to point it out is that Go is one of few languages that were created after computers had more then one core. And Go makes an exceptional use of that! Go is a typed language that is compiled to machine code. And unlike other new languages that have relied on LLVM such as Swift and Rust, Go has been built from the ground up. And it does not depend on any layer like a virtual machine and all that stuff to run it. One other thing, Go has “ ”, that are much more efficient and cheaper to create than threads. You'll see. goroutines Simplicity: "Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language." https://golang.org/doc/faq So simplicity was a key motivation and a requirement for the design and if you are serious about the language, you should definitely read this by Rob Pike. In Go, compile times are fast and so the immediacy of running a program feels like a scripting language, which is another win for Go when it comes to performance. And a really cool thing is that it does not suffer from continuous language changes. In fact, a big premise in Go is to have no change in the language. If you come from mobile development for example and worked with Swift, you know what that is like, to have a language that keeps changing. The is very good. For example the net/http library is used directly to write servers and there is no need to use layers upon layer of frameworks to write, such as in Ruby or Javascript. paper Go Standard library Concurrency: "Concurrency is not parallelism.", Go Proverbs Concurrency is a huge part of Go! Go has built-in support for concurrency with Goroutines and Channels. This makes Go a natural choice for writing back-end systems with messaging, caching and scalability requirements. This is particularly attractive to programmers that are coming from the single threaded languages like Ruby, Python and others. Is not that those languages do not support multithreaded applications, but they do need some type of implementation to actually support it. Rob Pike has a really good talk on concurrency that you can watch called , that you can check out if you are interested. Concurrency is no Parallelism Deployment: Go compiles everything into a statically linked binary file, so no dependencies are required, so you have a single binary to deploy. This simplifies deployment a lot. You don’t have to worry if your users have Ruby or the JVM installed for that matter. You don’t need to worry about a dependency being upgraded since the entire program is compiled into a single binary. Sweet right?! Who else is using it? Well, besides Google? Here are some: , , , , , , … Well, these are just a few. Docker Heroku Netflix Uber Hashicorp New Relic New York Times There is a whole bunch of companies using Go now a days, and it's only growing day after day. is a official list of companies using it around the world. And I already know of companies that use it and are not on this list. Here How to start? One really good place to start is the , really helps you understand the basics and get some fluency, since you learn by playing around in the . The playground is like an online code editor, where you can run small chunks of code, save it and share it with unique links. For reference we have the guide. And off course there is the Go Language , but I think it is a little tense at first. Go Tour Go Playground effective go specification Those are all good places to start, but if you would like to invest a little more in it I recommend the course on Go Language that is really nice to get you started, there is also a course of by Todd McLeod call which I think it is really nice, and also there are a couple of books that I really recommend also, that are: Code School Udemy Learn How To Code: Google’s Go (golang) Programming Language by Bill Kennedy from Go in Action Ardan Labs by Alan A. A. Donovan The Go Programming Language by Ivo Balbaert The way to Go Conclusion: Fans of Go (by the way, we are called ) describe Go as having the expressiveness of dynamic languages like Python or Ruby, with the performance of compiled languages like C or C++. Gophers So Go is a performatic and simple language, with concurrency naturally built into it, deployment being as easy as it can be, created by some of the best minds in computer programming today, supported by Google and huge community of open source developers, that has a lot of momentum and has been growing faster and faster every day. So the question that you should be asking yourself is not, "Why you should learn Go?". But actually you should be asking yourself "Why aren't you already?" is how hackers start their afternoons. We’re a part of the family. We are now and happy to opportunities. Hacker Noon @AMI accepting submissions discuss advertising &sponsorship To learn more, , , or simply, read our about page like/message us on Facebook tweet/DM @HackerNoon. If you enjoyed this story, we recommend reading our and . Until next time, don’t take the realities of the world for granted! latest tech stories trending tech stories