Языку программирования Go исполнилось 10 лет

Языку программирования Go исполнилось 10 лет

14.11.2019     

Десять лет назад компания Google представила многопоточный компилируемый язык программирования Go, или Golang. Разработчики не рассчитывали на успех предприятия, но надеялись привлечь внимание к особому способу структурировать выполнение кода. 

Рассказываем, как развивался Go, и почему стоит его изучить. 

Как все начиналось

Язык программирования создали разработчики Кен Томпсон, Роб Пайк и Роберт Гризмер внутри компании Google. Томпсон внес огромный вклад в разработку языка С, а также в создание ОС Unix. Пайк написал для Unix графический терминал Blit, а также в соавторстве с Брайаном Керниганом выпустил фундаментальные книги «Практика программирования» и «UNIX. Программное окружение». 

Первая версия Go появилась как собственный язык для ОС Inferno и облачного ПО. Но со временем Go стал полноценным языком программирования. Язык активно используют облачные провайдеры, на нем удобно создавать высокоэффективные программы для многоядерных процессоров и распределенных систем. 

Особенности языка

Go – язык с С-подобным синтаксисом и строгой типизацией. Для пользовательских типов используется неявная «утиная типизация», как в Python, JavaScript или Ruby. В Go можно использовать указатели, но без адресной арифметики для них. Реализованы готовые динамические массивы, срезы, хеш-таблицы. Есть циклы для обхода коллекций и строковый типы с интегрированной поддержкой юникода.

Формально Go – объектно-ориентированный язык, но наследовать здесь можно только интерфейсы. Так что правильнее считать его языком процедурным, но с поддержкой интерфейсов. Кроме того, в Go доступны средства функционального программирования – передача функций как параметров, возврат функциональных значений, замыканий и неименованные функции. 

Главная особенность Go – горутины. Горутины – потоки, встроенные в язык, с которыми можно взаимодействовать через каналы. Реализованы и другие инструменты для многопоточного программирования. Благодаря горутинам язык успешно справляется с многозадачностью и позволяет масштабировать приложения при росте количества ядер процессора. Новые потоки эффективно используют память. Миллионы горутин можно прокручивать вместо потоков. Они быстрее и безопаснее обмениваются данными, позволяют обойтись без блокировки мьютексов. К тому же одна горутина может запускаться в нескольких потоках. Также горутины можно объединять в небольшое количество потоков операционной системы. 

Классов в Go нет. Любая программа состоит из пакетов и модулей, к тому же функции в Go могут возвращать несколько значений. Начать работать с Go просто, а опытных разработчиков приятно удивит количество и качество «синтаксического сахара». Управление памятью в Go автоматическое, есть сборщик мусора. 

На Go сложно «выстрелить себе в ногу»: от всего потенциально опасного разработчики отказались. Например, убрали переопределение функций и методов, затратные вставки элементов в середину массива, отрицательные индексы, наследование реализаций и др. Наконец, Go запускается прямо на железе. С одной стороны, это низкоуровневый язык с максимальной производительностью и отличным сборщиком мусора. С другой – он простой и безопасный, поэтому код на Go легко поддерживать. 

Поддержка Go 

Для Go создали набор инструментов разработки gc, который уже поддерживают Windows, Linux, macOS, Android, а также FreeBSD, OpenBSD, DragonFly BSD и другие системы. В наборе – средства компиляции, тестирования и управления пакетами, а также вспомогательные утилиты. Набор компиляторов gcc поддерживает новый язык, причем существует несколько независимых реализаций. Есть компилятор gccgo с рекурсивным парсером, который совмещен со стандартным бэк-эндом gcc. 

Развиваются и независимые проекты. К примеру, на самом Go сделали прослойку llgo для компиляции Go в llvm. Google поддерживает проект gollvm для компиляции Go через систему компиляторов LLVM. Запускать программы на Go также можно с помощью интерпретатора SSA interpreter.

Более современный вариант – IDE (интегрированные среды разработки). Помимо проприетарной GoLand, которую на платформе IntelliJ разработала компания JetBrains, есть бесплатная LiteIDE. Кроме того, поддержку Go внедрили в популярные среды Eclipse, NetBeans, IntelliJ, Komodo, CodeBox IDE, Visual Studio, Zeus и т.д. Подсветка синтаксиса добавлена в Emacs, Vim, Notepad++, jEdit и других.

Официальный блог Go

Часто задаваемые вопросы по языку



Источник: https://infostart.ru/journal/news/tekhnologii/yazyku-programmirovaniya-go-ispolnilos-10-let_1153767/
Автор:
Ксения Шестакова Обозреватель


Комментарии
В избранное Подписаться на ответы Сортировка: Рейтинг 1-го уровня
1. DmitryKSL 155 14.11.19 12:37 Сейчас в теме
Для Go создали набор инструментов разработки gc, который уже поддерживают Windows, Linux, macOS, Android

Для Android все печально, как там вообще разрабатывать полноценное приложение?
Да и для других ОС GUI это боль.
5. RaHit 20.11.19 18:44 Сейчас в теме
Только язык РАЯ ! :)
Советую с ним ознакомиться.
2. VmvLer 14.11.19 14:07 Сейчас в теме
Миллионы горутин можно прокручивать вместо потоков. Они быстрее и безопаснее обмениваются данными

10 лет назад на хр и ие7 все летало и качалось без единого разрыва, а сейчас каких-то горгулий запилили и интернеты могут "сдохнуть" когда смотришь всего-лишь котика.

думаю, эти горгульи от лукавого, чтобы еще больше тырить персональных данных и еще больше лить во все органы чувств рекламу всякой чуши.

на фига козе баян?
4. lmnlmn 64 14.11.19 14:30 Сейчас в теме
Руки чешутся опробовать этот GoLang, да задачи пока не подвернулось.
Только вот стремно что освоишь язык, а управители наши интернет огородят и скажут что суверенное, отечественное ПО надо писать только в отечественной ОС, на отечественном языке программирования под отечественный процессор.
Оставьте свое сообщение

См. также

Российский разработчик создал неофициальную версию Clubhouse для Android

Новость Android ИТ-новость Мессенджеры Мобильные приложения

Бывший разработчик из «ВКонтакте» Григорий Клюшников выпустил приложение для Android, предоставляющее доступ к большинству функций Clubhouse. Официально соцсеть доступна только пользователям iOS.

26.02.2021    1714    VKuser24342747    0       

Масштабное обновление Trello: пять новых видов досок и интеграция с Google Docs

Новость ИТ-новость Новости компаний

Компания Atlassian выпустила масштабное обновление сервиса управления проектами Trello. Разработчики изменили дизайн, добавили пять новых видов досок и реализовали для карточек возможность отображать информацию из сторонних сервисов.

25.02.2021    2699    user1015646    0       

Видеоигра на базе нейросетевого генератора текстов стала бизнес-консультантом

Новость Видеоигры Искусственный интеллект ИТ-новость

Энтузиаст использовал возможности текстового квеста, генерирующего разнообразные миры при помощи нейросети GPT-3, чтобы получать советы по ведению бизнеса. Часть идей ИИ оказалась пригодной для использования.

25.02.2021    1653    VKuser24342747    1       

В ближайшие годы возрастет потребность в персонале центров обработки данных

Новость Дата-центры ИТ-новость Цифровая экономика

Согласно отчету Uptime Institute, количество сотрудников, необходимых для обеспечения работы ЦОД, вырастет с 2 млн. в 2019 году до 2,3 млн. в 2025 году.

24.02.2021    1896    SKravchenko    0       

Google кардинально изменит дизайн Android 12

Новость Android Google ИТ-новость Мобильные приложения Новости компаний

Компания Google анонсировала глобальное обновление популярной операционной системы Android. Новая версия выйдет под номером 12. Говорят, что Android 12 назовут «Snow cone» – летний десерт из сладкого колотого льда.

24.02.2021    2142    mouse187    0       

Google представила новый сервис для поиска уязвимостей в открытом ПО

Новость Google Безопасность ИТ-новость

Компания Google запустила платформу с открытым исходным кодом OSV (Open Source Vulnerabilities). Она создана для поиска и закрытия уязвимостей в свободном ПО.

18.02.2021    1297    user1015646    0       

Отечественная компания представила сервер приложений Java EE

Новость ИТ-новость Новости компаний Языки программирования

Российская компания Bellsoft представила отечественный аналог сервера Oracle и IBM для JavaEE. Раньше продукт на базе открытого кода был доступен только для некоторых клиентов организации.

17.02.2021    2346    VKuser24342747    4       

Rustоманы из Долины: Google, Microsoft, Huawei, Mozilla и AWS основали фонд поддержки языка программирования

Новость Google ИТ-новость Новости компаний Языки программирования

Rust – перспективный язык, который широко применяется в разработке операционных систем и высоконагруженных веб-сервисов. Rust Foundation будет заниматься поддержкой и развитием языка.

16.02.2021    1588    user1015646    0       

В Microsoft Teams появилась платформа для общения и обучения

Новость Интернет ИТ-новость Мессенджеры Новости компаний

Microsoft добавила новые функции в корпоративный мессенджер Teams. В подключенной к нему платформе Viva можно пройти обучение, пообщаться с коллегами или улучшить организацию работы.

15.02.2021    3163    user1015646    0       

Google рассказала, как защищает Android от взломов

Новость Android Google Безопасность ИТ-новость

Google опубликовала информацию о том, как компания пытается улучшить безопасность Android, и какие шаги предпринимаются для борьбы с распространенными угрозами. Отчеты об уязвимостях играют в этом значительную роль.

12.02.2021    1878    SKravchenko    0       

Для регионов разработают приложение онлайн-записи на прием к врачам

Новость ИТ-новость Медицина Минкомсвязь Цифровая экономика

О возможностях приложения рассказали в Минздраве и Минцифре.

10.02.2021    1799    Senator_I    2       

Google разработает новую мобильную ОС

Новость MobileOS Google ИТ-новость Мобильные приложения

Корпорация Google создаст мобильную операционную систему для повышения безопасности использования устройств. Проект запущен под рабочим названием microdroid.

09.02.2021    2118    user1015646    0       

Google закрывает собственную игровую студию Stadia

Новость Google Видеоигры ИТ-новость Новости компаний

1 февраля Google официально закрыл собственную студию разработки игр для проекта Stadia, чтобы сосредоточить внимание на технологиях, лежащих в основе платформы.

09.02.2021    1457    SKravchenko    0       

Google представила технологию для замены cookies

Новость Google Интернет ИТ-новость

Методы сбора файлов cookies для повышения точности подбора рекламы не раз упрекали в нарушении личного пространства пользователей. Компания Google представила технологию, которая позволит отказаться от cookies и повысить уровень конфиденциальности.

09.02.2021    1238    user1015646    0       

Украинская команда FireWay одержала победу в хакатоне NASA Space Apps Challenge 2020

Новость ИТ-новость Стартапы

Украинская команда FireWay из Днепра стала победителем международного хакатона NASA Space Apps Challenge. Их изобретение было описано как «решение, которое демонстрирует наиболее инновационное использование технологии».

05.02.2021    1946    SKravchenko    2       

Китайцы разработали целых две альтернативы Flash

Новость Интернет ИТ-новость

Китайцам пришлось разработать собственную технологию ReFla взамен Flash для предотвращения сбоев в работе систем. Также они выпустили доработанную версию Flash Player с кодом 34.0.0.92.

04.02.2021    2075    mouse187    4       

Популярные дистрибутивы Linux могут лишиться поддержки Chromium

Новость Linux Google Интернет ИТ-новость

Из дистрибутивов Arch Linux, Fedora, Debian, Slackware и openSUSE может исчезнуть поддержка браузеров на движке Chromium. Причина – жесткие правила Google, из-за которых возникли проблемы с синхронизацией данных.

03.02.2021    2360    user1015646    3       

Microsoft участвует в разработке цифрового паспорта вакцинации от Covid-19

Новость ИТ-новость Медицина

Крупнейшие корпорации из сектора здравоохранения и ИТ-гиганты, такие как Microsoft, Salesforce и другие, объединились для создания цифровых идентификационных карт, которые подтверждают статус вакцинации против Covid-19.

02.02.2021    1736    capitan    3       

Что нового в Chrome 88: проверка надежности паролей и поддержка профилей

Новость Google Интернет ИТ-новость

Компания Google представила новый релиз браузера Chrome и обновила движок Chromium. Теперь ПО будет предупреждать о небезопасных паролях, а пользователь сможет создать привязанный к учетной записи профиль для персонализации работы в сети.

01.02.2021    2205    user1015646    0       

280 символов для науки: Twitter откроет доступ ученым к архиву твитов

Новость ИТ-новость Соцсети

Twitter предоставит академическим исследователям социальных сетей бесплатный доступ почти ко всем твитам. Исключение площадка сделает только для заблокированных аккаунтов.

29.01.2021    1473    VKuser24342747    1       

Отключение Flash на сутки лишило город железнодорожных служб

Новость Интернет ИТ-новость

Прекращение поддержки Flash парализовало работу железнодорожной сети китайского города-миллионника. Организация проигнорировала предупреждения Adobe о грядущем отключении технологии.

29.01.2021    1850    VKuser24342747    1       

Amazon представил форк Elasticsearch с открытым исходным кодом

Новость ИТ-новость Новости компаний Облачные технологии

Компания Amazon намерена развивать собственную версию решения для поиска, хранения и анализа данных Elasticsearch. Форк можно будет использовать в проектах с открытым исходным кодом.

28.01.2021    2263    user1015646    0       

Наниматели назвали самые востребованные языки программирования

Новость Аналитика ИТ-новость Языки программирования

Компания по обучению программистов CodinGame составила рейтинг самых востребованных языков программирования среди нанимателей. Для этого организация опросила 15 тыс. разработчиков и менеджеров по персоналу.

27.01.2021    2469    SKravchenko    1       

Вышел новый мировой стандарт Wi-Fi 6E. В России он не доступен

Новость ИТ-новость Телекоммуникации

В мире стартовало лицензирование и распространение устройств для работы с новым стандартом беспроводных сетей Wi-Fi 6E. В России стандарт не будет поддерживаться, поскольку частота в 6 ГГц уже занята.

26.01.2021    2061    user-programmist    2       

CES 2021: главные анонсы первой технологической выставки года

Новость Инновации ИТ-новость Микроэлектроника

CES (Consumer Electronics Show) в Лас-Вегасе традиционно открывает год на мировом рынке технологий. Из-за ограничений, связанных с пандемией, выставку провели онлайн, но это не помешало производителям представить интересные новинки.

25.01.2021    2550    user1015646    2