- PVSM.RU - https://www.pvsm.ru -
Уходящий 2015-й год выдался достаточно насыщенным для языка программирования Go и его сообщества. Всё больше людей открывают для себя мощь, скрывающуюся за простотой языка, сообщество растёт, развивается и играет всё более значимую роль в настоящем и будущем Go. Этот — шестой по счёту год существования языка — ознаменовался несколькими важными изменениями внутренностей языка, фантастическим улучшением сборщика мусора, первым шагом к стандартизации работы с зависимостями и многими другими событиями.
Давайте пройдемся вкратце по важным событиями 2015-го года в мире Go.
Начать, пожалуй, стоит с благодарностей аудитории Хабрахабра, которая своими бурными и не очень дискуссиями, создаёт особый интерес к языку Go. Количество плюсов и минусов, которые получают статьи и переводы про Go, явно показывает, как неравнодушны читатели к успеху языка. Конструктивную критику Go вы всегда можете послушать в русскоязычном подкасте Golangshow [1], а неконструктивная критика, которая зачастую возникает в комментариях и вызывает бурные дискуссии, заставляет всё больше и больше людей выяснить, кто же прав собственноручно.
Так или иначе, 2015-й год отметился тем, что об активном использовании Go скромно и мимоходом заявили такие компании, как SpaceX [2], Dropbox [3], Basecamp [4], MongoDB [5], ВКонтакте [6], Baidu [7] и многие другие.
Основными нишами Go по прежнему остаются серверные системы и инфраструктуры — весь спектр, от маленьких микросервисов до экзабайтных распределённых систем хранения данных. REST/Web-бекенды, всевозможные прокси, базы данных, планировщики контейнеров и прочий серверный софт — это те сферы, для которых Go и создавался.
В этом году Go также показал, что на нём можно писать «опердень» (привет, Антон [8]!)) — компания Mondo создаёт [9] электронный банк на Go. Также важный прорыв в этом году был в развитии gomobile — в AppStore появилось первое приложение [10] на Go, а для Android некоторые компании уже давно используют [11] Go с выгодой для себя.
С десктопным софтом на Go в этом году не сложилось: UI-библиотеку gxui [12] забросили, и новых серьезных альтернатив вроде как и нет. Полагаю, что это связано с медленным, но верным отмиранием ценности десктопного софта как класса.
Чтобы дать читателю большее понимание областей Go, приведу вот такую диаграмму, составленную по субьективному пониманию применимости и реального использования Go:
Ну а теперь предлагаю вкратце пройтись по основным событиям Go уходящего года. И, чтобы не гадать, какие же события или материалы были за этот год, попросим Go сделать это за нас и выбрать топ постов из сабреддита [13] golang:
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: %sn", date.Format("02 Jan 2006"), post.Title)
}
}
Результатом будет следующий список:
В этот топ много чего не попало, поэтому вкратце из того, что вспоминается: была написана реализация HTTP2 [33], которая будет в стандартной библиотеке в Go 1.6 (да, сервера на Go 1.6 будут поддерживать HTTP2 из коробки), ребята из JetBrains провели (и продолжают проводить) колоссальную работу по развитию плагина для Go [34] для IntelliJ IDEA, равно как и Fatih Arsian, автор плагина vim-go [35], который теперь отлично работает с NeoVim. Также появилась [36] (не особо нужная) поддержка shared libraries.
Важным этапом можно назвать первый шаг в стандартизации решения для управления зависимостями в Go. Подход монорепозитория в Google не очень хорошо работает с «классической» схемой, где все зависимости нужно вендорить под проект, и в Go 1.5 появилась экспериментальная поддержка специального соглашения [37] брать зависимости из папки vendor/, если таковая есть в проекте. В Go 1.6 это поведение не будет больше экспериментальным, но всё ещё опциональным, и в Go 1.7 планируется быть уже по-умолчанию. В тоже время, сообществу ещё предстоит прийти к консенсусу как лучше автоматизировать работу с зависимостями, так так есть несколько решений.
Говоря о прошедших событиях, нельзя обойти стороной конференции [38] по Go. В этом году прошло 13 (!) конференций разного масштаба, и в следующем году планируется ещё больше. Из новых — это конференции в Китае, Индии и Дубаи! Основными же конференциями остаются международная GopherCon [39], которая традиционно проходит в Денвере, и европейская dotGo [40] в Париже.
Также в этом году был запущен уже упомянутый выше русскоязычный еженедельный подкаст по Go — Golangshow [41]. В подкасте ведущие не только обсуждают свежие новости из мира Go, но и приглашают интересных гостей. Уже записано 35 выпусков, так что смело подписывайтесь в iTunes [42] или на сайте — https://golangshow.com [41].
Ну а в следующем, 2016-м году, нас ждёт Go 1.6 и Go 1.7, ещё больше интересных проектов и продуктов на Go, новых компаний и вакансий.
С Новым Годом и счастливого кодинга!
Автор: divan0
Источник [43]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/go/107388
Ссылки в тексте:
[1] Golangshow: http://golangshow.com/
[2] SpaceX: http://blog.not-a-kernel-guy.com/2015/10/16/1738
[3] Dropbox: https://www.reddit.com/r/golang/comments/3g7tyv/dropboxs_infrastructure_is_go_at_a_huge_scale/
[4] Basecamp: https://signalvnoise.com/posts/3897-go-at-basecamp
[5] MongoDB: https://www.youtube.com/watch?v=Ck1bRyYxJCQ
[6] ВКонтакте: http://habrahabr.ru/post/265731/
[7] Baidu: https://twitter.com/jbuberel/status/617776229437980673?s=09
[8] Антон: https://www.youtube.com/watch?v=cGXorQkw3JE
[9] создаёт: https://www.youtube.com/watch?v=cFJkLfujOts
[10] первое приложение: https://itunes.apple.com/us/app/ivy-big-number-calculator/id1012116478?mt=8
[11] уже давно используют: http://habrahabr.ru/post/260609/
[12] gxui: https://github.com/google/gxui
[13] сабреддита: https://www.reddit.com/r/golang
[14] Go 1.5 is released: https://blog.golang.org/go1.5
[15] The Go compilers are now written in Go: https://go-review.googlesource.com/#/c/5652/
[16] The Go Programming Language by Brian W. Kernighan, Alan Donovan: http://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440/
[17] Ivy — First Android App in 100% Golang on Google Play (written by the Go Team): https://play.google.com/store/apps/details?id=org.golang.ivy
[18] Go 1.6 GC improvements plan: https://docs.google.com/document/d/1kBx98ulj5V5M9Zdeamy7v6ofZXX3yPziAf0V27A64Mo/edit
[19] Dropbox's infrastructure is Go at a huge scale: https://twitter.com/jamwt/status/629727590782099456
[20] Go 1.5 will be able to build iOS apps.: https://twitter.com/rakyll/status/615920271019503616
[21] How to complain about Go: https://medium.com/@divan/how-to-complain-about-go-349013e06d24#.v6ub3y3nq
[22] rsc on why go does not have generics: it's technical, not political: https://news.ycombinator.com/item?id=9622417
[23] Six years of Go — The Go Blog: https://blog.golang.org/6years
[24] [Parse.com] How We Moved Our API From Ruby to Go and Saved Our Sanity: http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/
[25] Git Appraise, written by Google in Go, distributed code review: https://github.com/google/git-appraise
[26] For Better or For Worse: http://jmoiron.net/blog/for-better-or-for-worse/
[27] тут: http://habrahabr.ru/post/270981/
[28] gologin: Login handlers for Google, Github, Facebook, Twitter, SMS, OAuth1/2, etc.: https://github.com/dghubble/gologin
[29] The State of Go: https://talks.golang.org/2015/state-of-go.slide#1
[30] Stack Overflow developer survey: Go is in the top five most loved languages: http://stackoverflow.com/research/developer-survey-2015#tech-super
[31] Billions of request per day meet Go 1.5: https://medium.com/@robin.verlangen/billions-of-request-per-day-meet-go-1-5-362bfefa0911
[32] Перевод на хабре.: http://habrahabr.ru/post/265183/
[33] реализация HTTP2: https://github.com/golang/net/tree/master/http2
[34] плагина для Go: https://github.com/go-lang-plugin-org/go-lang-idea-plugin
[35] vim-go: https://github.com/fatih/vim-go
[36] появилась: http://blog.ralch.com/tutorial/golang-sharing-libraries/
[37] экспериментальная поддержка специального соглашения: https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit
[38] конференции: https://github.com/golang/go/wiki/Conferences
[39] GopherCon: http://gophercon.com/
[40] dotGo: http://dotgo.eu/
[41] Golangshow: https://golangshow.com
[42] iTunes: https://itunes.apple.com/ru/podcast/podkast-golangshow/id1031101295?l=en&mt=2
[43] Источник: http://habrahabr.ru/post/274057/
Нажмите здесь для печати.