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

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Tokra
Сообщения: 399

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

Сообщение Tokra »

В официальном блоге компании Google был представлен новый язык программирования Gо, ориентированный на высокую производительность, которая почти сопоставима с Си, но имеет более простой синтаксис, обеспечивающий скорость разработки сопоставимую с такими динамическими языками, как Python.

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

Разработчики Google считают, что язык Go и в текущей реализации является относительно зрелым, но не совсем готов для использования в реальных производственных средах. Сопутствующий инструментарий для нового языка программирования еще находится в стадии разработки. Отсутствует интеграция с какой-либо IDE, стандартные библиотеки не до конца наполнены, и на настоящий момент еще мало реальных примеров работающего кода. Открытие Go для большого сообщества программистов могло бы значительно ускорить процесс развития языка во всех этих важнейших областях.

Компиляторы Go, называемые 6G и 8G (для 64-битных и x86 платформ), ориентированы на высокие скорости компиляции (единицы секунд даже для огромных проектов). Существует также альтернативный компилятор под названием Gccgo, основанной на GNU Compiler Collection (GCC). GCC-компилятор менее быстрый и предназначен для генерирования более эффективного кода. Надо отметить, что разработчики отказались от использования LLVM-компилятора, так как его производительность по времени компиляции была признана недостаточной.

Скомпилированные исполняемые файлы являются полностью бинарными файлами, что отличает Go от языков управляемого кода, где компилятор генерирует байт-код для виртуальных машин. Go, тем не менее, имеет некоторые компоненты времени выполнения (runtime), которые могут быть встроены в исполняемые файлы. Фактическая производительность исполнения считается сопоставимой с Cи-кодом.

Примеры кода языка Go показывают, что синтаксис является Cи-подобным. Но существуют и отличительные черты. Например, существует сокращенный синтаксис определения переменных, который поддерживает обнаружение простых типов. Имеется также синтаксис анонимных функций, который позволяет вам использовать реальные замыкания (real closures). Есть некоторые Python-подобные особенности, в том числе slicing массивов и map-типы с синтаксисом конструктора, который выглядит наподобие словаря Python.

Одной из отличительных особенностей Go является его необычная система типов. Язык воздерживается от некоторых типичных для объектно-ориентированного программирования концепций, например наследования. Вы можете определить структурные типы, а затем создать методы для работы с ними. Вы можете также определить интерфейсы подобно Java. В Go, однако, не вручную указывается какой интерфейс реализует класс. Разработчики объяснили, что данный механизм интерфейсов предоставляет разработчикам некоторую гибкость неявной типизации (duck-typing), более того он предоставляет преимущества проверки во время компиляции.

Параллелизм — отличительная особенность дизайна Go. Язык вводит понятие "goroutines" — методы, которые выполняются одновременно. Любая функция может быть выполнена как "goroutine" с помощью указания в префиксе вызова функции ключевого слова "go". Язык реализует "channel" механизм, который может быть использован для безопасного обмена данными с "goroutines".

Hello, World на GO выглядит так:

Код: Выделить всё

package main


import fmt "fmt"  // Package implementing formatted I/O.


    func main() {
        fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n");
    }


Источник новости
Небольшой tutorial по данному языку
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 866
Статус: Оператор вычислительных машин
ОС: Debian

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение Janik »

Ну вот, ещё один язык программирования, похожий на Си...
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Alexandro
Сообщения: 33
ОС: FreeBSD, Ubuntu, Debian

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение Alexandro »

Стоит заметить, что авторы языка - Роб Пайк, Кен Томпсон и Роберт Гризмер.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение Bluetooth »

Alexandro писал(а):
12.11.2009 10:43
Стоит заметить, что авторы языка - Роб Пайк, Кен Томпсон и Роберт Гризмер.

Это важное замечание. Лично мне идеи этого языка показались интересными. А с учетом авторов - вдвойне интересными :)
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 866
Статус: Оператор вычислительных машин
ОС: Debian

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение Janik »

Я что-то не пойму: почему любят усложнять синтаксис, т.е. для того, чтобы вывести на экран какое-то сообщение надо написать 5-6 строк кода?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение Ali1 »

Janik писал(а):
12.11.2009 16:44
Я что-то не пойму: почему любят усложнять синтаксис, т.е. для того, чтобы вывести на экран какое-то сообщение надо написать 5-6 строк кода?

Т.к.

Код: Выделить всё

 import fmt "fmt"  // Package implementing formatted I/O.
.
А если у Вас список импорта на два листа и есть разные принты?

ИМХО Мне наоборот показалось, что синтаксис ЯП вполне обозрим и достаточно строг.
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение nadge »

Это важное замечание. Лично мне идеи этого языка показались интересными. А с учетом авторов - вдвойне интересными smile.gif

Во-во! Авторы жгут. Лично меня это заинтересовало, иначе бы не обратил внимания на очередной язык. А так можно будет на выходных посмотреть.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение Bluetooth »

Janik писал(а):
12.11.2009 16:44
Я что-то не пойму: почему любят усложнять синтаксис, т.е. для того, чтобы вывести на экран какое-то сообщение надо написать 5-6 строк кода?

Одна строчка там непосредственно на вывод сообщения. Как и в си.
Спасибо сказали:
Аватара пользователя
creative
Сообщения: 136
ОС: openSuSE / Windows XP

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение creative »

Не знаю как вам, но по мне название Go "не очень" :sleep:
Google могли придумать и поинтереснее. :headhurt:
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение sash-kan »

goo?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
BURF
Сообщения: 479
Статус: ZONGO!
ОС: openSUSE 12.1 x64

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение BURF »

sash-kan писал(а):
15.11.2009 23:52
goo?

gl !
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 866
Статус: Оператор вычислительных машин
ОС: Debian

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение Janik »

BURF писал(а):
16.11.2009 06:13
gl

Уже используется, так сокращённо называют OpenGL.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение NickLion »

Всё хорошо, но с названием таки проблема: http://code.google.com/p/go/issues/detail?id=9
Спасибо сказали:
Аватара пользователя
BURF
Сообщения: 479
Статус: ZONGO!
ОС: openSUSE 12.1 x64

Re: Представлен новый открытый проект Google - язык программирования Go

Сообщение BURF »

Janik писал(а):
16.11.2009 07:34
Уже используется, так сокращённо называют OpenGL.

тогда glgl или glglglgl
Спасибо сказали: