📜 ⬆️ ⬇️

Go in 2015

The outgoing 2015 year was quite intense for the programming language Go and its community. More and more people are discovering the power behind the simplicity of the language, the community is growing, developing and playing an increasingly important role in the present and future Go. This is the sixth year of the language existence, marked by several important changes to the insides of the language, a fantastic improvement in the garbage collector, the first step towards standardization of work with dependencies and many other events.
Let's take a quick look at important events of 2015 in the world of Go.



Perhaps, it’s worth starting with the gratitude of the Habrahabr audience, which, with its turbulent and not-so-controversial discussions, creates a special interest in the Go language. The number of pros and cons that get articles and translations about Go, clearly shows how indifferent readers are to the success of the language. You can always listen to constructive criticism of Go in the Russian-language podcast Golangshow , and non-constructive criticism, which often arises in comments and causes heated discussions, makes more and more people find out who is right.

Anyway, the year 2015 was marked by the fact that such companies as SpaceX , Dropbox , Basecamp , MongoDB , VKontakte , Baidu and many others said about the active use of Go modestly and in passing.

')
The main niches of Go are still server systems and infrastructures - the whole spectrum, from small microservices to exabyte distributed storage systems. REST / Web backends, all sorts of proxies, databases, container planners and other server software are those areas for which Go was created.

This year, Go also showed that it is possible to write “oper-day” on it (hello, Anton !)) - the company Mondo creates an electronic bank on Go. Also an important breakthrough this year was in the development of gomobile - the first application on Go appeared in the AppStore, and for Android some companies have been using Go for a long time to their advantage.

With the desktop software on Go this year did not happen : the gxui UI library was abandoned, and there are no new serious alternatives. I believe that this is due to the slow but sure death of the value of desktop software as a class.

In order to give the reader a greater understanding of Go areas, I’ll give you a diagram like this that is based on a subjective understanding of the applicability and actual use of Go:



Well, now I suggest to briefly go through the main events of Go of the outgoing year. And in order not to guess what events or materials were this year, we ask Go to do it for us and select the top posts from the subreddit golang:

Code from the picture
package main import ( "fmt" "github.com/jzelinskie/geddit" "time" ) func main() { session := geddit.NewSession("") opts := geddit.ListingOptions{ Time: geddit.ThisYear, } posts, err := session.SubredditSubmissions("golang", geddit.TopSubmissions, opts) if err != nil { fmt.Println("Failed to get posts:", err) } for _, post := range posts { date := time.Unix(int64(post.DateCreated), 0) fmt.Printf("%s: %s\n", date.Format("02 Jan 2006"), post.Title) } } 


The result will be the following list:


This top didn’t get a lot of things, so briefly what I ’m recalling: the implementation of HTTP2 was written, which will be in Go 1.6 standard library (yes, the servers on Go 1.6 will support HTTP2 from the box), the guys from JetBrains spent (and continue carry out) tremendous development work on the Go plugin for IntelliJ IDEA, as well as Fatih Arsian, the author of the vim-go plugin, which now works fine with NeoVim. Also appeared (not really necessary) support of shared libraries.

An important step is the first step in standardizing a solution for managing dependencies in Go. The mono-repository approach in Google does not work well with the “classical” scheme, where all dependencies need to be implemented for a project, and Go 1.5 has experimental support for a special agreement to take dependencies from the vendor / folder, if any, in the project. In Go 1.6, this behavior will not be more experimental, but still optional, and in Go 1.7 it is planned to be already by default. At the same time, the community has yet to come to a consensus on how best to automate work with dependencies, so there are several solutions.

Speaking of past events, you can not ignore the Go conference . This year 13 (!) Conferences of various sizes were held, and next year even more are planned. Of the new ones, these are conferences in China, India and Dubai! The main conferences remain the international GopherCon , which traditionally takes place in Denver, and the European dotGo in Paris.

Also this year, the already-mentioned Russian-language weekly Go podcast Go- Golangshow was launched . In the podcast, the presenters not only discuss the latest news from the world of Go, but also invite interesting guests. 35 issues have already been recorded, so feel free to subscribe to iTunes or to the site https://golangshow.com .



But next year, 2016, we are waiting for Go 1.6 and Go 1.7, even more interesting projects and products for Go, new companies and vacancies.

Happy New Year and happy coding!

Source: https://habr.com/ru/post/274057/


All Articles