Black Friday: Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU

Возврат к списку

Языку программирования 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

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


Автор:
Ксения Шестакова Обозреватель


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

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

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

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

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

См. также

Инфостарт и electroNeek запускают программу роботизации процессов для малых и средних предприятий 2

Новость Автоматизация Инфостарт

Инфостарт заключил партнерский договор с компанией electroNeek – разработчиком  программного обеспечения для автоматизации повторяющихся бизнес-задач. Наша цель – сделать роботизированную автоматизацию процессов (RPA) доступной. 

сегодня в 09:50    394    user997184    0       

Проект Verona: Microsoft перепишет часть Windows на новом языке 3

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

Microsoft запустила экспериментальный проект по разработке собственного языка программирования Verona, основанного на Rust.

вчера в 15:35    613    user1015646    2       

Nokia создала ПО для программирования интернете вещей на базе Tarantool 1

Новость СУБД Mail.Ru Инновации

Модуль позволит разрабатывать ПО для систем промышленного интернета вещей. Он включает инструменты для управления интеллектуальными средами и обеспечивает взаимодействие IOC с граничными облачными приложениями. 

02.12.2019    492    user1015646    0       

Google пожаловался на разработчиков игр из-за неудачного старта сервиса Stadia 0

Новость Google Видеоигры

Облачный сервис Google Stadia не оправдал ожидания игроков. Он не позволяет запускать игры в разрешении 4K, имеет большую задержку ввода и приводит к перегреву плеера Chromecast.

02.12.2019    773    VKuser24342747    0       

В России и Европе закончились адреса IPv4 2

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

«25 ноября 2019 года, мы сделали окончательное распределение / 22 IPv4 по последним оставшимся адресам в нашем доступном пуле. Теперь у нас закончились адреса IPv4», – сообщает один из пяти глобальных интернет-регистраторов RIPE NCC. 

28.11.2019    1091    user1015646    0       

Российский офисный пакет исключили из реестра отечественного ПО за плагиат  0

Новость Госзакупки Импортозамещение

Пакет офисных программ AlterOffice исключили из Реестра российского программного обеспечения. В нем нашли признаки клонирования зарубежного аналога LibreOffice с открытым исходным кодом.

27.11.2019    1630    user1015646    0       

В скрипты на Python добавили эмодзи 1

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

Разработчик Гейр Арне Хьелле решил привнести в программирование на Python больше красок: он создал проект, который позволяет использовать эмодзи в коде.

27.11.2019    957    user1015646    3       

Власти готовят механизмы для конфискации криптовалют 0

Новость Блокчейн Криптовалюта

До конца 2021 года МВД разработает механизм ареста и конфискации криптовалют. У инициативы две проблемы: сначала криптовалюты нужно легализовать, а затем – заставить иностранные биржи выдать криптовалюту.

26.11.2019    1148    user-programmist    0       

Apple внедрит новую методологию тестирования из-за проблем iOS 13 1

Новость Apple Мобильные приложения

Проблемы iOS 13 заставили Apple изменить подход к выпуску новых версий операционной системы. Новые непроверенные функции ОС можно будет отключить.

26.11.2019    750    VKuser24342747    0       

Новый уровень сложности: «Змейку» скрестили с «Тетрисом» 0

Новость Видеоигры

В магазинах приложений найдутся «Тетрисы» и «Змейки» на любой вкус. Но французский разработчик Грегуар Диварет-Шо пошел дальше: он скрестил две популярные игры в одном окне.

25.11.2019    982    user1015646    0       

OneScript 1.2.0: разрабатывать скриптовые библиотеки на языке 1С стало проще 34

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

В новой версии OneScript 1.2.0 значительно доработан отладчик, реализованы условные директивы препроцессора в зависимости от операционных систем, улучшена диагностика модулей, скомпилированных в exe.

22.11.2019    3567    vikad    11       

Правительство выделит миллиарды рублей на сквозные технологии  0

Новость Инновации Цифровая экономика

Российские разработчики могут претендовать на получение грантов до миллиарда рублей. Субсидии будут выдаваться на конкурсной основе.

22.11.2019    1287    Bukaska    0       

Создатель С++ сожалеет, что код биткоина написан на его языке 2

Новость Блокчейн Криптовалюта

Разработчик языка программирования С++ Бьерн Страуструп считает, что у биткоина нет будущего. Программист сожалеет, что код криптовалюты написан на С++.

20.11.2019    1912    user1015646    0       

GitHub запустил мобильное приложение 2

Новость GitHub

Сервис хранения репозиториев кода GitHub решил запустить мобильное приложение. Оно позволит выполнять основные операции со смартфона, а значит, расширит возможности для разработчиков.

20.11.2019    865    user1015646    0       

Большой отчет GitHub: 40 млн пользователей от США до Антарктиды и победа Python над Java 2

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

Хостинг репозиториев GitHub опубликовал новый годовой отчет – Octoverse 2019. За год аудитория ресурса выросла до 40 млн пользователей, а код на Python стали загружать чаще, чем на Java. 

19.11.2019    1282    user1015646    0       

Российские ИТ-гиганты объединились ради развития рынка искусственного интеллекта 2

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

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

15.11.2019    2397    VKuser24342747    2       

Банк «Ростеха» выделил 520 млн рублей на разработку устройств на «Эльбрусах» 0

Новость Импортозамещение Эльбрус

«Новикомбанк» выделил разработчикам компьютеров на базе «Эльбруса» более полумиллиарда рублей в виде кредитов и банковских гарантий. Эта сумма превышает годовую выручку ИТ-организации. 

14.11.2019    1397    VKuser24342747    0       

Нет ошибкам прошлого: Windows 10 получила очередной большой апдейт 0

Новость Windows Microsoft

Microsoft представила крупное обновление Windows 10, которое исправляет многие проблемы операционной системы. Пользователи смогут получить его в течение двух ближайших недель.

13.11.2019    2015    VKuser24342747    0       

Цифровые подписи в России начнут выдавать дистанционно  0

Новость Минкомсвязь Цифровая подпись

В России запустят эксперимент по дистанционной выдаче облачной электронной подписи. Эксперимент стартует в ноябре 2019 года, а закончится – в декабре 2021 года. 

12.11.2019    1979    user1015646    0       

Google может сделать хранение данных в облаке платным 0

Новость Google Облачные технологии

Google привлек миллиарды потребителей к своим цифровым услугам, предлагая бесплатное облачное хранилище. Gmail, Google Docs, Google Photos и другие сервисы, которые хранят данные на облачных серверах Alphabet, скоро могут стать платными.

11.11.2019    1560    SKravchenko    0       

Правительство предложило запретить зарубежные решения в банках, медицине и промышленности 1

Новость Законодательство Импортозамещение

Минэкономразвития выступило с инициативой запретить использование иностранных программ и «железа» на объектах критической информационной инфраструктуры. Применяемые заграничные решения могут быть заменены на отечественные аналоги. 

08.11.2019    1627    VKuser24342747    1       

Российские разработчики «подарили» Linux драйвер для exFAT  1

Новость Linux Microsoft

Ядро Linux не умеет взаимодействовать с такими накопителями, но благодаря драйверу, разработанному российскими специалистами из Paragon Software, свободная ОС получит поддержку exFAT на уровне ядра.

06.11.2019    1462    user1015646    0       

Необновленные iPhone 5 остались без почты, iCloud и других сервисов 2

Новость Apple

Компания Apple предупредила пользователей iPhone 5 о необходимости обновить ОС до версии  10.3.4 до 3 ноября 2019 года. Те, кто не успел этого сделать, остались без почты, браузера и возможности пользоваться AppStore и iCloud. 

06.11.2019    1470    Bukaska    0       

В сети появилась информация о возможностях новой Windows 10X 0

Новость Windows Microsoft

Windows 10X выйдет осенью 2020 года – об этом официально объявили в Microsoft. До релиза еще год, поэтому подробности держат в секрете, но благодаря утечкам информации о новой ОС уже кое-что известно.

01.11.2019    2481    user1015646    0       

На российский рынок выведут отечественный SSD 5

Новость Электротехника и микроэлектроника

На российском рынке вскоре появится первый твердотельный накопитель отечественного производства. Компания Kraftway планирует выпустить SSD, который даст ей серьезные преимущества в госзакупках. 

30.10.2019    3956    user1015646    19