Автор Тема: Язык программирования Go  (Прочитано 11385 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Prof1983

  • Активист
  • ****
  • Автор темы
  • Сообщений: 499
  • Digital Economy Institute
Язык программирования Go
« : Март 31, 2012, 16:01:51 »
Здравствуйте.

Решил написать про относительно новый язык программирования. Он мне очень понравился. Даже больше, чем Vala. На сколько я понял он лишен недостатков Си, но при этом сохранил все его достоинства. Плюс добавлены возможности для программирования параллельных (кажется так правильно называется) программ.

Ссылки по теме:
http://golang.org/ - основной сайт проекта
http://golanguage.ru/ - русскоязычный сайт
http://code.google.com/p/go/ - исходники, бинарники и пр.

Книги
http://golanguage.ru/tutorial - Учебник
Programming in Go: Creating Applications for the 21st Century
The Way to Go: A Thorough Introduction to the Go Programming Language
Learning Go (исходники книги)

IDE
http://go-ide.com/ - требует Java
http://code.google.com/p/golangide/ - GoLiteIDE. Поддерживает сборку проектов через go tool.
http://code.google.com/p/goclipse/ - Плагин для Eclipse
SublimeText2
TextMate 1 (TextMate 2 пока что не поддерживает).
Список IDE для Go

Статьи
TCP/IP proxy на Go
Google Go vs. Си.
Для тех, кто пишет на языке Go
Пишем веб-эмулятор терминала на Go, используя Websocket
Google выпустила финальную версию языка программирования Go 1
Первый релиз языка программирования Go
Простой файловый хостинг на Google App Engine
Интерпретируем Go как Python, Ruby, Bash
Быстрый старт – программируем на Go под Windows — настройка Environment
Go Language. Небольшое клиент-серверное приложение
Веб-разработка на Go
Обработка ошибок в Go: Defer, Panic и Recover
Многопоточное программирование в Go
Язык Go. Пишем эмулятор CHIP-8
Язык Go не будет менять название: обсуждение закрыто
Язык Go с точки зрения PHP-разработчика
Язык программирования Go
Google Go = Python и C++

Здесь можно найти критику и недостатки Go:
Язык программирования Rust

Цитировать (выделенное)
По мнению разработчиков Rust, главная проблема Google Go — блокировка исполнения кода при сборке мусора, что делает невозможным использование Go в приложениях под высокой нагрузкой, имеющих ограничение на максимальное времени отклика. Некоторые программы на Go могут тратить больше времени на сборку мусора, чем на реальную работу (см. подробнее о тестировании C++/Java/Go/Scala). В Rust используется другой подход, что может приводить к утечкам памяти, но зато повышает производительность.

Правда я не совсем понимаю почему пишется про сборку мусора, если Go не объектно-ориентированный язык. Или он считает созданные и не освобожденные структуры? В общем надо разбираться.

P.S. В разделе "Разработка" в основном программы для разработки. Эту тему можно тоже считать "описанием" консольной программы /usr/local/go/bin/go :)
« Последнее редактирование: Апрель 23, 2012, 20:15:32 от Prof1983 »
Libre.Life - Свободная жизнь Libre.Money - Свободные деньги Libre.Su - Свободный союз

Оффлайн Olej

  • Новичок
  • **
  • Сообщений: 88
Re: Язык программирования Go
« Ответ #1 : Март 31, 2017, 21:06:36 »
Решил написать про относительно новый язык программирования.
И даже не "относительно", а абсолютно - 2009-й год.
На сколько я понял он лишен недостатков Си, но при этом сохранил все его достоинства.
Не удивительно: архитектуру Go разрабатывали те же люди, что 40 лет назад разрабатывали C и UNIX.
Как у А.Дюма: "40 лет спустя" ... С учётом всех проблем 40-летней эксплуатации.
Плюс добавлены возможности для программирования параллельных (кажется так правильно называется) программ.
Добавлено много новых нужных вещей.
Учебник начального уровня для тех, кто имеет некоторый опыт программирования, см. здесь: Go конспект (124 стр. + множество работающих примеров).
Правда я не совсем понимаю почему пишется про сборку мусора, если Go не объектно-ориентированный язык. Или он считает созданные и не освобожденные структуры? В общем надо разбираться.
1. Сборка мусора никак (ни малейшим образом) не связана с объектностью языка.
2. Go может считаться объектно-ориентированным языком (не менее, по крайней мере, чем JS или PHP), но здесь объектность реализуется совсем по-другому, чем в C++ или Java.