The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

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

В официальном блоге компании Google был представлен новый язык программирования , ориентированный на высокую производительность, которая почти сопоставима с Си, но имеет более простой синтаксис, обеспечивающий скорость разработки сопоставимую с такими динамическими языками, как 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-типы с синтаксисом конструктора, который выглядит наподобие dictionary в Python.

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

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

  1. Главная ссылка к новости (http://arstechnica.com/open-so...)
  2. The Go Programming Language
Автор новости: PGCatabras
Тип: Интересно / К сведению
Ключевые слова: Google, go, language, compile, gcc
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Серж, 15:31, 11/11/2009 [ответить] [смотреть все]
  • +1 +/
    ПО ходу, софт для следующих Андроидов будет писаться именно на нём.
     
     
  • 2.4, Stanislaus, 15:47, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]
  • +1 +/
    Скорее всего Кстати, очень хороший ход Скорость выполнения С быстрая разра... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.21, User294, 17:51, 11/11/2009 [^] [ответить] [смотреть все]  
  • –1 +/
    Тупой вопрос как будет достигнута скорость выполнения си при насильной проверке... весь текст скрыт [показать]
     
     
  • 4.24, Cobold, 19:13, 11/11/2009 [^] [ответить] [смотреть все]  
  • +/
    видимо best case на этом языке сравним с каким-нибудь результатом на си Уже пов... весь текст скрыт [показать]
     
  • 4.50, dimavin, 15:47, 12/11/2009 [^] [ответить] [смотреть все]  
  • +/
    Performance: typically within 10-20% of C.
     
  • 2.37, usr, 10:41, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Сплюнь Так и не понял, какую проблему они хотели решить Быстрая компиляция Да... весь текст скрыт [показать] [показать ветку]
     
  • 1.2, Stanislaus, 15:44, 11/11/2009 [ответить] [смотреть все]  
  • +/
    И откуда идет сравнение с Python? Что общего?

    Рад, что гугл отходит от практики айдентированного форматирования кода.

     
     
  • 2.12, letsmac, 16:16, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Судя по всему Гвидо к нему таки прикладывался. Он же тоже гугловец.
     
  • 1.3, Аноним, 15:45, 11/11/2009 [ответить] [смотреть все]  
  • +8 +/
    Жду не дождусь, когда они уже начнут собирать армию роботов для захвата мира
     
     
  • 2.63, поцанчик, 14:22, 26/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Жду недождусь когда же они обломаются, поняв что их роботы тормозят именно из-за... весь текст скрыт [показать] [показать ветку]
     
  • 2.65, Basiley, 10:47, 28/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    проект Android, назван так не случайно и стартовал давно вы все еще ждете ил... весь текст скрыт [показать] [показать ветку]
     
  • 1.13, Crazy Alex, 16:17, 11/11/2009 [ответить] [смотреть все]  
  • +/
    Надо еще потребление памяти глянуть... А то, судя по сравнениям с shootout, та же ява или лисп довольно быстры  - только памяти едят в разы больше сишных/плюсовых версий...
     
  • 1.18, Аноним, 17:28, 11/11/2009 [ответить] [смотреть все]  
  • +/
    Там нету эксепшенов или я не нашел? Без эксепшенов хреново как-то.
     
     
  • 2.19, Cobold, 17:32, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    В FAQ написано что нету
     
     
  • 3.26, Аноним, 00:40, 12/11/2009 [^] [ответить] [смотреть все]  
  • +/
    они не используют ексепшены вообще пожизни http google-styleguide googlecode c... весь текст скрыт [показать]
     
  • 1.22, Belya, 18:02, 11/11/2009 [ответить] [смотреть все]  
  • –1 +/
    Походу Google OS не за горами :)
     
  • 1.23, Михаил Кривушин, 18:51, 11/11/2009 [ответить] [смотреть все]  
  • +1 +/
    Приятно, когда человек сходил на сайт проекта, и только после этого изобразил новость. Спасибо.
     
  • 1.25, Gambler, 00:31, 12/11/2009 [ответить] [смотреть все]  
  • +/
    Советую в параллель почитать про D (http://digitalmars.com/d/) как альтернативу. Тоже компилируемый с автоматичкским управлением памятью.
     
     
  • 2.44, Ptomaine, 12:27, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +5 +/
    Полностью согласен Только его язык D как-то народ не очень хочет принимать по... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.46, Iv945n, 15:33, 12/11/2009 [^] [ответить] [смотреть все]  
  • –1 +/
    при этом, сидя в Опере, открывали сотнями эти табы, не обращая на них внимание, ... весь текст скрыт [показать]
     
  • 2.59, Дмитрий Т, 15:26, 13/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Лицензия у D другая ... весь текст скрыт [показать] [показать ветку]
     
  • 1.27, Аноним, 01:21, 12/11/2009 [ответить] [смотреть все]  
  • –1 +/
    Как произносить, Гу или Го Го - это какая то популярная китайская игра А в... весь текст скрыт [показать]
     
     
  • 2.30, pavlinux, 04:39, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вроде болтает ГО, Лэнгувидьжь http www youtube com watch v wwoWei-GAPo Гугл... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.35, Аноним, 10:06, 12/11/2009 [^] [ответить] [смотреть все]  
  • +/
    Спасибо за пояснения. Ну да, всетаки Го! Значит кто то будет играть в Го ))
     
  • 2.45, Sadok, 13:33, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Го - японскя игра
     
     
  • 3.47, Iv945n, 15:34, 12/11/2009 [^] [ответить] [смотреть все]  
  • +/
    Да, я даже поигрывал на досуге, не менее занимательно чем шашки и сапёр ... весь текст скрыт [показать]
     
     
  • 4.48, Sadok, 15:37, 12/11/2009 [^] [ответить] [смотреть все]  
  • +/
    У меня даже разряд какой-там есть ... весь текст скрыт [показать]
     
     
  • 5.52, Митра, 23:49, 12/11/2009 [^] [ответить] [смотреть все]  
  • +/

    >У меня даже разряд какой-там есть )

    Какой у вас дан?


     
     
  • 6.53, Sadok, 07:36, 13/11/2009 [^] [ответить] [смотреть все]  
  • +/
    да, какой дан у меня еще из начальных кю кажется так и было это еще ... весь текст скрыт [показать]
     
  • 3.70, Sivolday, 14:54, 28/07/2010 [^] [ответить] [смотреть все]  
  • +/
    Го - японское название китайской игры вейчи Она же в Корее называется бадук ... весь текст скрыт [показать]
     
  • 1.28, Zulu, 03:16, 12/11/2009 [ответить] [смотреть все]  
  • +/
    > Параллелизм — отличительная особенность дизайна Go.  Язык реализует "channel" механизм, который может быть использован для безопасного обмена данными с "goroutines".

    OMG they reinvented Erlang! Bastards!

     
     
  • 2.66, Basiley, 10:49, 28/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    не в Эрланге органичнее реализовано как и сам язык, впрочем ... весь текст скрыт [показать] [показать ветку]
     
  • 1.29, pavlinux, 04:22, 12/11/2009 [ответить] [смотреть все]  
  • +4 +/
    > func (file *File) Write(b []byte) (n int, err Error)

    Это называется "простой синтаксис"

    >f := new(File);
    >f.fd = fd;

    e := f.Read(buf[i:i+1]);
      if nbytes == 0
         e = 1;


    Уже вижу тонну багов, связанных с путаницей между ":=", "=" и "=="

    > import ( "flag"; "http"; "io"; "log"; "strings"; "template"; )

    Нахрена кавычки, это что строки, просто текст?
    А что будя если указать  import ( "fla\0x67"; "http \n"; "           io";)


    > _ = freeList <- b;  

    Это вааабще весело...

     
     
  • 2.31, 82500, 09:22, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • –5 +/
    Ты че тут понаписал Вот же спецам из гугла не повезло, нужно было в главные арх... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.33, pavlinux, 09:33, 12/11/2009 [^] [ответить] [смотреть все]  
  • +1 +/
    Не пиздить А если пиздить, то по делу Про Моё тело не по делу ... весь текст скрыт [показать]
     
  • 2.32, Vertigo, 09:25, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да, вот странно Зачем двойное равенство, если присваивание как в паскале Там, ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.49, Iv945n, 15:37, 12/11/2009 [^] [ответить] [смотреть все]  
  • +1 +/
    Чтобы раз и навсегда избежать путанницы и неосознанности в этом вопросе логично... весь текст скрыт [показать]
     
  • 1.34, Аноним, 10:00, 12/11/2009 [ответить] [смотреть все]  
  • +/
    Короче, учить надо те языки которые востребованы на рынке труда, и максимально п... весь текст скрыт [показать]
     
     
  • 2.51, Cobold, 18:01, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    как-то недавно проскакивала статистика показывавшая что на рынке труда максималь... весь текст скрыт [показать] [показать ветку]
     
  • 1.36, nvv13, 10:34, 12/11/2009 [ответить] [смотреть все]  
  • +/
    Язык go
    это что
    теперь goto опять в моде будет?
     
     
  • 2.38, Аноним, 10:59, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    нет, это гугл готовится к выходу соей ОС Что то они больно шустро зашагали, нав... весь текст скрыт [показать] [показать ветку]
     
  • 1.39, Аноним, 11:03, 12/11/2009 [ответить] [смотреть все]  
  • +/
    А в нём нет ни while, ни until А как же циклы делать P S я не программист ... весь текст скрыт [показать]
     
     
  • 2.40, nvv13, 11:14, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    есть For смотри http golang org doc go_spec html For_statements есть Goto смо... весь текст скрыт [показать] [показать ветку]
     
  • 2.41, pavlinux, 11:38, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    aa if a 1000000000 a a 1 goto aa ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.64, поцанчик, 21:43, 26/11/2009 [^] [ответить] [смотреть все]  
  • +/
    DDDDDDDDDDDDDD ... весь текст скрыт [показать]
     
  • 3.71, igorbat, 23:21, 26/08/2010 [^] [ответить] [смотреть все]  
  • +/
    это напоминает PL1 -- ... весь текст скрыт [показать]
     
  • 2.56, letsmac, 11:42, 13/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    For + If. Зачем goto ввели непонятно.
     
  • 1.42, nvv13, 11:49, 12/11/2009 [ответить] [смотреть все]  
  • +/
    вот попробуйте поискать примеры кода
    go example
    или
    python example

    go example - вообще чуш выдаёт

    !!!как же неудачно назван язык!!!
    красиво, не спорю, но неудачно!!

     
     
  • 2.60, Аноним, 12:32, 14/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вы таки думаете, что гугол не настроит свою гуглоискалку, чтобы она вменяемо выд... весь текст скрыт [показать] [показать ветку]
     
  • 2.67, Basiley, 10:51, 28/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    marines, go, go, go но если сурьезно, Биллу Гейтсу должно икаться, с его любо... весь текст скрыт [показать] [показать ветку]
     
  • 1.43, nvv13, 11:58, 12/11/2009 [ответить] [смотреть все]  
  • +/
    вот нашёл язык go!
    http://en.wikipedia.org/wiki/Go!_(programming_language)
    то есть название языка "go!", создан в 2003 году
     
     
  • 2.58, compiler, 14:26, 13/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Go! и Go -- разные языки.
     
     
  • 3.68, Basiley, 11:02, 28/01/2010 [^] [ответить] [смотреть все]  
  • +/
    не факт что Go хуже и не настолько разный, чтобы не заметить ряд ВОПИЮЩИХ и не... весь текст скрыт [показать]
     
  • 1.69, Аноним, 01:26, 25/07/2010 [ответить] [смотреть все]  
  • +/
    Опять забыли про поддержку Widnows )))
     
  • 1.72, yan, 12:52, 27/08/2010 [ответить] [смотреть все]  
  • +/
    При поиске наиболее адекватные результаты выдает "Golang", а не просто Go
    Добавьте в ключевые слова plz/
     
     
  • 2.73, yan, 12:53, 27/08/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    аналогично и в вики http://en.wikipedia.org/wiki/Golang
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor