The OpenNET Project / Index page

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

Увидел свет язык программирования Go 1.3

19.06.2014 12:21

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

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

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

Основные новшества, представленные в выпуске Go 1.3:

  • Добавлена поддержка платформ DragonFly BSD, Solaris (illumos и Solaris 11) и Plan 9. Повышены минимальные требования к версиям FreeBSD (FreeBSD 8+ c COMPAT_FREEBSD32 для x86 и FreeBSD 10 для ARM), NetBSD (6.0+) и OpenBSD (5.5+). Прекращена поддержка ОС Windows 2000, выпуск обновлений для которой был прекращён Microsoft в 2010 году.
  • В инструментарий gc добавлена поддержка генерации исполняемых файлов для окружения Native Client (NaCl), что позволяет организовать выполнение не заслуживающего доверия кода в sandbox-окружении, изолированном от остальной системы. Пока поддерживается только генерация платформозависимых файлов для 32- и 64-разрядных процессоров Intel, поддержка Portable Native Client (PNaCl) отсутствует;
  • В сервер документации Godoc добавлены средства для статического анализа кода при запуске с флагом "-analysis". Результаты анализа отображаются как в представлении исходных текстов, так и в документации к пакету, что упрощает навигацию по коду и разбор логики его работы;
  • Проведена оптимизация runtime-компонентов, что в сочетании с улучшенным сборщиком мусора, новой непрерывной стратегией работы со стеком для подпрограмм (ранее использовалась сегментированная модель), улучшением движка регулярных выражений и более быстрым детектором состояний гонки (race detector) положительно отразилось на производительности выполнения исполняемых файлов;
  • Проведён рефакторинг системы динамического связывания и компилятора. Стадия выбора инструкций перемещена из компилятора в линковщик, что позволило ускорить повторные сборки больших проектов;
  • Обеспечен режим точного контроля типов при работе сборщика мусора со стеком, что позволило исключить ошибочную трактовку переменных как укзателей. Задействован новый алгоритм вычищения, отличающийся параллелизацией выполнения операций и манипуляцией страницами памяти большего размера. Суммарный эффект от нового алгоритма оценивается в 50-70% снижении времени на сборку мусора.


  1. Главная ссылка к новости (http://blog.golang.org/go1.3...)
  2. OpenNews: Компания Google представила язык программирования Go 1.2
  3. OpenNews: Увидел свет язык программирования Go 1.1
  4. OpenNews: Первый релиз языка программирования Go
  5. OpenNews: Компания Google надеется на включение компилятора языка Go в GCC 4.6
  6. OpenNews: Представлен новый открытый проект Google - язык программирования Go
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40035-golang
Ключевые слова: golang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (59) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 13:08, 19/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –17 +/
    Полезно разве что как замена феерически кривого кошмара под названием питон. Как замена C++ годится только Rust.
     
     
  • 2.2, Аноним (-), 13:18, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну вот когда Rust допишут хотябы до какого-то стабильного состояния, тогда и будет заменой
     
     
  • 3.3, Аноним (-), 13:23, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это да.
     
  • 2.7, XoRe (ok), 14:19, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Полезно разве что как замена феерически кривого кошмара под названием питон.

    Программист на питон?

     
  • 2.8, Аноним (-), 16:21, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чем оно лучше православного питона?
     
     
  • 3.10, Аноним (-), 18:00, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну как минимум нормальным синтакисом, многопоточностью и полноценной компиляцией.
     
  • 3.11, rob pike (?), 18:35, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это и есть такой питон, только для сишников.
     
  • 3.26, Аноним (-), 22:00, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тем что синтаксис не для постановки гопов в стойло и скорость работы человеческая.
     
  • 2.12, rob pike (?), 18:36, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    И D годится, и Rust, и OCaml тоже сгодится.
    Только никто С++ на них менять не бежит. И не побежит.
     
     
  • 3.14, анон (?), 20:09, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    фейсбук вон публиковал отчёт по поводу выгодности перехода на D с C++

    уже бегут, игнорируйте дальше

     
     
  • 4.16, Аноним (-), 20:23, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    сейчас Роб напишет, что Александреску - некомпетентный хипстер и вообще продался корпорастам :)
     
     
  • 5.18, rob pike (?), 20:32, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Компетентный всё же, не отнять, но таки хипстер.

    А вот Bartosz уже осознал свою детскую болезнь D-визны и исправляется http://bartoszmilewski.com/2014/06/09/the-functional-revolution-in-c/

     
  • 4.17, rob pike (?), 20:28, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Только Фэйсбук пока и бежит одиноко.
    Да и то - основная часть так и будет на PHP, и Саймон уже остро отточенной лямбдой в D тычет.
    А остальные уже все на Go.
     
     
  • 5.41, й (?), 12:38, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Go -- отличный язык, но играющий несколько в других нишах, чем C++, D, Ocaml, да и чем PHP.

    Что у нас нынче флагманский веб-фреймворк под Go? Rivet?

     
     
  • 6.48, Аноним (-), 18:21, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В отличие от всех перечисленных Go всего 3 года. От идеи до Go1.3 ...
    Это ответ на вопрос "а что на нём написано", и про нищи.
    За три года прогресс вполне впечатляющий. Как оно дальше пойдёт - будем посмотреть :)
     
     
  • 7.49, анон (?), 18:47, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1. три года -- не от "идеи", а от r56
    2. и всё-таки, какой флагманский веб-фреймворк? мартини? ривет? оба не впечатлили
     
     
  • 8.50, й (?), 18:52, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Тьфу, не ривет, а ревел ... текст свёрнут, показать
     
  • 8.55, Аноним (-), 03:33, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Хоботов - это мелко С r56 была первой публичной, до этого над ней трудились 3 ... текст свёрнут, показать
     
     
  • 9.57, анон (?), 14:11, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    это было публичной версией _реализации_, а не идеи идея могла ещё лет десять фо... текст свёрнут, показать
     
  • 4.27, Аноним (-), 22:02, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > уже бегут, игнорируйте дальше

    За кадром слышен конский топот си++'ников которые побежали менять шило на мыло. А что, много например игр уже на D перешли с C++? А то игроделы например повально на полюсах пишут. Потому что больше не на чем. GC и прочие медвежьи услуги им только мешают, им надо скорость но чтобы достаточно сложный код достаточно быстро можно было воротить. Вот и используют плюсы. Потому что все остальные альтернативы - не такие уж и альтернативные.

     
     
  • 5.38, rob pike (?), 08:42, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Всё несколько сложнее, но в целом - да.

    http://c0de517e.blogspot.ru/2014/06/where-is-my-c-replacement.html

     
  • 5.43, arisu (ok), 14:33, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вот ведь… а почему ты ребятам из Circular Studios не сказал, что ничего у них не выйдет? если бы только они вовремя узнали… а теперь уже поздно, код уже написан и работает.
     
     
  • 6.56, Аноним (-), 03:39, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > вот ведь… а почему ты ребятам из Circular Studios не сказал, что ничего у них не выйдет?

    А у них вышло? Dash game - к успеху пришли пацаны чего там :)

    > а теперь уже поздно, код уже написан и работает.

    Да это хня - у меня шахматы на sed'е есть! Так что рулит sed и точка!

     
     
  • 7.59, arisu (ok), 19:20, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    дальше сам продолжай, это слишком неинтересно. «а-а-а, нельзя ничего написать!» «ну вот, написано.» «а-а-а, не заработали на этом миллиарды — значит, ерунда!» (про то, что «нельзя написать», ненавязчиво забываем). и так далее. дальше веди этот увлекательный диалог с кем-нибудь другим.
     
  • 4.33, Аноним (-), 00:01, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    с каких пор лицокнига стала мерилом и образцом? Что-то не наблюдаю ни одного opengl или какого-нибудь реляционного проекта, испуганно бегущего в сторону Go :)
     
  • 3.15, Аноним (-), 20:13, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    только это следствие не преимуществ C++, а того что даже относительно приемлемо работающий код вообще редко меняют. C++ - это Windows от языков программирования. Ёжики плачут, колются, но... Будь OpenSSL написан на Rust с его жестким контролем памяти, никакого хертблида бы не было.
     
     
  • 4.19, rob pike (?), 20:34, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А если бы на ATS с формальной верификацией - тогда вообще б коммунизм уже наступил.

    Вот только в реальности 90% таких "если" просто не были написаны.

     
  • 4.24, Аноним (-), 21:06, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Будь OpenSSL написан на Rust с его жестким контролем памяти, никакого хертблида бы не было.

    :) Надежды вьюношу питают ... Чтобы не было хеартблидов надо проггеров догл юить^W учить а на чём они пишут - дело где то 18-ое :)

     
     
  • 5.31, Аноним (-), 22:14, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Для начала надо прибить оверинженернутый протокол который без багов не получится реализовать вообще ни на какому ЯП. И сделать заново. В 20 раз проще. Без легаси и костылей. Тогда на любом ЯП станет реально реализовать без багов или с минимальным количеством таковых.

    Эталонный пример: протокол CurveCP. Все лучшее что вообще можно ожидать от криптографического протокола подобного типа. И в десятки раз меньше кода чем в любой SSLнутой либе...

     
     
  • 6.44, arisu (ok), 14:55, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Эталонный пример: протокол CurveCP.

    ага. эталон. послать пакет без данных можно, а ACKнуть его нельзя.

     
  • 4.28, Аноним (-), 22:05, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Будь OpenSSL написан на Rust с его жестким контролем памяти,
    > никакого хертблида бы не было.

    Если б у бабушки... ! С жестким контролем памяти оно во первых тупило бы раза в три во всей криптографии, за счет лишних проверок, продув первому же конкуренту на си. Потому что жаба всех удавит ставить в 3 раза больше серверов. Кроме того, писали бы это еще более стремные кидизы, дорвавшиеся до модно-стильно-молодежного ЯП. И в результате там было бы еще в 5 раз больше багов. А криптография баги не прощает. И отнюдь не только чтение лишней памяти.

     
     
  • 5.34, rob pike (?), 03:35, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > С жестким контролем памяти оно во первых тупило бы раза в три во всей криптографии, за счет лишних проверок

    Вы что же это, серьезно считаете что проверка типов - она в рантайме происходит?

     
     
  • 6.35, Mural (?), 06:18, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В GO схватить ошибку типа по райнтам - нефиг делать.
     
     
  • 7.36, rob pike (?), 07:19, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну так если таким вот макаром углы-то срезать

    > Because interface{} can refer to any value, it's a limited way to escape the restrictions of static typing, like void* in C but with additional run-time type checks

    чего ж тут ожидать хорошего

     
  • 2.13, Аминамус (?), 18:45, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Что-ты, биллет, канкстр какой-то, а? Канкстр?
     
  • 2.20, Аноним (-), 20:55, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не - ну раз такой мощщщный Ыгспёрд сказал ... всё пацаны, расходимся.

    А если по делу - это то на чём надо писать всё что не ядро. Я ещё более Ыгсперд - да :)

     
  • 2.21, Аноним (-), 20:57, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну ты и неосилятор :) У меня сервера крутят Пистон лет 7 уже 24*7 :))))) Я понимаю, когда чел не осилил Хаскель,но когда Пистон... может пора освободить дорогу другим? А самому, скажем, за баранку? :)
     
     
  • 3.25, Аноним (-), 21:09, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну ты и неосилятор :) У меня сервера крутят Пистон лет 7 уже 24*7 :)))))

    А у меня - код целевой задачи :) Но ты крути пистон дальше, я не против :)

    > Пистон... может пора освободить дорогу другим? А самому, скажем, за баранку?

    До чего же хорошо сказано, бро! :)


     
  • 3.29, Аноним (-), 22:08, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Пистон... может пора освободить дорогу другим?

    Интересно. То-есть, если ты не хочешь "джамшутить" в IT, используя ЯП для быдлoкодеров - единственное что приходит в голову "джамшутеру от IT" - посоветовать джамшутинг в другой сфере :). Ну да, ваш ответ лишний раз подтверждает тезис о том кто пользуеся бидоном...

     
  • 2.37, Darkman (??), 07:23, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну хз, я уже практически все стал писать на Go. PHP, Python, Java уже с год ничего не писал. Так еще для винды использую Delphi.
     
  • 2.39, ILYA INDIGO (ok), 10:52, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А как насчёт D?
     
     
  • 3.40, rob pike (?), 11:49, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Остался на обочине истории.
     
     
  • 4.45, arisu (ok), 14:57, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Остался на обочине истории.

    а пацаны-то до сих пор не в курсе…

     
     
  • 5.51, Аноним (-), 19:02, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Остался на обочине истории.
    > а пацаны-то до сих пор не в курсе…

    Ну правильно, так всегда и бывает :)

     
  • 2.42, arisu (ok), 14:11, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Как замена C++ годится только Rust.

    Уолтер Брайт и Андей Александреску обнялись и плачут: столько лет, столько усилий — и всё зря…

     
     
  • 3.52, Аноним (-), 19:04, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Как замена C++ годится только Rust.
    > Уолтер Брайт и Андей Александреску обнялись и плачут: столько лет, столько усилий — и всё зря…

    Да брось. D - уже не взлетел, Rust - только готовится не взлететь :)
    Правда она как топор бро :)

     
     
  • 4.53, arisu (ok), 19:17, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да брось. D - уже не взлетел

    чётко расписал. я повержен, мне нечего противопоставить такой мощной аргументации.

     

  • 1.4, Аноним (-), 13:33, 19/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    свет в конце тоннеля?
     
     
  • 2.5, anonymous (??), 13:53, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тьма вначале пути
     

  • 1.6, freedom4live (?), 14:01, 19/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А мне нравится... Гоурутины и каналы очень удобная штука...
     
     
  • 2.23, Аноним (-), 20:58, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А мне нравится... Гоурутины и каналы очень удобная штука...

    Они есть еще в десятке языков и либ

     
     
  • 3.32, Аноним (-), 22:50, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Akka для JVM появилась примерно в одно время с Go, то же самое с async/await в C#, Erlang - язык не для людей, в C++ нет GC, остальные типа Lua очень мало распространены. Вот и получается, что Go оказался в нужное время в нужном месте.
     
     
  • 4.46, .htaccess (??), 15:27, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В нормальном языке GC и не нужен, только если вы сами не в состоянии контролировать то, что выделяете.
     
     
  • 5.47, arisu (ok), 15:53, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > В нормальном языке GC и не нужен, только если вы сами не
    > в состоянии контролировать то, что выделяете.

    тебе часто говорят, что ты идиот? думаю, да: это слишком очевидное наблюдение.

     
     
  • 6.54, .htaccess (??), 19:30, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тебе сказать честно или подыграть, чтобы не обиделся на то, что тебя одного называют идиотом ? Эта самокритика меня просто убивает и да, это слишком очевидное наблюдение.
     
     
  • 7.58, arisu (ok), 19:16, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    то есть, постоянно. ок.
     

  • 1.9, Seyko (?), 16:22, 19/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сегментированная модель стека для гороутин -- это было самым тёмным местом в понимании (для меня). В документации на ранний Go ничего внятного не нашёл. Теперь вот, при замене на общеиспользуемую модель стека наконкц-то объяснили, как это работало...
     
     
  • 2.30, Аноним (-), 22:10, 19/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    "Опыт - это такая странная фигня, которая появляется у вас сразу после того как он был очень нужен".
     

  • 1.22, SpiritOfStallman (ok), 20:57, 19/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Юзаем. Своё место имеет. Устраивает.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру