Why do you teach go


    Picture source


    Go is a relatively young but popular programming language. According  to a Stack Overflow survey , it was Golang that got the third place in the ranking of programming languages ​​that developers would like to master. In this article, we will try to understand the reasons for the popularity of Go, and also see where this language is used and why it is worth studying at all.


    A bit of history


    The Go programming language was created by Google. Actually, its full name Golang is a derivative of “Google language”. Despite the fact that in the announcement the language was called young, this year it will be ten years old.


    The goal facing Go's creators was to develop a simple and effective programming language that could be used to create high-quality software. Rob Pike, one of the creators of Go, said that Go was designed for company programmers who had recently completed their studies and knew Java, C, C ++ or Python. Go for them is a language that you can quickly understand and quickly get used to.


    Initially, it was a tool inside Google, but over time it came out of the bowels of the corporation and became public.


    Language benefits


    Golang has a large number of advantages, both known and not so.


    Simplicity. Actually, this was the main goal of creating the language, and it was achieved. Go has a fairly simple syntax (with certain assumptions), so applications can be developed faster than in some other languages. And there are two interesting points.


    Firstly, Golang can quickly learn a complete beginner in programming - one who does not know a single language at all and is only going to become a developer. About Go, you can say that it is almost as simple (relatively, of course) as PHP or even Pascal, but as powerful as C ++.


    Secondly, Go can be mastered by an already “mature programmer,” one who already knows one or more languages. Most often, developers learn Go after they have mastered Python or PHP. Further, some programmers successfully use a pair of Python / Go or PHP / Go.


    A large number of libraries. If you are missing out on any features in Go, you can use one of the many libraries and complete the required task. Go has one more advantage - you can easily interact with C libraries. There is even an opinion that Go-libraries are wrappers for C-libraries.


    Code cleanliness. The Go compiler keeps code clean. For example, unused variables are considered a compilation error. Go addresses most of the formatting issues. This is done, for example, using the gofmt program when saving or compiling. Formatting corrects automatically. You can learn more about all this in the Effective tutorial .


    Static typing. Another advantage of Go, thanks to which the developer is less likely to make a mistake. Yes, the first couple of days a programmer, accustomed to dynamic typing, is annoyed to declare a type for each variable and function if necessary, as well as for everything else. But then it becomes clear that there are solid pluses.


    Godoc . A utility that greatly simplifies documentation of code. A great advantage of GoDoc is that it does not use additional languages ​​like JavaDoc, PHPDoc or JSDoc. The utility uses the maximum amount of information that it extracts from the documented code.


    Code maintenance. It is easy to maintain thanks to its simple and concise syntax. All of this is a legacy of Google. Since the corporation has a huge amount of code for various software products, as well as tens of thousands of developers who understand all this, a service problem arises. The code should be clear to everyone who works on it, well-documented and concise. All this is possible with Go.


    At the same time, there are no classes in Golang (there are structures, struct), there is no support for inheritance, which greatly simplifies code changes. Plus, there are no exceptions, annotations, etc.


    What you can write on Go


    Almost everything, except for a few points (for example, developments related to machine learning - Python is more suitable here with low-level optimizations in C / C ++ and CUDA).


    Everything else can be written, especially with respect to web services. In addition, Go is worth developing applications for both the end user and for the development of demons, UI, it is suitable for cross-platform applications and services.


    Demand for golang



    Over time, the language becomes more and more popular. In addition to those companies that are present in the picture above, Mail.ru Group, Avito, Ozon, Lamoda, BBC, Canonical and others work with Golang.


    “We decided to scale the business, it is important for us to build a fundamentally new technological platform that will ensure the rapid development of the product. We rely on Go because of its speed and reliability, and most importantly - the audience of programmers who use it, ”Ozon representatives said in 2018, after the company decided to switch to Golang.


    Well, what about incomes, the salary of the Go-developer last year amounted to an average of 60-140 thousand rubles according to the data of My Circle. Compared to 2017, this indicator increased by 8.3%. In 2019, growth is likely to continue, since so many companies need Golang developers.


    What's next?


    Golang will definitely not stop developing. The need for good specialists who know this language will only increase, so it will not be difficult to find a job for a specialist (beginner or pro). In principle, this statement is also relevant now, since there is a constant shortage of developers on the IT market.


    Go is good for both beginner programmers and pros who already know one or more programming languages. Practically any programmer can learn it or relearn it.


    The article was prepared in conjunction with the teacher of the Golang course at GeekBrains Sergey Kruchinin, for which many thanks to him!


    Also popular now: