Языку программирования 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. DmitryKSL 154 14.11.19 12:37 Сейчас в теме
Для Go создали набор инструментов разработки gc, который уже поддерживают Windows, Linux, macOS, Android

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

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

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

на фига козе баян?
3. vpaoli 29 14.11.19 14:21 Сейчас в теме
(2)
котик
о кроликах слышал, а котики - это кто? ))
4. lmnlmn 64 14.11.19 14:30 Сейчас в теме
Руки чешутся опробовать этот GoLang, да задачи пока не подвернулось.
Только вот стремно что освоишь язык, а управители наши интернет огородят и скажут что суверенное, отечественное ПО надо писать только в отечественной ОС, на отечественном языке программирования под отечественный процессор.
5. RaHit 20.11.19 18:44 Сейчас в теме
Только язык РАЯ ! :)
Советую с ним ознакомиться.
Оставьте свое сообщение

См. также

Тетрис помог повысить заполняемость отелей

Новость Автоматизация ИТ-новость

Алгоритм RoomTetris, разработанный исследователями из LION Laboratory (Learning and Intelligent Optimization) – Лаборатории обучения и интеллектуальной оптимизации, избавит отельеров от овербукинга. Вдохновением для ученых послужила игра «Тетрис».

вчера в 16:47    871    user1015646    1       

Нейросеть научили создавать изображения по текстовому описанию

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

Разработчики компании OpenAI представили нейронную сеть DALL-E. Она анализирует англоязычный текст и создает изображения на его основе.

вчера в 11:45    1239    user1015646    0       

Разработчики портируют Linux на Mac с процессором M1

Новость Linux Микроэлектроника

Компания Apple представила первые компьютеры на базе процессоров M1 собственной разработки. Разработчик Гектор Мартин решил создать сборку Linux специально для этих компьютеров. 

18.01.2021    824    user1015646    4       

10 стартапов в области машинного обучения, за которыми стоит следить в 2021 году

Новость Искусственный интеллект Стартапы

По данным Crunchbase, в 2020 году компании, связанные с искусственным интеллектом и машинным обучением, получили рекордное финансирование – 28 млрд долларов. Представляем список из 10 самых перспективных стартапов в этой области.

18.01.2021    758    SKravchenko    0       

Fujifilm и IBM создали ленточный накопитель с рекордным объемом памяти

Новость Дата-центры ИТ-новость Облачные технологии

Fujifilm и IBM повысили емкость ленточных накопителей до рекордных 580 терабайт информации. Это значительно превосходит максимальную емкость SSD – 100 ТБ и жестких дисков – 30 ТБ.

13.01.2021    1258    user-programmist    0       

Эксперты назвали 10 навыков для ИТ-специалистов, которые обеспечат прибавку к зарплате

Новость Автоматизация Аналитика Искусственный интеллект ИТ-новость

Зарплаты в ИТ-сфере – одни из самых высоких, и у специалистов здесь существует масса возможностей для роста. Специалисты компании Burning Glass определили, какими навыками должны обладать сотрудники, нацеленные на максимальную прибавку к зарплате.

12.01.2021    1450    user1015646    2       

Против монополии: Apple получила патент на поисковый алгоритм

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

Apple начала активно разрабатывать собственную поисковую систему. Из-за возможных антимонопольных санкций США против Google компания Тима Кука может лишиться возможности пользоваться сервисами поискового гиганта.

11.01.2021    766    VKuser24342747    0       

FreeBSD перевела репозиторий на Git

Новость Linux GitHub ИТ-новость

FreeBSD откажется от использования системы контроля версий Subversion (SVN) и перейдет на Git. Об этом в рассылке объявил разработчик Уорнер Лош.

30.12.2020    1375    user1015646    0       

Вышла бета-версия Go 1.16

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

Предстоящее обновление языка программирования Go 1.16 с открытым исходным кодом включает поддержку процессора Apple, улучшения базовой библиотеки и среды выполнения. Релиз стабильной версии намечается на февраль 2021 года.

30.12.2020    1738    SKravchenko    0       

Microsoft позволит создавать пользовательские функции в Excel

Новость Infostart Software Partners Маркет

В Excel появилась новая функция – LAMBDA – для превращения пользовательских формул в многоразовые функции. Пользователи смогут создавать правила для управления данными внутри Excel, так же, как и в любом другом языке – Java, PHP или Python.

29.12.2020    2086    SKravchenko    2       

Microsoft и МТС планируют совместно развивать российский интернет вещей

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

МТС и Microsoft договорились совместно развивать российский интернет вещей путем интеграции платформы для разработки решений интернета вещей Microsoft Azure IoT Central и сети интернета вещей NB-IoT МТС.

28.12.2020    1233    user-programmist    1       

Bloomberg оценил компанию JetBrains в $7 млрд

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

По данным Bloomberg Billionaires Index, стартап JetBrains стоит около 7 млрд. долларов. В отличие от технологических компаний, которые продают акции для поддержки развития, руководители JetBrains не полагаются на средства венчурных капиталистов.

28.12.2020    1292    SKravchenko    0       

Cloudflare станет хостинг-провайдером для статических сайтов JAMstack

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

Cloudflare запустила сервис Pages для создания сайтов при помощи подхода JAMstack. Веб-ресурсы, разработанные при помощи платформы, будут опубликованы в существующей сети провайдера CDN.

25.12.2020    1154    VKuser24342747    0       

GitHub откажется от аутентификации по логину и паролю

Новость GitHub ИТ-новость

Крупнейший хостинг репозиториев кода GitHub пересмотрит политику аутентификации. Пароли перестанут поддерживать – их полностью заменят токены и SSH-ключи.

24.12.2020    1239    user1015646    2       

В Telegram появятся платные функции

Новость ИТ-новость Мессенджеры

Основатель Telegram Павел Дуров рассказал о будущем мессенджера. Команда разработчиков планирует внедрить платные функции, чтобы компенсировать расходы на развитие сервиса.

23.12.2020    1464    user1015646    0       

Составлен рейтинг приложений для предустановки на смартфоны и умные ТВ

Новость Импортозамещение ИТ-новость

Минцифры опубликовало рейтинг приложений, которые с большой вероятностью будут рекомендованы для предустановки на смартфоны и Smart TV. Самые популярные варианты в различных категориях отобрали из более чем 100 заявок от разработчиков.

23.12.2020    1393    user1015646    4       

Microsoft запатентовала технологию оценки эффективности совещаний

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

Microsoft реализует системы мониторинга сотрудников для оценки производительности организации. Одно из последних решений компании – вычислительная система Meeting Insight от Microsoft, которая способна создать «оценку качества» проведенного совещания.

22.12.2020    1601    capitan    1       

Octoverse 2020: GitHub опубликовал главный отчет года

Новость GitHub ИТ-новость

Крупнейший хостинг репозиториев кода GitHub назвал 2020-й «годом экстраординарных изменений». Переход на удаленку повысил продуктивность работы команд и позволил уделять больше времени проектам с открытым исходным кодом.

22.12.2020    1699    user1015646    0       

Автогигант Hyundai купит Boston Dynamics

Новость ИТ-новость Робототехника

Производитель самых известных роботов в мире сменил владельца. Компанию Boston Dynamics приобрел корейский автомобильный концерн Hyundai.

21.12.2020    1738    user1015646    3       

Разработчик запустил аналог Tinder для программистов

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

Приложение для знакомств Tinder привлекает простотой интерфейса: свайп влево – отказ от общения, вправо – намерение познакомиться. Американский разработчик Бен Авад запустил аналогичное приложение для программистов.

18.12.2020    2146    user1015646    2       

Крупное обновление: вышел GNU bash 5.1

Новость Windows Linux ИТ-новость

Вышла свежая версия командного интерпретатора – GNU bash 5.1, используемая по умолчанию в большинстве дистрибутивов Linux. Также обновилась библиотека GNU readline 8.1, используемая в bash для консольного интерфейса и редактирования строк.

17.12.2020    2550    user1015646    0       

Евросоюз обязал поисковых гигантов раскрыть свои алгоритмы

Новость Google Законодательство Интернет ИТ-новость

Технологические компании вроде Google и Amazon должны открыто сообщать пользователям, каким образом ранжируют поисковую выдачу на своих сайтах. Евросоюз считает, что такая норма поможет в борьбе с монополией ИТ-гигантов.

16.12.2020    2145    VKuser24342747    0       

ИТ-дивизион: «Руссофт» посчитал доходы отечественных ИТ-компаний

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

Некоммерческое объединение ИТ-компаний «Руссофт» представило ежегодный отчет «Рейтинг регионов России по уровню развития индустрии разработки ПО».

15.12.2020    2232    VKuser24342747    1       

Microsoft представляет новый способ обновления Windows 10

Новость Windows ИТ-новость

Microsoft начала тестировать новый подход к улучшению отдельных функций Windows 10. Он называется Windows Feature Experience Packs.

15.12.2020    2296    SKravchenko    0       

Apple принимает заявки на сниженную комиссию в App Store

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

Apple открыла программу снижения комиссий для разработчиков, которые размещают приложения в официальном магазине App Store. Чтобы отчислять 15% вместо 30%, нужно подать заявку на специальной странице.

14.12.2020    2262    user1015646    1