Хочу всё знать. Язык Go
Надеюсь, вы уже ознакомились со свежими рейтингами, поэтому с сегодняшним героем нашей традиционной рубрики более-менее знакомы. В прошлом году Go появлялся в новостях почти каждую неделю, рейтинги популярности ползли вверх, книжные развалы заполонили профессиональные книги. Сегодня ажиотаж немного угас, гики трезво оценили качество языка. Никто уже не говорит о тотальном доминировании, но стало ясно, что у Go яркое будущее. Идеальное время, чтобы познакомиться с ним и вам.
Минутка истории
В середине 2000-х, когда вычислительные мощности Google стали превышать все мыслимые пределы, компании понадобился язык, способный эффективно работать с многопоточной информацией. Он должен был обеспечить Google конкурентное преимущество в скорости работы поисковой системы и сторонних сервисов.
В 2007 году за разработку сели сотрудники компании Роберт Гризмер, Роб Пайк и Кен Томпсон. Кстати, до этого они занимались разработкой ОС Inferno на базе Plan 9, которая предназначена для построения сетевых и распределённых систем. Название произошло путём эволюции от Google Language к Golang и просто Go. До 2009 года велись работы по созданию синтаксиса, базовой архитектуры. Потом проект был обнародован, гики всех стран приглашены к совместной доработке и в итоге к 2012 году Go доведён до первой полноценной версии.
В народе новый язык не оценили – не так много компаний и тем более простых разработчиков нуждалось в оптимизации производительности проектов, а тут ещё и ограничение по совместимости с платформами (поддержка Plan 9 и Android появится лишь в конце 2014 года). Google тоже не способствовал популяризации языка – до легендарных поединков компьютера против человека в игру Го о языке знали только гики. Дальнейший рост популярности многие связывают как раз с частым мельканием в СМИ, но есть и другая версия. Обратите внимание на рейтинг TIOBE (у PYPL и других агрегаторов статистики он схож):
В период с июля по октябрь 2016 года произошёл скачок по запросам в 13 раз. Что за эпохальное событие произошло в середине прошлого года? Нет, это не очередная победа машины над человеком, это выход в свет мобильной игры Pokemon GO. Таким образом, искатели зверьков в дополненной реальности стали катализатором популярности языка программирования.
Синтаксис
Так как язык Go должен быть в первую очередь быстрым, а уже потом понятным, в синтаксисе существует множество правил и ограничений. Тем, кто изучал в школе Pascal, он понравится.
Объявление переменной:
var i int var ( j float k int )
Присваивание с выводом:
i := j
Классический цикл for:
for i := 0; i < n; i++ {
println(arr[i])
}
Очень полезное свойство – for может не содержать аргументов (цикл бесконечный) или содержать только одно условие (аналог while).
Обратите внимание на фигурные скобки, в Go строго регламентировано место открытия и закрытия, дополнительные переносы не допускаются.
Вот пример Hello World:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
В целом, синтаксис хоть и кажется немного устаревшим, имеющим много ограничений, но попробуйте поработать хотя бы 30 минут, и он вам понравится.
Что почитать
Ещё в прошлом году было проблемой найти русскоязычную книгу по Go. Сегодня такой проблемы больше нет, лучшие уже можно купить:
- Язык программирования Go, Алан А. А. Донован, Брайан У. Керниган.
- Программирование на Go. Разработка приложений XXI века, Марк Саммерфильд.
На западном рынке, разумеется, выбор богаче:
- Go in Action, William Kennedy, Brian Ketelsen, Erik St. Martin.
- Go Programming Blueprints - Solving Development Challenges with Golang, Mat Ryer.
- Introducing Go: Build Reliable, Scalable Programs, Caleb Doxsey.
- Go in Practice: Includes 70 Techniques, Matt Butcher, Matt Farina.
Для тех, кто любит работать с электронным материалом, есть онлайн-туториалы:
Ну и не забывайте про официальный сайт, там есть вся интересующая информация.
Перспективы
Плюсы Go очевидны:
- Производительность. Это значит, что он – альтернатива использованию Cи-кода в приложениях, которые ограничены аппаратными возможностями.
- Поддержка. Язык поддерживает и развивает Google, планов по сворачиванию проекта нет, так что он будет жить и развиваться ещё много лет.
- Конкуренция. У Go есть альтернативы, но ни один из них не имеет явных преимуществ и могущественного покровителя, соизмеримого по мощи с Google.
С Go есть только одна проблема – большинству работодателей в России он не нужен. Поэтому трудно спрогнозировать, когда количество рабочих мест сдвинется с околонулевой точки. Несмотря на это, обязательно познакомьтесь с Go. Возможно, завтра это станет вашим конкурентным преимуществом.