Go в 2015 році

Минає 2015-й рік видався досить насиченим для мови програмування Go і його спільноти. Все більше людей відкривають для себе міць, що ховається за простотою мови, спільнота росте, розвивається і відіграє все більш значущу роль у сьогоденні і майбутньому Go. Це — шостий рік існування мови — ознаменувався кількома важливими змінами нутрощів мови, фантастичним поліпшенням збирача сміття, першим кроком до стандартизації роботи з залежностями і багатьма іншими подіями.
Давайте коротко пройдемося по важливими подіями 2015-го року у світі Go.



Почати, мабуть, варто з подяк аудиторії Хабрахабра, яка своїми бурхливими і не дуже дискусіями, створює особливий інтерес до мови Go. Кількість плюсів і мінусів, які отримують статті та перекази про Go, явно показує, як небайдужі читачі до успіху мови. Конструктивну критику Go ви завжди можете послухати в російськомовному подкасті Golangshow, а неконструктивна критика, яка найчастіше виникає в коментарях і викликає бурхливі дискусії, змушує все більше і більше людей з'ясувати, хто ж правий власноруч.

Так чи інакше, 2015-й рік відзначився тим, що про активне використання Go скромно і мимохідь заявили такі компанії, як SpaceX, Dropbox Basecamp, MongoDB, ВКонтакте Baidu та багато інших.


Основними нішами Go досі залишаються серверні системи та інфраструктури — весь спектр, від маленьких микросервисов до экзабайтных розподілених систем зберігання даних. REST/Web-бекенды, всілякі проксі, бази даних, планувальники контейнерів та інший серверний софт — це ті сфери, для яких Go і створювався.

В цьому році Go також показав, що на ньому можна писати «опердень» (привіт, Антон!)) — компанія Mondo створює електронний банк на Go. Також важливий прорив у цьому році був у розвитку gomobile — в AppStore з'явився перше додаток Go, а для Android деякі компаніївже давно використовують Go з вигодою для себе.

З десктопним софтом на Go в цьому році не склалося: UI-бібліотеку gxui закинули, і нових серйозних альтернатив ніби як і немає. Вважаю, що це пов'язано з повільним, але вірним відмиранням цінності десктопного софта як класу.

Щоб дати читачеві більше розуміння областей Go, наведу ось таку діаграму, складену за субьективному розуміння застосовності і реального використання Go:



Ну а тепер пропоную коротко пройтися по основним подіям Go року, що минає. І, щоб не гадати, які ж події або матеріали були за цей рік, попросимо Go зробити це за нас і вибрати топ постів сабреддита 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: %s\n", date.Format("02 Jan 2006"), post.Title)
}
}


Результатом буде наступний список:
  • 19 Aug 2015: Go 1.5 is released
    Анонс релізу 1.5, в якому компілятор і рантайм Go був переписаний з З на Go, що дозволяє авторам більш сміливо просуватися вперед у своїх планах щодо поліпшення збирача сміття і рантайма Go в цілому. Невеликим кроком назад стало уповільнення часу компіляції приблизно в півтора рази. Тепер замість 2 секунд потрібно чекати 3, і це трохи напружує. Але новий збирач сміття в Go 1.5 тепер має передбачувані паузи, які в 99% випадків не перевищують 10мс.
  • 24 Feb 2015: The Go компілятори are now written in Go
    Власне, анонс вищеописаних змін за пів-року до виходу Go 1.5
  • 05 Mar 2015: The Go Programming Language by Brian W. Kernighan, Alan Donovan
    Анонс книги Брайана Кернигана і Алана Донована, яка обіцяє стати такою ж популярною, як книга Кернигана за C. Книга була видана наприкінці жовтня, і багато хто вже її отримали і прочитали!
  • 12 Jul 2015: Ivy — First Android App in 100% Golang on Google Play (written by the Go Team)
    Перше додаток Go + GoMobile в AppStore.
  • 13 Aug 2015: Go 1.6 GC improvements plan
    Детальний документ з планованими змінами збирача сміття в Go 1.6. Оскільки мова не змінюється, то основна робота і сили кинуті на поліпшення інструментарію, компілятора, і рантайма. Цей документ для тих, хто цікавиться нутрощами Go.
  • 08 Aug 2015: Dropbox's infrastructure is Go at a huge scale
    Скромний твіт інженера Dropbox, зізнався в тому, що в Dropbox не тільки кухня отримала Мішленівську зірку, але і що їх розподілена система зберігання даних, яка обробляє экзабайты даних і ганяє їх за терабитным каналах, повністю написана на Go.
  • 30 Jun 2015: Go 1.5 will be able to build iOS apps.
    Ще один анонс можливостей GoMobile напередодні релізу Go 1.5.
  • 14 Dec 2015: How to complain about Go
    А це моя стаття на англійській мові в стилі сатири, высмеивающая розробників, критикують Go за те, що той не схожий на їх улюблений мову. На Хабр переклад не робив, тому що сатиру тут навряд чи оцінять.
  • 29 May 2015: rsc on why go does not have узагальнення: it's technical, not political
    Спокійний і виразний відповідь Расса Коксу — одного з авторів Go про те, що відсутність дженериків в Go — це не політичне, а технічне рішення. Автори не бачать красивого рішення, яке дасть користувачам можливість пхати дженерики з приводу і без приводу і не перетворить мову в сумовите Р.
  • 10 Nov 2015: Six years of Go — The Go Blog
    6-й день народження Go!
  • 10 Jun 2015: [Parse.com] How We Moved Our From API Ruby to Go and Saved Our Sanity
    Блог компанії Parse, описує їх переїзд з Ruby на Go.
  • 15 Dec 2015: Git Appraise, written by Google Go in, distributed code review
    Анонс проекту від Google — розподілена система code review, написана на Go.
  • 14 Nov 2015: For Better or For Worse
    Відмінна стаття про оцінку пріоритетів підходів у мовах. Переклад був тут на Хабре.
  • 08 Oct 2015: gologin: Login handlers for Google, Github, Facebook, Twitter, SMS, OAuth1/2, etc.
    Анонс пакету для роботи з основними OAuth-провайдерами.
  • 15 Feb 2015: The State of Go
    Стаття з офіційного блогу Go про поточний стан справ в Go (на момент лютого 2015)
  • 08 Apr 2015: Stack Overflow developer survey: Go is in the top five most loved languages
    Go в топі найбільш обожнюваних мов програмування. Даремний критерій, звичайно, але все-одно мімімі.
  • 20 Aug 2015: Billions of request per day meet Go 1.5
    Стаття про те, як компанія, чий софт на Go обробляє мільярди запитів в день, перейшла на Go 1.5 і колосально зменшила паузи GC і загальний час відгуку. Переклад на хабре.


У цей топ багато чого не потрапило, тому коротко з того, що згадується: була написана реалізація HTTP2, яка буде в стандартній бібліотеці Go 1.6 (так, сервера на Go 1.6 будуть підтримувати HTTP2 з коробки), хлопці з JetBrains провели (і продовжують проводити) колосальну роботу з розвитку плагіна для Go для IntelliJ IDEA, так само як і Fatih Arsian, автор плагіна vim-go, який тепер відмінно працює з NeoVim. з'явилася (не особливо потрібна) підтримка shared libraries.

Важливим етапом можна назвати перший крок до стандартизації рішення для управління залежностями в Go. Підхід монорепозитория в Google не дуже добре працює з «класичною» схемою, де всі залежно потрібно вендорить під проект, і в Go 1.5 з'явилася експериментальна підтримка спеціального угоди брати залежності з папки vendor/, якщо така є в проекті. В Go 1.6 це поведінка не буде більше експериментальним, але все ще опціональним, і в Go 1.7 планується бути вже за замовчуванням. У теж час, спільноті ще належить прийти до консенсусу як краще автоматизувати роботу з залежностями, так як є кілька рішень.

Говорячи про минулі події, не можна обійти стороною конференції Go. Цього року минуло 13 (!) конференцій різного масштабу, і в наступному році планується ще більше. З нових — це конференції в Китаї, Індії і Дубаї! Основними ж конференціями залишаються міжнародна GopherCon, яка традиційно проходить в Денвері, і європейська dotGo в Парижі.

Також в цьому році був запущений вже згаданий вище російськомовний щотижневий подкаст за Go — Golangshow. В подкасті ведучі не тільки обговорюють свіжі новини зі світу Go, але і запрошують цікавих гостей. Вже записано 35 випусків, так що сміливо передплачуйте у iTunes або на сайті https://golangshow.com.



Ну а в наступному, 2016-му році, нас чекає Go 1.6 і Go 1.7, ще більше цікавих проектів і продуктів на Go, нових компаній і вакансій.

З Новим Роком і щасливого кодинга!

Джерело: Хабрахабр
  • avatar
  • 0

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.