The OpenNET Project / Index page

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

Релиз языка программирования Go 1.15

12.08.2020 21:17

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

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

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

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

  • Существенно улучшена работа компоновщика, как в области повышения скорости работы и сокращения потребления памяти, так и в направлении упрощения сопровождения кода. При тестировании в операционных системах, использующих формат исполняемых файлов ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), компоновка типового набора крупных Go-приложений стала выполняться на 20% быстрее, а потребление памяти в среднем уменьшилось на 30%. Повышение производительности стало возможным благодаря переходу на новый формат объектных файлов и переработке внутренних стадий для повышения уровня распараллеливания работ. Собственный компоновщик теперь используется по умолчанию на системах linux/amd64 и linux/arm64 в режиме "-buildmode=pie", в котором теперь не требуется применения Си-компоновщика.
  • В runtime значительно улучшено распределение мелких объектов на системах с большим числом ядер CPU и сокращены задержки. При сбоях обеспечен вывод значений с числовыми и строковыми типами, вместо показа адреса. При отправке Go-приложению сигналов SIGSEGV, SIGBUS и SIGFPE, в случае отсутствия обработчика os/signal.Notify, приложение будет завершено с выводом трассировки стека (ранее поведение было непредсказуемым).
  • Проведена оптимизация компилятора, позволившая сократить размер генерируемых исполняемых файлов в среднем на 5% за счёт прекращения включения некоторых метаданных для сборщика мусора и более агрессивной чистке неиспользуемых метаданных.
  • В компилятор и ассемблер добавлен флаг "-spectre" для включения защиты от атак класса Spectre (для большинства программ не требуется, включение опции может быть оправдано лишь для отдельных очень специфичных случаев).
  • В сертификатах X.509 объявлено устаревшим поле CommonName, которое теперь не трактуется как имя хоста в случае отсутствия поля Subject Alternative Names.
  • В команде "go" в переменной окружения GOPROXY теперь можно перечислять несколько прокси, разделённых запятой или символом "|". Если первый прокси в списке вернёт ошибку (404 или 410), то будет предпринята попытка обращения через второй прокси и т.д.
  • В утилите vet добавлено предупреждение о попытке преобразования из string(x), если "x" является целочисленным типом, отличным от rune или byte.
  • В утилиту objdump добавлен флаг "-gnu" для поддержки вывода дизассемблерных дампов в синтаксисе GNU assembler.
  • Добавлен новый пакет time/tzdata, позволяющий встроить в программу БД с данными о часовых поясах.
  • Из исходных текстов и документации убраны фразы whitelist/blacklist и master/slave, вместо которых теперь используются "allowlist", "blocklist", "process", "pty", "proc" и "control".
  • Внесена большая порция незначительных улучшений в стандартную библиотеку.
  • Добавлена поддержка OpenBSD 6.7 в режимах GOARCH=arm и GOARCH=arm64 (ранее поддерживались только GOARCH=386 и GOARCH=amd64).
  • Продолжено развитие 64-разрядной платформы RISC-V (GOOS=linux, GOARCH=riscv64).
  • Для 32-разрядных систем x86 в следующем выпуске будут подняты минимальные требования к системе - продолжат поддерживаться только процессоры с SSE2. Для сборки в режиме GOARCH=386 потребуется как минимум Intel Pentium 4 (выпущен в 2000 году) или AMD Opteron/Athlon 64 (выпущен в 2003 году).


  1. Главная ссылка к новости (https://blog.golang.org/go1.15...)
  2. OpenNews: Релиз языка программирования Go 1.14
  3. OpenNews: Уязвимости в системе загрузки модулей для языка Go
  4. OpenNews: Обновление языка Go 1.11.5 и 1.10.8 с устранением уязвимости
  5. OpenNews: Проект Go опубликовал собственный шрифт для программистов
  6. OpenNews: Язык Go избавляется от неполиткорректных терминов whitelist/blacklist и master/slave
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/53539-golang
Ключевые слова: golang, go
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (153) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, СССР (?), 23:38, 12/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     
     
  • 2.7, InuYasha (??), 00:18, 13/08/2020 Скрыто ботом-модератором     [к модератору]
  • –14 +/
     

  • 1.5, Аноним (5), 00:00, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    А эти, как их там, женерики еще не завезли?
     
     
  • 2.6, Аноним (6), 00:15, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Из-за таких, как ты, ненужноженерики таки пропихнут в 2.0.
     
     
  • 3.11, Аноним (11), 00:30, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +15 +/
    > ненужноженерики

    А вот и подтянулись любители void* и прочих непроверяемых в компайл-тайме тайп-кастов.

     
     
  • 4.14, Аноним (6), 01:50, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А вот и подтянулись знатоки void* и непроверяемых тайп-кастов в go. Ты бы матчасть подтянул прежде чем троллить, а то скучно с тобой.
     
  • 4.16, Аноним (16), 02:08, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Неосиляторы подтянулись
     
  • 4.155, Брат Анон (?), 13:40, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и чушь ты несёшь, брат анон. Лучше бы помолчал.
     
     
  • 5.182, Аноним (182), 19:29, 16/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Брат Анон на Великом Троличьем Посту
     
     
  • 6.184, Брат Анон (?), 10:29, 19/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Брат Анон на Великом Троличьем Посту

    Брат Анон всегда смотрит за тобой, Аноним! Чтобы ты глупостей писал поменьше.

     
  • 3.68, Аноним (68), 10:10, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Справедливости ради, компайл-тайм дженерики иногда нужны.

    Подчеркну: иногда.

    Учитывая особенности языка, в большинстве конечного кода они не нужны, это правда.
    Там где в джавке/до-диезе/плюсах дженерики вообще единственный выход, в го просто никто так не пишет, чтобы они нужны были.

    Но порой в коде для библиотек, к примеру, не хватает. Опять же, проблема не настолько большая как её раздувают свидетели дженериков.

     
     
  • 4.75, proninyaroslav (ok), 11:11, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Но порой в коде для библиотек, к примеру, не хватает.

    Вот как раз для библиотек язык без дженериков - провальная идея. Понятно что в обычном приложении/сервере дженерики редко используются напрямую, но очень много и часто через библиотеки. Можно конечно извернуться, писать в C-style и докучи применять рефлексию (а она в stdlib применяется повсюду), только потому что Роб Пайк имеет личную неприязнь к ним и дженерики снились ему в синтаксических кошмарах, но ведь это не сделает код библиотеки понятнее, красивее и компактнее. Да, указатели на void были единственным вариантом в эпоху создания C, но сейчас, когда дженерики есть практически во всех языках, создать язык без них как то странно, хотя причины понятны и уже ранее озвучены.

     
     
  • 5.80, Аноним (6), 11:26, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Можно конечно извернуться, писать в C-style и докучи применять рефлексию

    Попробуй не изворачиваться и применять интерфейсы (непустые).

     
     
  • 6.88, proninyaroslav (ok), 12:00, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Интерфейсы не могут заменить дженерики, как и наоборот. Более того, сами интерфейсы могут содержать дженерики. Допустим, простейший интерфейс, который может принимать любые типы, например Comparable<T> с методом compareTo(other T). Каким образом его переписать, не используя дженерики? Только с пустым интерфейсом, что аналогично void*. И таких юзкейсов как дженерик + интерфейс очень много, что позволяет делать гибкие реализации.
     
     
  • 7.132, алгол (?), 17:48, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    не надо только г из джабы. уже есть одна. в C++ templates:)
     
     
  • 8.134, proninyaroslav (ok), 17:52, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы, видимо, кроме java и c не знаете языков с дженериками А их много, поверьт... текст свёрнут, показать
     
  • 7.157, Аноним (6), 16:59, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Интерфейсы не могут заменить дженерики, как и наоборот.

    А и не надо их заменять в лоб. Надо умеючи использовать, чтобы получить такой же результат, затратив не больше усилий.

     
     
  • 8.162, proninyaroslav (ok), 17:27, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А вот для этого нужен выразительный язык А если язык простой и скудный, то и бо... текст свёрнут, показать
     
  • 2.71, Z (??), 10:45, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда желание засрать лаконичный и красивый язык, всякой ненужной лабудой
     
  • 2.73, Аноним (73), 10:55, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Уже можно поиграться https://go2goplay.golang.org/p/OdjDyDpjofa
     
     
  • 3.131, Anonn (?), 17:44, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ниже комментарий про 10 отличий посмотрите.
     
  • 2.79, Аноним (79), 11:23, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да уж лучше бы не завозили чем так как собираются сделать в 2.0.
     

  • 1.8, pda (?), 00:25, 13/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +8 +/
     

     ....ответы скрыты (3)

  • 1.9, Аноним (9), 00:27, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Для 32-разрядных систем x86 в следующем выпуске будут подняты минимальные требования к системе - продолжат поддерживаться только процессоры с SSE2. Для сборки в режиме GOARCH=386 потребуется как минимум Intel Pentium 4 (выпущен в 2000 году) или AMD Opteron/Athlon 64 (выпущен в 2003 году).

    А чем они это мотивируют? Почему нельзя ориентироваться на процессоры 2006 хотя бы? На 386 (встройки) я так понимаю всё равно не запустится, а помимо этого ведь никакого смысла нет вроде бы?

     
     
  • 2.21, Gefest (?), 02:34, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это в чьей голове смысла нету ?? P4 win7 1-2gb ram , такие машие все еще работают. Некоторым образом ..
     
  • 2.22, wtfbrother (?), 02:37, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это кто так не любит процессоры без Intel Me ??!!
     
     
  • 3.27, Аноним (26), 03:48, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да это интел забыл залогиниться.
     
  • 2.31, Anonn (?), 04:30, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Поддержкой видимо. Берете предыдущий реализации и спокойно работаете...
     
  • 2.51, Аноним (51), 07:47, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше бы вообще дропнули x86 и все процы без SSE4.2, x64 нормальный уже пятнадцать лет повсеместно.
    И силы бы не распыляли, пилили бы только для релевантного железа.
     
     
  • 3.53, Аноним (53), 08:05, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И превратились бы в Раст.
     
  • 3.58, Аноним (58), 09:02, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Некоторые до сих пор использую железо из 60-х и готовы тратить сотни миллионов $ что бы оно работало. Когда все люди будут готовы тратить миллионы $ на новое оборудование, тогда они прекратят поддержку старья и будут выпускать каждый год новые и прекрасные железки.
     
     
  • 4.60, Аноним (9), 09:04, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >до сих пор использую железо из 60-х

    Ну это явно не от хорошей жизни, оно перестало справляться со своими задачами ещё в 70.

     
     
  • 5.65, Твой батя (?), 09:45, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В том то и дело, что оно прекрасно справляется со своими задачами, которые с 60-х не менялись.
     
     
  • 6.69, Рлтаал (?), 10:19, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, отлично справляется, если на входе и выходе стоит кластерок крутящий в кубере костыли для этого легаси
     
     
  • 7.95, 1 (??), 12:25, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ээээ ... зачем для z/390 кластерок на нём же ?
     
     
  • 8.173, Аноним (173), 15:35, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Похоже, выше на связи поколение кубернётесов и чпокеров Они не подозоревают о с... текст свёрнут, показать
     
  • 5.94, Аноним (58), 12:19, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Большинство банков и госорганизаций США работает на старых компьютерах. F-22 использует 386 процы, F-53 старые PowerPC, наверное у их создателей нет денег или может быть мощности этих железок хватает?
     
     
  • 6.104, Аноним (104), 13:36, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее там сидят люди, которые на этих железках всю жизнь работали в своих кб и не доверяют новому.
     
     
  • 7.129, Анонолекс (?), 17:18, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    1 Крупнейшая в России а может и в мире компания, производящая трубы используе... большой текст свёрнут, показать
     
     
  • 8.139, Здрасьте (?), 21:01, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пункт 8470 2 делают не поэтому, у вас какой-то инсайд дебильный, а потому что ... текст свёрнут, показать
     
     
  • 9.176, anonimous (?), 01:59, 16/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Популярные заблуждения про радиационную стойкость микросхем https habr com ru ... текст свёрнут, показать
     
  • 7.153, www2 (??), 12:38, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Радиационно-стойкие микросхемы стоят безумных денег, т к во-первых производятся... большой текст свёрнут, показать
     
  • 4.81, Sarcastic scutosaurus (?), 11:31, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > использую железо из 60-х и готовы тратить сотни миллионов $ что бы оно работало
    > Когда все люди будут готовы тратить миллионы $ на новое оборудование

    Да, непонятно, когда, наконец, люди начнут рационально мыслить и осознают, что выгоднее тратить миллионы, а не сотни миллионов.

     
     
  • 5.84, Аноним (9), 11:45, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, непонятно, когда, наконец, люди начнут рационально мыслить и осознают, что выгоднее
    > тратить миллионы, а не сотни миллионов.

    Как только исчезнет коррупция, так сразу и начнут. Не при нашей жизни это будет.

     
     
  • 6.114, Аноним (114), 15:15, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не когда а если.
     
  • 6.138, EnemyOfDemocracy (?), 20:58, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Коррупция -- проявление "власти народа" в виде проявления меркантильного своеволия одного/двух/нескольких заинтересованных в личном обогащении индивидов. Когда будет побеждена демократия и демократы перестанут со словами "мы здесь власть" класть к себе в карман чужое, тогда и коррупция будет побеждена.
     
  • 5.106, YetAnotherOnanym (ok), 13:44, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кагбэ, есть вариант, что миллион на новое оборудование - это только верхушка айсберга. Если взять простой мощностей, переобучение персонала, время на отлаживание после пуска и прочее, а самое главное - риск конкретному управленцу получить по башке, если с этой модернизацией что-то пойдёт не так, то нуевонах, пусть остаётся как есть.
     
     
  • 6.160, Аноним (6), 17:10, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > переобучение персонала

    Реальная проблема с легаси в том, что обученного персонала днём с огнём не сыщешь. Более того, учиться всякому старью в принципе никто не хочет. Так что в действительности всё не так, как на самом деле.

     
  • 3.74, Аноним (6), 11:11, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > x64 нормальный уже пятнадцать лет повсеместно.

    x86_64 15 лет не повсеместно, а местами. Повсеместно лет 5 примерно (или когда там 32-битные атомы выпускать перестали?).

     
     
  • 4.90, Аноним (90), 12:02, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    x86_64 в большинстве мест с 2007(8)-го, где-то. А 32-битные атомы перестали после 2009-го.
     
  • 4.91, asdasd (?), 12:04, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > (или когда там 32-битные атомы выпускать перестали?).

    Начиная с 2008-го, если что, а это 12 лет, а не 5.

     
  • 3.89, asdasd (?), 12:02, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –8 +/
    >  все процы без SSE4.2

    Согласен, AMD ненужно.

     
     
  • 4.97, Аноним (90), 12:27, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как минимум, SocketAM3, FM2+ поддерживают SSE4.2.
     
     
  • 5.159, Аноним (6), 17:06, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сокет поддерживает инструкции? Чего только не прочитаешь на опеннете…
     

  • 1.12, an0nymous (?), 01:00, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Из версии в версию пишут что в сабже заимствования из питона. Какие (несмотря на утинную типизацию и foreach)?
     
     
  • 2.76, Аноним (6), 11:13, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да никаких. Просто автор побоялся писать про limbo, о котором тут никто не слышал.
     
  • 2.78, Карабьян (?), 11:23, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это, наверное, наличие отсутствия точек с запятой в конце строки
     
  • 2.102, Аноним (102), 13:08, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если структурную типизацию считать признаком Питона, то OCaml и Haskell тогда тоже питоны.
     
  • 2.110, аноним12345 (?), 15:11, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Базовые структуры данных взяты из питона
    Гоу к питону имеет весьма отдаленное отношение
     
  • 2.154, www2 (??), 12:41, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Слайсы и range для перебора значений в слайсах, например. Ещё кортежи в неявном виде. В том числе можно вернуть несколько значений из функции сразу.
     
     
  • 3.177, anonimous (?), 02:04, 16/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так это все матлаб

    https://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matl
    Or the subscript can itself be another vector:
    v([1 5 6])      % Extract the first, fifth, and sixth elements
    The colon notation in MATLAB provides an easy way to extract a range of elements from v:
    v(3:7)     % Extract the third through the seventh elements

    https://www.mathworks.com/help/matlab/ref/function.html
    Function with Multiple Outputs
    Define a function in a file named stat.m that returns the mean and standard deviation of an input vector.
    function [m,s] = stat(x)

     

  • 1.13, Аноним (13), 01:44, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Зачем он нужен когда есть RUST?
     
     
  • 2.18, Аноним (26), 02:24, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Зачем нужен RUST когда есть он?
     
  • 2.23, leap42 (ok), 02:52, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Зачем он нужен когда есть RUST?

    чтобы в 10* раз меньше усилий и времени на написание кода тратить (сам код будет всего в 2 раза медленнее)

    *количество будет разным для всех, привёл своё +-

     
     
  • 3.28, Аноним (26), 03:51, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > в 2 раза медленнее

    причём медленнее на расте будет :) ведь чем сложнее язык - тем невероятней написать оптимальный алгоритм.

     
     
  • 4.82, Аноним (82), 11:34, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    unsafe поможет тебе, юный падаван.
     
     
  • 5.87, Аноним (87), 11:51, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем тогда Раст? А для сейфа всегда есть Го
     
  • 5.118, Аноним (26), 15:17, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > unsafe поможет

    Вся суть раста: либо тормоза, либо как в си.

     
     
  • 6.141, Аноним (141), 21:44, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> unsafe поможет
    > Вся суть раста: либо тормоза, либо как в си.
    >> unsafe
    > либо как в си.

    Вся суть опеннетных экспердов: очередной пук в лужу из-за незнания предмета.

     
  • 4.101, proninyaroslav (ok), 12:46, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сложность раста только на уровне zero-cost абстракций до компиляции, это уже никак не влияет на производительность в рантайме.
     
     
  • 5.119, Аноним (26), 15:18, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Очень интересно, продолжай рассказывать сказки...
     
     
  • 6.125, proninyaroslav (ok), 16:30, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Неверие признак незнания
     
  • 3.108, Аноним (108), 14:20, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Так ты наоборот в 10 раз больше усилий приложишь. Чем примитивнее язык, тем более объемные конструкции приходится использовать. Попробуй написать "Мама мыла раму" на Токипоне, аналогия прямая.
     
     
  • 4.124, leap42 (ok), 16:22, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Так ты наоборот в 10 раз больше усилий приложишь...

    сразу видно: аноним ни на одном из этих двух серьёзного проекта не написал. а ещё живет где-то в 80-х без богатой стандартной библиотеки и github с тысячами готовых и пригодных либ.

     
     
  • 5.150, Аноним (150), 10:09, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    У Go нет богатой стандартной библиотеки, а перемалывать Github на каждый чих - это сомнительное удовольствие.

    Мне говорят, что я напишу в 10 раз меньше кода - не напишу, по умолчанию я напишу в разы больше, а как уже избавляться от этого недостатка и нужно ли в принципе - это дело десятое.

     
     
  • 6.152, leap42 (ok), 11:27, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У Go нет богатой стандартной библиотеки...

    многоуважаемый "эксперт" признался, что на Go ни разу не писал

    > а перемалывать Github на каждый чих - это сомнительное удовольствие.

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

    > Мне говорят, что я напишу в 10 раз меньше кода - не
    > напишу, по умолчанию я напишу в разы больше, а как уже
    > избавляться от этого недостатка и нужно ли в принципе - это
    > дело десятое.

    единственное количество кода которое вы можете написать - это hello world, и то не факт

     
     
  • 7.163, Аноним (150), 18:08, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Чтобы продолжить этот разговор тебе стоит попробовать Scala / Haskell, на худой конец Kotlin. Go - это тоска по ушедшей молодости Пайка и Томпсона, унылые отголоски из 70-х, и больше ничего.
     
     
  • 8.181, Анончик (?), 11:52, 16/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, функциональные яп вы теперь выдаёте за модно-молодежно ... текст свёрнут, показать
     
  • 2.54, Аноним (53), 08:07, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Мозилла всю команду Раста уволила несколько дней назад.
     
     
  • 3.83, Аноним (82), 11:35, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Давно пора.
     
     
  • 4.85, Аноним (87), 11:48, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    На самом деле перевели в Фаундейшн без ЗП. Посмотрим что они там накоммитят за бесплатно.
     
     
  • 5.148, Теща (?), 04:23, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тоже что и в D. Идея прекрасная, реализация хорошая, но нету денег - нет движения.
     
  • 3.147, Аноним (147), 00:34, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Джентльменам на опеннете принято верить на слово.
     
  • 2.100, proninyaroslav (ok), 12:43, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Звучит как "зачем нужен язык со сборкой мусора, когда есть язык c compile-time управлением памятью, но с более сложной семантикой по этой причине".
     
  • 2.111, аноним12345 (?), 15:11, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Раст создан для системщиков
    Гоу создан для прикладников
     
     
  • 3.117, Аноним (26), 15:16, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Раст ... для системщиков

    Оборжаться, в мурзилке - системщики :)

     
  • 3.137, Аноним (137), 20:31, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А системнщики-то у не знали. И продолжали использовать нормальные языки.
     
  • 2.121, Аноним (26), 15:25, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем нужна вилка, когда есть ложка и палочки?
     

  • 1.17, Аноним (17), 02:15, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    и сюда sjw добрались. а будет весело если кто-то форкнет и вернет как было)
     
  • 1.19, Аноним (19), 02:27, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > "blocklist"

    Гениально! Надо было сделать ещё и "whotelist", для симметрии и мнемоничности

     
     
  • 2.50, kamagan (?), 07:37, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне вот интересно когда китайцы и прочие азиаты начнут оскарбляться на «жёлтую прессу».
     
     
  • 3.57, Аноним (57), 08:38, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Китайцам до лампочки. Во-первых, по сравнению с их родной партией и их ограничениями, это все конфетки. А, во-вторых, в то время, как эти все ребята страдают херней с разными переименованиями, китайцы с них вовсю стрегут бабосики и перекупают их же компании.
     

  • 1.32, Anonn (?), 04:32, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Меня смущает прототип дженериков, который они хотят добавить. Он ужасен. :(
     
     
  • 2.77, Аноним (6), 11:15, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А разве бывают нормальные? Покажи, хочется взглянуть.
     
     
  • 3.86, Anonn (?), 11:49, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Изобретать ничего не надо. Лучший generic одинаков во многих языках:
    T myMax(T x, T y)
    {
        return (x > y) ? x : y;
    }

    Все. Теперь смотрим на Go-путь:

    func Print(type T)(s []T) {
    // same as above
    }

    Вызов:
    Print(int)([]int{1, 2, 3})

    Просто бред. Излишество. "Ненужно". Если примут, это будет худшее дополнение языка.

     
     
  • 4.107, вы (?), 13:53, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А мне норм https://go2goplay.golang.org/p/a-Kx6GadoTP
     
     
  • 5.127, Аноним (6), 17:10, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Найдёшь 10 отличий?
    https://play.golang.org/p/0owzSs6UPb_U
    Хотел бы я взглянуть на пример использования дженериков в go, который действительно облегчает жизнь.
     
     
  • 6.133, вы (?), 17:50, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://blog.golang.org/why-generics
     
     
  • 7.151, Anonn (?), 10:22, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, выходит реализация мин выглядит такой:

    contract Ordered(T) {
        T int, int8, int16, int32, int64,
            uint, uint8, uint16, uint32, uint64, uintptr,
            float32, float64,
            string
    }

    func Min (type T Ordered) (a, b T) T {
        if a < b {
            return a
        }
        return b
    }

    Не говорите, что это нормально. Хорошо, этот min/max они добавят в math (или куда?). Но скажем, теперь каждый дженерик подразумевает какую-то доп. когнитивную нагрузку на поиск определения типов для него. Разработчик может переопределить свои контракты - и понеслась....


    func New (type Node, Edge G) (nodes []Node) *Graph(Node, Edge) {

    весело ...

     
  • 7.161, Аноним (6), 17:21, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Даже там то же самое, как ни странно.
    func Reverse(s []interface{}) {…
     
  • 4.185, Андрей (??), 14:30, 20/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому D) Лучший синтаксис, хоть и также gc.
     
     
  • 5.186, Андрей (??), 14:32, 20/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    dlang
     
  • 2.98, proninyaroslav (ok), 12:37, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Они уже бесполезны в го, так как и stdlib, и другие крупные бибилотеки проектировались без них. Переписывать вряд ли кто будет, даже если сильно захотят. А уж команда го переписывать stdlib явно не будет, по идеологическому Пайковскому "не нужно" в том числе.
     

  • 1.33, Аноним (33), 05:12, 13/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

     ....ответы скрыты (7)

  • 1.36, Sergey (??), 06:02, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И какии боком там Питон ? Если бы к примеру Модула, то еще можно понять ...
     
     
  • 2.55, Cinderella (?), 08:16, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Автор бездумно копипастит про Питон, хотя всем вменяемым известно что заимствования там были из Делфи
     
     
  • 3.59, Аноним (59), 09:04, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дельфи ? Хм. Советую для начала почитать про Вирта, потом про Паскаль, потом про Модулу ...
     
  • 3.72, Аноним (73), 10:52, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В самой популярной книге по языку есть такая схема https://1.bp.blogspot.com/-Hwxp4W_RdUE/W7o_P4XpxqI/AAAAAAAABAU/y8We1Hxk4EgFfrR
     
     
  • 4.93, Аноним (59), 12:09, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    +1. Ну и где там Питон ? (про Дельфи я молчу, хотя по сути это и не язык ;))
     
     
  • 5.178, anonimous (?), 02:27, 16/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле не язык, Объектный паскаль это все таки не Вирт, а уже Хейлсберг (до его перехода в МС на сишарп и тайпскрипт). Оличия от классического П примерно как у просто си и плюсов.

    https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D0%B9

    Отличия ОП от классического П примерно как у просто си и плюсов.

    https://castle-engine.io/modern_pascal_introduction_russian.html

     

  • 1.52, Аноним (73), 07:50, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >с отдельными заимствованиями из языка Python

    Какими именно?

     
  • 1.70, Иваня (?), 10:37, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Ура, мой любимый язык зарелизился, спасибо!
     
  • 1.92, Сергей Пробелов (ok), 12:07, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не знаю, почему вспоминают Питон: возможно, так как Гуглы на стэке Питон+С раньше пилили часть своих сервисов, пока на Го не перевели. Или же маркетолог поработал. А может всё просто - точку с запятой в конце строки ставить не надо.

    Но почему регулярно не упоминается Лимбо (о чём писал товарищ-аноним выше)?! Очень непонятно, какое-то очередное переписывание истории. И на схеме (выше) Лимбо так же отсутствует.

    Забавно, что в официальном доке регулярно встречаются упоминания Юникса, Плана-9 и Винды. Вот упоминание Линукса пока не попадалось, вероятно, ещё не добрался...

     
     
  • 2.99, proninyaroslav (ok), 12:40, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Местами го похож на питон: простотой (якобы), структурами данных, деструктуризацией возвращаемых значений, for in range и т.д.
     

  • 1.103, user90 (?), 13:22, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вроде Restic на нем? - Хороший "комбайн". А других проектов что-то и не вспомнить..
     
     
  • 2.140, Аноним (140), 21:02, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    rclone, docker, kubernetes, prometheus, grafana, traefic, terraform, vault, gitea/gogs, etcd, hugo
     

  • 1.105, Аноним (33), 13:36, 13/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

     ....ответы скрыты (2)

  • 1.112, Аноним (114), 15:12, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Для сборки в режиме GOARCH=386 потребуется как минимум Intel Pentium 4 (выпущен в 2000 году) или AMD Opteron/Athlon 64 (выпущен в 2003 году).

    А смысл вообще тогда оставлять поддержку 32 бит x86? Это ведь amd64 процессоры.

     
     
  • 2.120, Аноним (9), 15:22, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кукурузбёрст был 32 битным (до 2005 что ли). Это всё пустое, 32 битные мокроконтроллеры и встройки ещё можно найти. Но 64 битные процессоры того времени были не очень качественными и забагованными. В 2006 появился core2 -- его можно считать первым 64 битным процессором интел. Собственно, сегодня весь софт собирается под эту архитектуру (обидно, что софт собранный под более новые архитектуры и тормозит больше на сегодняшних процессорах). Вероятно, в самих процессорах как раз оптимизации под машинный байткод той древней ревизии.
     

  • 1.122, Аноним (122), 15:37, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Кажому россиянину по эльбрусу, а то сидят на пеньках и Go не могут
     
     
  • 2.123, Аноним (33), 15:53, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Лично я буду только за, если мне эльбрус дадут, да еще бесплатно. В Go могу, но не хочу ибо гуано.
     
     
  • 3.149, Аноним (10), 06:19, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но вам его и не за бесплатно <s>никогда</s> пока не дадут, бгг
     
  • 2.128, Аноним (6), 17:18, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Давно ли эльбрус может в го?
     
  • 2.130, Анонолекс (?), 17:28, 13/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эх, мне бы Эльбрус (сразу тачкой, сам проц мне не к чему)... Вот я бы развернулся!

    P.S. Не Тео Де Раадт, но тоже чего-нибудь нахимичил... ;-)

     

  • 1.135, Аноним (135), 20:20, 13/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    вот когда к go добавят to, тогда наступит счастье всем goto'шникам
     
     
  • 2.158, Аноним (6), 17:05, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В go есть goto. Кен счастлив.
     

  • 1.164, Аноним (164), 22:01, 14/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    заметил такую иронию во всех статьях про go - чаще всего пишут про то как обмануть GC и уменьшить время траты на его циклы. А смысл тогда этого языка если все сводится к борьбе с основной фичей? Я уже на С посижу. Мне воевать с решением задачи нужно, а не с языком и его компилятором.
     
     
  • 2.165, Карабьян (?), 00:27, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > заметил такую иронию во всех статьях про go - чаще всего пишут
    > про то как обмануть GC и уменьшить время траты на его
    > циклы. А смысл тогда этого языка если все сводится к борьбе
    > с основной фичей? Я уже на С посижу. Мне воевать с
    > решением задачи нужно, а не с языком и его компилятором.

    Так совсем его отключить нельзя?

     
     
  • 3.166, Аноним (166), 01:58, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В теории можно но он вшит в управление памятью такими костылями, что лучше не отключать, а просто обманывать его путём создания всяких пуллов для ресайклинга уже выделенной памяти
     
     
  • 4.167, leap42 (ok), 05:13, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В теории можно но он вшит в управление памятью такими костылями, что лучше не отключать, а просто обманывать его путём создания всяких пуллов для ресайклинга уже выделенной памяти

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

     
     
  • 5.169, Аноним (166), 05:34, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну давай отключи и попробуй  запустить в проде, потом напиши как у тебя с течкой
     
     
  • 6.172, leap42 (ok), 08:05, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну давай отключи и попробуй  запустить в проде, потом напиши как у тебя с течкой

    "течка" у мамкиных илитистов (которые пишут в лучшем случае лабы на своём лучшем в мире языке)

    если использовать Go без GC, память и выделять, и освобождать нужно руками

     
  • 5.170, Аноним (164), 06:03, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да ты можешь отключить одной командой или передать через переменную, но тут возн... большой текст свёрнут, показать
     
     
  • 6.171, leap42 (ok), 08:02, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    никакой загводки тут нет (ну если не выдумывать её изо всех сил пытаясь меня критиковать)

    Go - язык с GC, и это - несомненный плюс. Точнее скажем так: есть задачи (вроде захвата звука с железа) где GC - это минус. Но их очень мало. Во всех остальных случаях плюс. Ну для профессиональнх программистов. Тех самых, что работают программистами за деньги, тех, кто решает бизнесс-задачи. Мамкины элитисты, которые учили ЯП 10 лет чтобы хвастаться в интернете что они лучше других, а потом начали переучиваться т.к. вышла новая версия с кучей новых фич, а старый код (и все их знания) теперь legacy, и писать так неидеоматично (ребята во дворе засмеют), могут со мной не согласиться конечно, но кого интересует их мнение?

    для кого языки с GC оказались недостаточно хороши для обработки http (фактическое приложение, а не реверс-прокси)? могу припомнить только Msft. но это не проблема управляемого кода, ведь Google и Facebook как-то справляются. так что это проблема Msft и их проблем с архитекутрой и масштабированием.

    ещё раз коротко: Go позволяет писать без GC (в стиле Си например: malloc, free и sizeof на месте), но это влёчет (вполне ожидаемо) кучу проблем, поэтому профи будет делать такое только при острой необходмости. например при захвате звука с железа. "борьба с GC во всё мире" - это или юношеский маскимализм, или полная некомпетентность и профнепрегодность, или, что самое плохое, психическое расстройство в духе "набижать в тему про Go и пытаться убедить всех вокруг в том, что он плох ибо не похож на тот самый лучший в мире язык" (который должен был "всех похоронить", но оказался никому не нужен (плохой маркетинг, скажут невменяемые адепты))

     
     
  • 7.175, Аноним (166), 17:31, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Суть темы первого комментария в этой ветки была про то что 171 профи 187 из ... большой текст свёрнут, показать
     
     
  • 8.179, leap42 (ok), 05:15, 16/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    не 1 5 тыс в 10 лет, а 1 млн в минуту оптимизация начинается где-то с этого мом... текст свёрнут, показать
     
     
  • 9.180, Аноним (166), 06:07, 16/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    уже 18 лет работаю в Comcast Ой уже 19 лет и на вопрос я живу в Фили Да, я так... текст свёрнут, показать
     
     
  • 10.183, leap42 (ok), 02:41, 17/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    аааа пощади, человек-анекдот прям МТИшная звезда пришла на opennet чтобы какую... текст свёрнут, показать
     
  • 3.168, leap42 (ok), 05:17, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> заметил такую иронию во всех статьях про go - чаще всего пишут
    >> про то как обмануть GC и уменьшить время траты на его
    >> циклы. А смысл тогда этого языка если все сводится к борьбе
    >> с основной фичей? Я уже на С посижу. Мне воевать с
    >> решением задачи нужно, а не с языком и его компилятором.
    > Так совсем его отключить нельзя?

    можно конечно, просто переменную окружения экспортируете. ну или прямо из кода:

    https://golang.org/pkg/runtime/#hdr-Environment_Variables
    https://golang.org/pkg/runtime/debug/#SetGCPercent

     
     
  • 4.174, Карабьян (?), 17:16, 15/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >>> заметил такую иронию во всех статьях про go - чаще всего пишут
    >>> про то как обмануть GC и уменьшить время траты на его
    >>> циклы. А смысл тогда этого языка если все сводится к борьбе
    >>> с основной фичей? Я уже на С посижу. Мне воевать с
    >>> решением задачи нужно, а не с языком и его компилятором.
    >> Так совсем его отключить нельзя?
    > можно конечно, просто переменную окружения экспортируете. ну или прямо из кода:
    > https://golang.org/pkg/runtime/#hdr-Environment_Variables
    > https://golang.org/pkg/runtime/debug/#SetGCPercent

    Спасибо Вам

     
  • 2.187, Аноним (140), 06:07, 21/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В джаве тоже при более-менее серьёзной нагрузке обычно юзают пулы по-максимуму.
    Вообще, их и в C/C++ тоже гоняют в хвост и в гриву, т.к. в хайлоаде malloc/free считаются нифига не дешёвыми.
     

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



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

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