Пока кто-то в 2007 подпевал Animal ДжаZ, в Google шла работа над новым языком программирования — Golang. Предполагалось, что он поможет сотрудникам компании сделать разработку ПО быстрой. Это некий упрощенный аналог С и С++ для тех, кто занимается web-разработкой.
1424 просмотров
В основном его используют в таких сферах, как сетевое программное обеспечение и утилиты (например, такая маленькая утилита как Kubernetes). Микросервисы на Go разрабатываются легко и органично, а вот с монолитами сложнее. Этим и обусловлен его выбор для современного бэкэнда.
Язык еще молодой, поэтому, конечно, есть противники среди приверженцев старой школы. Но если отбросить эмоции, стоит ли вообще изучать Go?
Немного цифр
В 2009 году миру презентовали Golang. В 2012 он пошел в массы.
После первого релиза прошло почти 13 лет, и сейчас Go входит в двадцатку самых востребованных языков программирования. Сейчас на нем пишут примерно 2,7 млн разработчиков.
Динамику популярности можно проследить на этом графике.
Новый курс! Создание GUI-приложений на Go с помощью Fyne! #1 Создание первого приложения
Особой популярностью Go пользуется в Азии. Согласно исследованиям, в Китае им интересуются чаще всего.
По последним данным, в России насчитывается около 35 тыс. Go-разработчиков. Сравнительно немного, но если смотреть в масштабах будущего, то здесь есть огромный потенциал для того, чтобы влететь и стать ценным специалистом.
На сайте hh.ru сейчас можно найти более 1500 вакансий по запросу “Разработчик Go” и ещё 1100 — по запросу “Разработчик golang”.
Пока что спрос на специалистов по Go превышает предложение. На рынке их не так много, а вот компаний, ведущих разработку на Golang хватает.
Что можно писать на Go
Вообще Golang универсален и предоставляет набор инструментов для решения почти любых задач, но его сильная сторона — это web и многопоточные приложения.
Сетевое ПО
Go очень быстрый и потребляет мало памяти. А это как раз то, что надо когда дело касается организации совместной работы пользователей на разных компьютерах.
Сделать медленное приложение быстрым
Приложения на Go работают быстрее за счет нативной компиляции. Многопоточность встроена в язык нативно и без внешних костылей, код легко пишется и модифицируется. Именно поэтому многие компании переводят свои сервисы на этот язык.
Утилиты и микросервисы
Главное предназначение Go — некрупные сервисы. За счет принципа простоты Go на нем трудно писать большие приложения (как на Java). Получается, что его парадигма обеспечивает разработку ограниченного функционала и небольшой кодовой базы одного приложения. Так сказать Unix-way — одно приложение должно делать одну задачу и делать ее хорошо. Поэтому он отлично подходит для консольных утилит и микросервисных приложений.
Приложения для финансов
Go используют банки для построения масштабируемых клиентоориентированных сервисов с меньшими затратами на инфраструктуру.
Приложения для DevOps
Благодаря минимальному оверхеду и компилируемости в машинный код, Go используют для мониторинга и сбора аналитики, обработки аналитики, написания утилит хелперов, а также в облачной инфраструктуре.
Первая программа на языке программирования Go — как начать программировать на go
Крупные компании, которые используют Golang
Как мы уже говорили выше, Go — это язык, который отлично подходит для веб-разработки. У него не такой широкий спектр применения, как у С и С++. Но зато он упрощает работу с вебом.
Поэтому его чаще используют компании, в которых основной функционал — это web.
- Ozon
- НР
- Dell
- Lamoda
- Ситимобил
- ВКонтакте
- Яндекс
- Avito
- Microsoft
Список можно продолжать долго. К слову, многие из перечисленных компаний внедрили Golang сразу после его презентации.
Плюсы и минусы Go
Идеальным быть невозможно, поэтому и у Golang есть и плюсы, и минусы. Главная фишка этого языка заключается в том, что он довольно простой и быстрый — именно для этого он и разрабатывался.
- Go придерживается минимализма. Именно поэтому его легко выучить, на нем легко писать. Особенно, если вы ранее уже имели дело с разработкой.
- Простой синтаксис и маленькое количество ключевых слов.
- Есть встроенные инструменты для исправления ошибок.
- Быстро компилируется. Запускается почти мгновенно, поэтому вам не придется долго ждать процесса компиляции.
- Есть большое количество библиотек.
- Упрощенный синтаксис — это и плюс, и минус одновременно. Не хватает современных ООП-конструкций.
- Не подходит для разработки крупных проектов.
Громких слов о том, что за Golang будущее не будет. Объективно он не сможет заменить тот же С, С++ или Java. Но это неплохой язык для web-разработки и простых задач.
Источник: vc.ru
Кому и зачем все-таки нужен Go?
Здарова! Короче, последнее время на хабре было много срачей вокруг Go: хороший-плохой, нужен-ненужен, много сравнивали с питоном, много сравнивали с растом, divan0 даже додумался перевести высер «Go vs Haskell» ну и в таком ключе. У меня сложилось ощущение, что из-за хайпа и агрессивного маркетинга языка некоторыми Иванами Данилюками очень мало кто понял, кому и зачем вообще Go может пригодиться, зачем его делали и стоит ли вообще его учить. Я тоже долгое время участвовал в этих срачах, принимая посменно сторону «фанов» языка и сторону оппозиции, но в конце-концов допер, в чем фокус. Сегодня немного потупил у дивана в посте и решил написать вот эту заметочку.
Давайте, пацаны, проходим в пост.
Кому нужен Go?
Я только сегодня понял, что почти никто толком-то и не понимает, зачем вообще Go нужен. Если коротко, то Go нужен для того, чтобы проектировать robust software. Я не знаю, как правильно перевести это слово на русский, но это скорее всего что-то вроде «надежный». Так вот, Go сделали, потому что гуглу нужен был инструмент для написания надежного кода.
На самом деле не сколько гуглу, сколько Робу Пайку, который последние две декады, как минумум, одержим идеей сделать сишку с каналами и зелеными потоками. Так получилось, что Роб Пайк попал в нормальную компашку с другими штрихами из Bell Labs, крутейшим Russ Cox, Фицпатриком и т.д. Этим ребятам несложно было убедить гугл, что им нужен новый язык и вобщем-то, бабосики они на него выбили.
Так, это было небольшое лирическое отступление, давайте вернемся к теме. Да, зачем же все-таки гуглу был нужен новый язык? Ну, тут все понятно, давайте послушаем слова самого Роба Пайка:
Фишка в том, что наши программисты гуглеры, а не ученые. Это обычно молодые, только выпустившиеся пацаны, которые возможно выучили Java, возможно даже C/C++ и может быть Python. Они не в состоянии понимать пробздетый язык, но мы все равно хотим, чтобы они делали хороший софт. Таким образом, мы даем им легкопонимаемый язык, к которому они быстро привыкнут.
А теперь давайте попытаемся понять, что же он имел ввиду. Если грубо говоря, то он сказал, что в гугле работают не самые умные ребята («не способные понимать крутой язык»), так что они придумали такой язык, который просто невозможно не понять. Это на самом деле очень круто для менеджмента.
Посудите: можно нанять 100 посредственных программистов, дать им в руки Go и эта армия обезьян будет генерить вам много «неплохого» и очень даже поддерживаемого кода! Go это фантастический инструмент для менеджмента, лучше не придумать: моментально загоняем всех программистов в рамки go-fmt (никто не сможет пропихнуть свой стиль форматирования), забираем у них любые абстракции сложнее интерфейса и получается такой конвеер кода, в котором developer is just another brick in the wall. По-моему, очень круто! Ну, программистам скорее всего такой расклад не очень понравится — мало кто любит быть винтиком в системе.
Так вот, Go нужен корпорациям. Если у вас в компании работает много людей, большие проекты и все такое, то Go это идеальный вариант! Но для того, чтобы понять, действительно ли вам нужен Go, надо разобраться ЗАЧЕМ его все-таки стоит использовать. Давайте узнаем.
Зачем нужен Go?
С технической стороны, ниша у Go довольно скромная: сеть, утилиты, бэкенды. Если у вас сложные сети или много нод, которые надо как-то навороченным образом оркестрировать, то Go это хороший выбор (судя по опыту CloudFlare). Если вы хотите сделать какую-то классную консольную утилиту, вроде докера или консула, то Go тоже нормульок подойдет (судя по опыту оных).
Я вот сейчас тоже делаю интересную утилиту и пишу ее на Go, потому что вписывается. Ну и в конце-концов. Если вам нужен быстрый и в принципе, эффективный бэкенд, то тоже можно выбрать Go. Я не представляю, как народ пишет бизнес-логику на Go, но как-то пишут же! Короче, тут все довольно сложно.
С одной стороны, делать CRUD в Go это достаточно болезненно, с другой стороны есть 350 разных роутеров и фреймворков, которые здорово облегчают работу.
Что касается других ниш, то я с уверенностью могу вас заверить: полная профанация. Если Go где-то всерьез и используется, то в консольных утилитах, на сетях и бэкендах. Больше юскейсов нет. И давайте не будем их выдумывать. Go изначально язык, который сделали в гугле, чтобы студенты могли придти и писать код для навороченной сетевой инфраструктуры гугла.
Тут можно сформировать своеобразный rule of thumb: «Если ты не пишешь софт для сети, консольную утилиту или хайлоад бэкенд, то Go тебе скорее всего не нужен». Тем не менее, полно народу продолжает писать софт на Go ради собственно говоря, самого Go.
Cтоит ли учить Go?
Это вопрос, на который можно дать короткий и однозначный ответ. Go стоит учить в любом случае. Во-первых, потому что это как два пальца обоссать — проще язык сложно придумать. В Go очень мало грамматик и абстракций, освоить его можно на начальном уровне за выходные. Конечно же, в языке есть полно дырок и «ловушек для лошпетов», о которых я писал в своей последней статье, но они довольно быстро резолвятся.
Во-вторых, потому что Go так или иначе очень глубоко проникнет в наши жизни. За последний год на гитхабе было написано ооочень много проектов на Go, все больше и больше корпораций подсаживаются на него и т.д. Иметь такой популярный инструмент в запасе всегда хорошо, как не крути. Вдруг тебя с работы выгонят и совершенно случайно упадет классный оффер на должность Go программиста. А тут фигасе и ты подходишь, потому что выходные его подрочил годик назад.
Для тех, кто прямо не могут сдерживаться и УЖЕ выпригивают из трусов, сразу кидаю несколько ссылок на материалы:
- tour.golang.org — оф. тур по языку, разжевывают
- gobyexample.com — примеры разных частоиспользуемых сниппетов
- www.reddit.com/r/golang — сабреддит, посвященный Go; там часто классные вещи постят
Заключение
Go так или иначе уже здесь, он уже взлетел. Его уже используют, его уже котируют, он уже нужен. Можно очень долго воротить жопу и ругаться на отсутствие дженериков, но час Go уже настал. Тем не менее, важно понимать кто и зачем должен употреблять Go в еду.
Если ты не корпорация или стартап, который занимается разработкой умных сетевых петакластеров метапарадигм, то тебе Go скорее всего не нужен, конкретно тебе. Ноооо стоит тебе оказаться в одной из таких контор, Go однозначно пригодится. Учите Go, пацаны, оно того стоит.
Спасибо за твое внимание,
Илья.
- go
- rob pike
- банда из bell labs творит историю
- Open source
- Системное программирование
- Go
Источник: habr.com
Язык Go: когда его используют и нужно ли учить в 2023
Go — относительно молодой, но популярный язык программирования. По данным GitHub он вошёл в пятерку самых востребованных языков на начало 2021 года, опередив PHP, TypeScript и C#. Разберёмся, где используют этот язык, и зачем нужен Go в 2022 году.
Содержание статьи скрыть
Особенности языка
Go или Golang — компилируемый многопоточный язык программирования. Это значит, что написанное на Go приложение выглядит как один полностью готовый к запуску файл.
Go — язык от Google
Язык Go создали в 2009 году в корпорации Google. Собственно, его полное название Golang — производное от «Google language».
Разработчики языка — Роб Пайк и Кен Томпсон. В прошлом они работали в легендарной лаборатории Bell Labs, выпустившей много технологий, которые кардинально изменили жизнь людей: транзистор, лазер, кварцевые часы, теорию информации, операционную систему UNIX и языки программирования C и C++ .
Цели проекта Go — сделать разработку программного обеспечения в Google не такой неуклюжей и медлительной, какой она была до него. И вместе с тем сделать сам процесс более продуктивным и масштабируемым.
Поэтому Go разрабатывали с учётом набора пока нерешённых задач. В него вложили базу лучших функций, взятых из языков Pascal, Modula и Oberon. Ещё опирались на C и C++, у которых взяли скорость исполнения программ , и Python, который был взят за образец простоты кода .
Изначально Go использовали только внутри Google, но затем он вышел из недр корпорации и ушёл в мир.
Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!
Подписывайся на канал
Подписаться
Чем хорош язык
Go создавался как язык программирования для « разработки высокоэффективных программ » в качестве альтернативы C и C++. Поэтому он избавился от многих недостатков этих языков программирования, вобрав в себя только самое лучшее.
Простой и понятный синтаксис. В синтаксисе Go нет наследования, классов и объектов, которые значительно усложняют код и его последующие изменения. Это делает язык предельно понятным, лаконичным и аккуратным.
Упрощенный синтаксис облегчает не только само программирование . Он позволяет быстро прочитать чужой код — это особенно важно в командной работе. Go читается как обычный текст в учебнике — слева направо. Не нужно вводить какие-то стандарты, обозначения или комментарии — вы и без этого поймёте код друг друга.
Много инструментов для разработчиков . В Go есть встроенные инструменты, которые значительно ускоряют разработку и помогают решать разнообразные задачи:
- утилита для создания документации . Утилита GoDoc найдёт все комментарии и сделает из них подробный мануал к программе.
- инструменты тестирования . В Go есть множество инструментов тестирования: команда typecheck проверит соответствие типов в коде, golint даст рекомендации на основе официальной документации, gosimple упростит сложные синтаксические конструкции, а gas найдёт уязвимости.
Большое количество библиотек. Библиотеки есть практически под любую задачу. Многое можно реализовать, используя только стандартную библиотеку Go. Помимо неё, язык поддерживает и много сторонних библиотек, количество которых постоянно растет. А еще эффективно взаимодействует с библиотеками C и C++.
Даже отмечают, что Go-библиотеки — это, по факту, «обертки» над С-библиотеками.
Высокая производительность и безопасность. Хорошая производительность заметна и при написании кода , и при его выполнении. В целом Go позволяет повысить производительность в пять-десять раз без каких-либо оптимизаций.
При этом язык отличается надёжностью. Дело в особой функции — сборщике мусора. Он сканирует код и определяет объекты, замедляющие его работу, а затем удаляет их. Таким образом сборщик мусора обеспечивает безопасность памяти, сохраняя при этом высокую скорость исполнения программ и помогая эффективно использовать ресурсы.
Легко освоить новичку. Благодаря простому синтаксису базовые вещи можно освоить за выходные. Официальное руководство Go умещается всего на 50 страницах, легко читается и содержит много примеров. Можно изучить язык только только по одной этой спецификации.
Но главное — в Go предусмотрены дополнения, которые делают его таким удобным для новичков:
- утилита Go Vet — помогает обнаружить возможные ошибки в коде.
- команда gofmt — помогает правильно форматировать код, проставить табы для отступа и пробелы для выравнивания.
- команда gofix — помогает отслеживать и удалять устаревшие конструкции.
Более того, сам Go исправляет ошибки и напоминает правила. Здесь вопросы вроде нужно использовать фигурные скобки или нет, отпадают сами собой — язык буквально «ведёт» за руку по всему процессу, не давая оступиться.
Дружелюбное сообщество. Go — это проект с открытым исходным кодом и большим сообществом, участники которого постоянно создают новые инструменты для языка и активно продвигают его в IT-индустрии. При этом комьюнити очень дружелюбное и гостеприимное — новичкам здесь рады, всегда помогут и подскажут.
Востребованность языка
Программистов на Golang с каждым годом становится всё больше. Около 1,1 миллиона разработчиков по всему миру используют Go как основной. Ещё 2,7 используют его как дополнительный к другому языку. В России насчитывается около 35 тысяч Go — разработчиков .
О востребованности языка говорит и возросшее количество вакансий. По исследованиям hh.ru в 2020 году количества вакансий по Go в 2020 по сравнению с предыдущим годом увеличилось 45%.
С Go работают веб-агентства, аутсорсинговые компании- разработчики и бизнес. Язык всё чаще используют известные IT-корпорации, которые решились пере писать собственный код.
Крупные компании, которые используют Go
Зарубежные: SAP, IBM, Google, Walmart, Dell, Intel, HP, RedHat, Microsoft, Adobe, BBC, Uber, Dropbox, Netflix, Twitter
Российские: «Яндекс», «ВКонтакте», Mail.ru Group, Avito, Ozon, Lamoda, «Ростелеком», «Ситимобил», Delivery Club
Работодатели буквально «охотятся» за Go-разработчиками — они пока на рынке в дефиците. От того им и готовы предложить большие зарплаты.
Этим летом крупнейший российский онлайн-ритейлер Ozon открыл целую школу Golang School Ozon, где будет обучать программировать конкретно на Go . А в 2018 году Ozon заявил, что готов принять на работу сразу 200 Go -разработчиков и активно искал таких специалистов
Неслучайно Golang оказался самым высокооплачиваемым языком программирования по итогам 2020 года. Средняя зарплата у Go — разработчиков составляет 170 000 рублей в месяц.
Golang — самый высокооплачиваемый язык программирования 2020 года. Данные «Хабр Карьера»
Что пишут на Go
Go считается универсальным языком. Но всё-таки больше ориентирован на облачное программирование и разработку операционных систем. А главенство здесь принадлежит веб-сервисам.
В 36% случаев Go используют именно для разработки веб-сервисов. Данные исследования JetBrains
Go — простой язык, но позволяет делать очень сложные вещи. На нём можно быстро написать высоконагруженное, многопоточное, кроссплатформенное приложение . Основная сфера применения языка — сетевое программное обеспечение, утилиты и бэкенд.
Вот что конкретно можно сделать на Go.
Сетевое программное обеспечение
Назначение сетевого ПО — организовать совместную работу группы пользователей на разных компьютерах. Такое ПО позволяет организовать файловую структуру и базы данных таким образом, чтобы они были доступны всем участникам.
При этом устройства необязательно должны находиться в одном помещении. Они могут располагаться на разных адресах и даже разных континентах.
Благодаря скорости и маленькому потреблению памяти Go хорошо ложится в такую распределённую систему и помогает создавать платформы для работы удалённых команд.
Сетевая платформа Consul, написанная на Go
Утилиты и микросервисы
Go отличается чёткой направленностью. Его главное предназначение — некрупные сервисы, которые нужно быстро внедрить и которые при этом должны отличаться высокой надежностью — так называемое robust software. Поэтому язык подойдёт для консольных утилит и микросервисных приложений.
Sampler — консольная утилита, которая позволяет визуализировать любую метрику из написанного кода
Gizmo — набор веб-фреймворков от New York Times, которые помогают разработчикам быстро настраивать и создавать API микросервисов
Docker — один из самых известных проектов, написанных на Go . Это ПО для автоматизации развёртывания и управления приложениями, которым пользуются программисты по всему миру
Быстрые версии медленных приложений
В последние годы наметилась интересная тенденция — многие компании переводят свои сервисы с другого языка на Go . Причина в том, что приложения на Go работают быстрее, более производительны и менее требовательны к аппаратным ресурсам. При этом код на Go легко писать , модифицировать и обслуживать.
Приложения для DevOps
На Go можно создавать удобные и мощные приложения для решения задач, связанных с обработкой больших объёмов данных. Его используют для блокчейн-проектов, анализа статистики, обработки данных и создания парсеров. Опять же, здесь ключевую роль сыграла нетребовательность к ресурсам.
На Go сделана система мониторинга Prometheus, выпущенная в 2012 году для мониторинга музыкальной социальной сети SoundCloud
Инструменты для финансов и облачных вычислений
Многие банки используют Go в разработке приложений для своей инфраструктуры, для финансовых и облачных вычислений.
Инфраструктура и почти все приложения британского банка Monzo написаны на Go . Изображение: Monzo
Игровые движки
Go не задумывался как язык для написания игр. Но нём уже создали несколько игровых движков: GarageEngine, Azul3D и GOSFML. А ещё язык позволяет писать серверы для многопользовательских игр и разные игровые сервисы типа сохранения и статистики.
Greenlight — массовая многопользовательская онлайн-игра, сервер которой написан на Go
Вирусы
Интересно, что за последние несколько лет количество вирусов на языке Go выросло примерно на 2000%.
Червь FritzFrog, поражающий серверы, сделан на Go
Для чего Go не подойдёт
А вот с созданием графических интерфейсов в Golang дела не очень. Он может работать с инструментами, улучшающими их архитектуру и внешний вид: библиотекой GTK и фреймворком Qt, но о решения получаются громоздкими.
Не подходит язык и для разработок, связанных с машинным обучением: здесь всё-таки стоит брать тот же Python, который гораздо лучше обрабатывает большой массив данных.
Стоит ли учить Go в 2022
Определённо стоит. Go — мощный, безопасный и очень востребованный язык программирования. Он способен повысить производительность программы в пять-десять раз без каких-либо оптимизаций.
Подробная и понятная документация, лёгкий синтаксис, дружелюбное сообщество — Go быстро освоит даже новичок.
Начинающим разработчикам стоит изучать Golang в качестве первого языка. Он простой, не позволяет совершать ошибок, заставляет придерживаться лаконичности и даёт подсказки.
Go уже взлетел и активно котируется. В ближайшие годы потребность в толковых специалистах, которые знают этот язык, будет только расти. Это значит, что найти хорошую, высокооплачиваемую работу им проще, чем многим другим программистам .
Подробнее о профессии Go-разработчика , а чтобы стать отличным специалистом можно пройти обучение по программированию на языке Go
Останавливаться в развитии Golang точно не будет. Это способствует, опять же, активное комьюнити, которое создаёт всё новые и новые инструменты, пакеты, фреймворки, драйверы, API и генераторы кода для языка.
И, конечно, нельзя не брать во внимание, что Golang — это язык Google. Его создала и поддерживает успешная корпорация. Google обладает одной из крупнейших облачных инфраструктур в мире, которая продолжает развиваться.
А к концу 2021 года обещают выпустить следующую базовую версию языка — Go 2.0 со специальным синтаксисом для упрощения обработки ошибок и другими новшествами.
Вики-страница «Go 2.0» на GitHub, где собирают замечания и предложения по улучшению языка
Как освоить Go
Если вы решили освоить программирование на Go с нуля, можно начать с официального руководства . А затем разбирать примеры, читать книги или смотреть видеоуроки.
Но быстрее и эффективнее изучать Go на курсах. Ведь главное здесь — «набить руку» и больше заниматься практикой. А не тратить время на поиск ответов на сайтах и в руководствах.
На курсах по Go вы как раз и сможете попробовать решать реальные задачи на этом языке. А если у вас возникнет какой-то вопрос, вы всегда можете задать его практикующим разработчикам .
Предлагаем вам три популярных курса от ведущих онлайн-школ:
- Курс « Go -разработчик PRO» от Skillbox . За восемь месяцев вы освоите язык Go на продвинутом уровне и сможете проектировать, тестировать, развёртывать и поддерживать веб-сервисы. А в качестве дипломной работы самостоятельно создадите картографический сервис с функциями построения и сохранения маршрутов.
- Профессия«Backend-разработчик на Go»от Skillfactory . Практический годовой курс. Вы научитесь писать на Go серверную часть сайтов и приложений, проектировать базы данных и выстраивать микросервисную архитектуру. Вы положите в портфолио новостной агрегатор, который сделаете сами.
- Факультет « Go — разработки » от GeekBrains . В течение двух лет вы досконально будете изучать синтаксис Go и принципы программирования. А затем закрепите полученные знания на многочисленных практических занятиях. Тем, кто дойдёт до конца, помогут с трудоустройством.
Если ни один из перечисленных курсов вам не подошёл — пишите в комментариях. Мы с радостью поможем вам подобрать программу с наиболее удобными для вас условиями и скидками.
Источник: checkroi.ru