LINUX.ORG.RU

Вышел Go 1.5

 


0

6

19 августа 2015 года вышел шестой стабильный релиз языка Go.

Основные изменения:

  • Компилятор и рантайм был транслирован с C на Go, убрав последние остатки C из кодовой базы Go;
  • сборщик мусора был полностью переписан, что позволило уменьшить паузы во время сборки мусора на порядки;
  • изменили значение GOMAXPROCS (количество одновременно исполняющихся горутин) с 1 до количества логических CPU;
  • изменения в линкере позволили распространять Go-пакеты в виде динамических библиотек, которые можно линковать с программами как на Go, так и на C.

>>> Подробности

★★★

Проверено: maxcom ()

Ответ на: комментарий от Debasher

А Tiobe выдает

А на Tiobe в общем похер

Кроме того, у Go очень неудачное название, чтобы однозначно оценивать популярность в поисковых системах, с чем работает Tiobe. Искать популярность по «Go» бессмысленно, а «Golang» используется сильно реже.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Но ведь тернарный оператор это удобно. Его использование - дело вкуса, конечно, но я бы предпочел все же сам выбрать, нужен он мне или нет.

JavaScript

Брендан Айк в итоге сам считает, что это было не лучшим решением - https://brendaneich.com/2012/04/the-infernal-semicolon/

А синтаксис Python это вообще скользкая тема, вроде бы хотели «как лучше», но в итоге очень многим не нравится «логика отступами». И в адрес проектов, использующих схожие принципы (HAML, node.js-овский Jade, да хоть Nim) тоже постоянно слышится критика по этому поводу.

В комментах уже упоминали, что сам создатель языка думает о целевой аудитории своего детища?

The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. --Rob Pike

tired_eyes ()
Ответ на: комментарий от tired_eyes

Но ведь тернарный оператор это удобно

Удобно.

Брендан Айк в итоге сам считает, что это было не лучшим решением

Я же не говорю, лучше это или хуже. Я говорю, что это явление достаточно массовое, если не смотреть на одни только Си-производные :)

но в итоге очень многим не нравится «логика отступами»

Могут выбирать что-то другое. Благо выбор есть. Мне эта логика нравится, я о таком думал ещё в 1990-м, когда познакомился с структурным программированием, но мне не хватило упёртости Гвидо, чтобы самому сделать что-то подобное :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Припекает? :) Понимаю, на свалку то не хочеццо, не никуда ты не денешься. Или учи Go или в дворники!

anonymous ()
Ответ на: комментарий от pivikov

А насчет GO, динамические либы это годнота, да и сборщик нужно проверить.

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

kodx ()
Ответ на: комментарий от tired_eyes

Но ведь тернарный оператор это удобно.

Тернарный оператор это нечитаемое убожество, нужен if expression (в go только if statement).

holuiitipun ()
Ответ на: комментарий от mix_mix

Не доказательство, язык новый и этот момент можно было обыграть иначе. Я остаюсь принципиальным сторонником Си-подобного синтаксиса.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от cawa

В том что надо их использовать и есть возможность неиспользовать.

loz ★★★★★ ()
Ответ на: комментарий от Debasher

Вот именно за такие «выразительные конструкции» Ruby и называют порой «ещё один Перл».

anonymous ()
Ответ на: комментарий от mix_mix

Так здесь до сих пор у одних ЭЛТ-мониторы, у вторых КОИ-8, а у третьих Паскаль. А ты им что-то про язык c едва ли не лучшими в индустрии реализациями CSP, GC и dependence analysis втираешь.

тоже мне новые технологии.

asaw ★★★★★ ()
Ответ на: комментарий от anonymous

Да в том то и дело, что это как java, python, perl, ruby, ... И тормозит также.

А теперь то же самое утверждение, но в цифрах с чётко описанной методологией. Пока что ты только продемонстрировал то, что ты не видел и понятия не имеешь ни о Java, ни о Python, ни о Perl, ни о Ruby, ни о Go.

anonymous ()
Ответ на: комментарий от asaw

Так кто утверждал, что они новые? Реализация офигенная. Это, знаете ли, очень многого стоит.

mix_mix ★★★★★ ()
Ответ на: комментарий от anonymous

Я понимаю, хотя и понимаю, что большинство из них в итоге будут не нужны. Это эволюция. Есть специалисты по языкам программирования, им чем-то нужно заниматься - придумывать новое. Вот они и придумывают. Для уже существующих языков от этого тоже большая польза - на них оказывается конкурентное давление, что заставляет их либо начать динамично развиваться (как C++ в последние годы), либо подохнуть за неконкурентоспособностью и ненужностью как следствие. А C и, особенно, C++ остаются конкурентоспособными во многом за счет того, что позволяют эффективно расширяться за счет библиотек. Это, на самом деле, далеко не всем языкам свойственно.

asaw ★★★★★ ()
Ответ на: комментарий от tired_eyes

Зачем точка с запятой, если есть \n? Писать однострочники?

sT331h0rs3 ★★★★★ ()
Ответ на: комментарий от loz

что использовать, а что нет, тут за вас уже решили

cawa ()
Ответ на: комментарий от anonymous

В голос. Я надеюсь, что у тебя есть блог, и что он написан исключительно на C. Дети, вы когда-нибудь поймёте, что язык программирования или технология не могут быть лучше без указания области применения? Роб Пайк не предлагает переписывать ядро Линукса на Go. В отличие от тебя, он умный и опытный программист. У Go есть область применения, в которой в разумных пределах можно пожертвовать скоростью исполнения ради скорости разработки. И в этой области Go лучше C или C++. Понимаешь, сынок, мир не чёрно-белый. Иногда выгоднее поставить три сервера вместо двух, но выкатить работающий продукт сегодня, а не через неделю. Твой код никого не волнует. Я для души вечерами пишу на Хаскелле и меня радует его академичность, я на Idris пытался писать для развлечения (ох, лютая штука, всем рекомендую), но для веб-проектов я собираю команду отъявленных питонщиков и делаю то, что нужно заказчику (а ему нужно продавать результаты своего труда в интернете, а не быстрый код или крутая база данных) за максимально сжатые сроки.

anonymous ()
Ответ на: комментарий от asaw

В каком-то смысле получше, чем в крестах. А что?

mix_mix ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Зачем ломать то к чему привыкли многие, ради каких вообще профитов?

Затем, что это не C и на C-like синтаксисе свет клином не сошёлся.

anonymous ()
Ответ на: комментарий от sT331h0rs3

Зачем скобки, если есть отступы? Писать однострочники?

fixed

holuiitipun ()
Ответ на: комментарий от holuiitipun
$isLeapYear = $year % 400 == 0 ? 1 :
              $year % 100 == 0 ? 0 :
              $year % 4   == 0 ? 1 :
                                 0 ; # default result

напиши это же на читаемом го неубожестве.

Deleted ()
Ответ на: комментарий от mix_mix

В каком-то смысле получше, чем в крестах.

В каком смысле получше, а в каком похуже?

А что?

А то, что если бы действительно было получше, тогда не пришлось бы хвастаться реализацией GC.

asaw ★★★★★ ()
Ответ на: комментарий от kodx

Простой подсчёт ссылок - это один из вариантов хорошего GC. Вы напрасно думаете, что в С++ нет GC. Просто здесь я сам решаю, нужен ли он мне и если нужен, то какой. Если вы внимательно читали новость, то поймёте, что на С++ я могу реализовать Go, если возникнет необходимость, а вот обратное неверно.

cawa ()
Ответ на: комментарий от sT331h0rs3

Зачем точка с запятой, если есть \n? Писать однострочники?

Разбиение выражений через '\n' увеличивает кол-во хаоса в синтаксисе, даёт ещё больще возможностей наделать «молчаливых» ошибок вида

a = b + c
 + d + e

Очень плахая идея давать «дописывать» выражения парсеру языка. Пратически везде в императивных ЯП без обязательной ';' есть такая проблема, либо в них приходится писать гогнокод вроде

 a = b + c +
       d + e

Такой код совершенно неудобно читать, т.е. когда нужно оставлять бинарный оператор в конце строки чтобы стелать мультистрочной выражение.

mashina ★★★★★ ()
Ответ на: комментарий от holuiitipun

в зависимости от ситуации я хочу писать то как Ахматова, то как Маяковский, а в этих ваших питонах такое невозможно; это вам fixed поставили, а вы радуетесь

cawa ()
Ответ на: комментарий от kodx

Снижение затрат на разработку.

Косвенно. Основная цель создания новых языков это ускорение полного цикла разработки и поддержки. Чтобы быть впереди, надо выкатывать рабочий продукт быстро и с минимумом ошибок, а неизбежные баги править ещё быстрее, в идеале — на этапе компиляции/интеграции.

anonymous ()
Ответ на: комментарий от mashina

т.е.

a = b + c +
    d + e

..читать не удобно, а

a = b + c
  + d + e;

..удобно или что имелось в виду?

Alexoy ()
Ответ на: комментарий от tired_eyes

В комментах уже упоминали, что сам создатель языка думает о целевой аудитории своего детища?

А как это высказывание характеризует язык как таковой? Или именно из-за этого Роб начнёт специально делать плохой язык? Я тебе больше скажу, большая часть всего программного кода написана посредственными программистами. И да, когда-то Sun с теми же самыми предпосылками создала уберпопулярную ныне Java. Я бы предположил, что у Пайка получится лучше, у него-то уровень знаний и талантов куда выше среднего. Впрочем, нет гарантий, что он сделает всё правильно с первого раза или вообще сделает, но эти правила одинаковы для всех.

anonymous ()
Ответ на: комментарий от cawa

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

loz ★★★★★ ()
Ответ на: комментарий от asaw

В каком смысле получше, а в каком похуже?

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

тогда не пришлось бы хвастаться реализацией GC

CSP без GC это какой-то особо извращённый мазохизм. Достаточно только взглянуть на Rust и осознать, что это лучшее, что можно было сделать.

mix_mix ★★★★★ ()
Ответ на: комментарий от anonymous

Я бы предположил, что у Пайка получится лучше, у него-то уровень знаний и талантов куда выше среднего.

За джавой тоже стояли не средние людишки, Гай Стил, например там отметился, и он до сих пор работает в r&d у оракула.

Хотя, надо отметить, что не все его идеи были приняты и реализованы (генерики одна из них).

loz ★★★★★ ()
Последнее исправление: loz (всего исправлений: 1)

Верно ли что это почти python, только компиляемый?

NoobeR ★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Зачем ломать то к чему привыкли многие, ради каких вообще профитов?

По моему, ты сильно переоцениваешь значимость этого. Привыкнуть очень просто, было бы (хоть небольшое) желание. А профиты местами есть.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от mix_mix

CSP без GC это какой-то особо извращённый мазохизм

Обоснуй.

tailgunner ★★★★★ ()
Ответ на: комментарий от cawa

Никто и не спорит, что можно сделать свой GC. Go служит цели упрощения процесса разработки, а тем самым снижение затрат и порога вхождения. Условно, можно нанят одного такого спеца, который и сам GC напишет и код красиво сделает, либо 3х писунов на Go, за те же деньги, которые напишут быстрее, а язык им задаст рамки, чтобы они делали меньше ошибок.

kodx ()
Ответ на: комментарий от tired_eyes

Наличие ключевого слова «var» оправдано в языках с динамической типизацией.

Сейчас ведь моден вывод типов, даже со статической типизацией слева типа очень часто не будет.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от DarkEld3r

По моему, ты сильно переоцениваешь значимость этого

Возможно. Причем синтаксис Python я еще понимаю - там я вижу причины, но когда вот так как в Go, вопреки привычкам и предпочтениям многих, на ровном месте выворачивают синтаксис ради ничтожных профитов - вот это вызывает сильный рвотный рефлекс и мощное отторжение. По крайней мере лишь у меня и всех кого я знаю...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от asaw

позволяют эффективно расширяться за счет библиотек. Это, на самом деле, далеко не всем языкам свойственно.

Хм... а можно несколько примеров того какие «расширения» возможны в плюсовых библиотеках и каких нет в других языках?

DarkEld3r ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Python я еще понимаю - там я вижу причины, но когда вот так как в Go, вопреки привычкам и предпочтениям многих, на ровном месте выворачивают синтаксис ради ничтожных профитов

+1. Синтаксис Go - какой-то бессмысленный выпендреж.

tailgunner ★★★★★ ()
Ответ на: комментарий от mix_mix

Ну, например, в классы обёртывать все виды сущностей не обязательно

Ну в С++ тоже сахар разный есть (типа BOOST_SCOPE_EXIT).

DarkEld3r ★★★★★ ()
Ответ на: комментарий от anonymous

что же им не сидится спокойно на C++

Напиши mock для шаблонного класса в тесте

vertexua ★★★★☆ ()
Ответ на: комментарий от I-Love-Microsoft

вызывает сильный рвотный рефлекс и мощное отторжение. По крайней мере лишь у меня и всех кого я знаю...

Не буду защищать Go, тем более, что сам от него не в восторге. Просто повторю мысль, что привыкнуть довольно легко ко всему. Мне тоже сишный синтаксис (только трактую я это немного шире) нравится, вероятно, это и есть «синдром утёнка». Тем не менее, питон, хаскель и даже лисп синтаксисом негативных эмоций не вызывают. А ты ведь про них и про раст тоже много «хорошего» сказать можешь.

Ну и знакомые тоже как-то без рвотного рефлекса об этих языках говорят.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от mix_mix

Ну, например, в классы обёртывать все виды сущностей не обязательно, плюс более тонкий контроль за счёт того,

В С++ тоже не обязательно обертывать никакие виды сущностей в классы для использования RAII.

что defer принимает хоть замыкание.

Не смеши мои тапочки, как оно может быть лучше? Чем? Тем, что ты должен оборачивать всё в функции? Или тем, что этот defer прибит гвоздями к области видимости функции? Это просто Ad-Hoc костыль какой-то.

asaw ★★★★★ ()
Ответ на: комментарий от loz

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

iu0v1 ()

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

RedPossum ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.