Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

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

Выпуск языка программирования Go 1.27

19.08.2026 23:54 (MSK)

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

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

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

Среди изменений в новом выпуске:

  • Реализована поддержка обобщённых (generic) методов, позволяющих объявлять собственные параметры типов и добавлять обобщённые функции непосредственно в пространство имён конкретного типа данных, без объявления на уровне всего пакета. Например, вместо раздельного объявления методов для каждого типа теперь можно использовать один обобщённый метод для всех типов:
    
       // Было
       func (r *Rand) Int32N(n int32) int32
       func (r *Rand) Int64N(n int64) int64
       func (r *Rand) IntN(n int) int
    
       // Стало
       func (r *Rand) N[Int intType](n Int) Int
    
  • При инициализации структур в качестве ключа разрешено использовать любой допустимый селектор полей, что позволяет напрямую инициализировать поля вложенных или встроенных структур:
    
       type Habitat struct {
           Burrow string
       }
    
       type Gopher struct {
           Name    string
           Habitat // встроенная структура
       }
    
       g := Gopher{
           Name:   "Gopher",
           Burrow: "Burrow #42",
       }
    
  • Расширен механизм автоматического вывода типов для функций, который теперь применяется во всех контекстах присвоения переменной, что позволяет использовать обобщённые (generic) функции без явного указания типов аргументов.
    
       func GenericFormatter[T any](v T) string {
           return fmt.Sprintf("value: %v", v)
       }
    
       type IntFormatter func(int) string
    
       formatters := []IntFormatter{GenericFormatter}
       fn := IntFormatter(GenericFormatter)
       ch := make(chan IntFormatter, 1)
       ch <- GenericFormatter
    
  • В команду "go fix" добавлены новые модернизаторы кода: atomictypes, embedlit, slicesbackward и unsafefuncs для переписывания устаревших конструкций atomic, упрощения объявления встроенных структур, использования slices.Backward при переборе срезов, и замене конструкций с unsafe.Pointer на более безопасные варианты.
  • В команде "go doc" реализована поддержка запросов "package@version", например, "go doc example.com/pkg@v1.2.3".
  • Повышена эффективность выделения памяти для мелких объектов, размером менее 80 байт. В приложениях, интенсивно создающих мелкие объекты оптимизация приводит к повышению производительности примерно на 1%.
  • В пакет runtime/pprof добавлен профиль goroutineleak для автоматического определения постоянно заблокированных сопрограмм (goroutine).
  • Добавлен пакет encoding/json/v2 с новой реализацией функций для обработки данных в формате JSON.
  • Добавлен пакет crypto/mldsa с реализацией постквантового алгоритма формирования цифровых подписей ML-DSA (FIPS 204).
  • Добавлен пакет uuid для генерации и разбора UUID-идентификаторов.
  • Добавлены пакеты simd и simd/archsimd с экспериментальной поддержкой распараллеливания выполнения операций над данными c использованием процессорных инструкций SIMD (Single Instruction, Multiple Data).


  1. Главная ссылка к новости (https://go.dev/blog/go1.27...)
  2. OpenNews: Выпуск языка программирования Go 1.26
  3. OpenNews: Выпуск Tinygo 0.40, компилятора для языка Go
  4. OpenNews: Оценка потребления памяти при одновременном запуске миллиона задач
  5. OpenNews: Лидер проекта Go принял решение покинуть пост
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66095-go
Ключевые слова: go
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (117) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 02:01, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +36 +/
    Один из лучших языков с самостоятельными бинарниками, которые можно перекидывать между системами и не париться за зависимости.
     
     
  • 2.11, Аноним (11), 08:16, 20/08/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.24, Прохожий (??), 10:41, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ужасный язык на самом деле, если хоть немного разбираться в языках. Ниже по ссылкам можно ознакомиться с его проблемами.

    https://simpleobservability.com/blog/go-portable-until-isnt

    https://blog.habets.se/2025/07/Go-is-still-not-good.html

    https://avittig.medium.com/golangs-big-miss-on-memory-arenas-f1375524cc90

    https://fasterthanli.me/articles/lies-we-tell-ourselves-to-keep-using-golang

    https://corrode.dev/learn/migration-guides/go-to-rust/

    https://www.ralfj.de/blog/2025/07/24/memory-safety.html

     
     
  • 3.26, Кроссдрессер (?), 10:44, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Могу в 10 раз больше ссылок накидать, почему гошечка - самое лучшее, что существует из языков на сегодня.
     
     
  • 4.30, Прохожий (??), 10:49, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Восторженные возгласы пришедших в программирование вчера не особо показательны, да и не особо интересны.
     
     
  • 5.40, Аноним (40), 11:08, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну так кто те виноват что ты так поздно пришёл
     
     
  • 6.121, Прохожий (??), 01:48, 22/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.88, _ (??), 20:15, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так то Пайк программировать начал "раньше чем твоя папка родился"(С) Ж-)))
     
  • 3.52, Аноним (52), 12:14, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    даже одного момента, когда интерфейсу присвоен nil, а после проверка на nil может показать, что он не nil, уже достаточно чтобы считать этот язык дурным и непригодным
     
  • 3.107, Аноним (107), 07:44, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Как известно, существует два вида языков программирования - те, у которых есть куча проблем, за которые их не любят, но используют, и те, которые никто не использует.

    Go сейчас в первой категории.

     
  • 3.116, анонец (?), 21:38, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > https://simpleobservability.com/blog/go-portable-until-isnt

    довольно странно видеть эту статью в качестве претензии к go как языку, учитывая что проблема в непереносимости glibc при использовании cgo. Rust имеет те же проблемы, С имеет те же проблемы, python имеет проблемы еще больше, если задействовать С. Потому что это проблемы С и libc, а не языка, который линкуется со сторонней библиотекой.

     
  • 2.60, localhostadmin (ok), 13:36, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    К слову о перекидывании между системами. Пару месяцев назад я решил перекинуть бинарь, собранный на старой версии опенка, на более новую. Он у меня не запустился из-за версий libc
     
     
  • 3.78, OpenEcho (?), 17:14, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Значит бинарь был скомилирован с CGO и поэтому получилась динамическая линковка
     
     
  • 4.143, user (??), 19:43, 22/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.72, Аноним (72), 16:15, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Один из лучших языков

    Перед тем, как рассказывать о том, насколько он "лучший", расскажите о своём опыте с другими языками. А то совсем не удивлюсь, если выяснится, что вы кроме голанга ничего не знаете.
    >которые можно перекидывать между системами и не париться за зависимости

    Какой величайший экспертный уровень. Да будет известно экспертам, что с современными технологиями, этим свойством обладает практически любой компилируемый язык, будь то OCaml, Rust, небезызвестный си, и не менее знаменитый C#.

     
     
  • 3.82, MaxT (?), 17:24, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >этим свойством обладает практически любой компилируемый язык, будь то OCaml, Rust, небезызвестный си, и не менее знаменитый C#.

    никто из перечисленных не обладает свойством сделать так-же:

    go get модуль_из_гитхаба
    GOOS=darwin GOARCH=arm64 go build .
    ...готово...

     
     
  • 4.86, GenkaOk (ok), 18:47, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Хоть и пользуюсь Go на регулярной основе, но к сожалению все не так здорово.

    Бинарники под Keenetic нужно собирать 1.20 версией, но в принципе это только для старых платформ. Например Windows XP и т.д., на остальные можно спокойно лить последнюю версию Go

     
  • 4.87, Аноним (72), 19:35, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >никто из перечисленных не обладает свойством сделать так-же:

    Ваша ошибка заключается в том, что вы до сих пор не объяснили, что именно вы подразумеваете под "сделать так-же"
    >go get модуль_из_гитхаба

    Важное уточнение - данный подход работает только для родного кода на go. Если будет хотя-бы малейшее вкрапление си, или чего-то другого, то это поломается.
    >GOOS=darwin GOARCH=arm64 go build .

    Кросс-компиляция - изобретена.
    >...готово...

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

     
     
  • 5.98, нах. (?), 00:35, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Важное уточнение - данный подход работает только для родного кода на go.

    которого и есть процентов 90 в окружающей нас реальности. Потому что мало, мало извращенцев писать на го прослойки к чужому коду.

    > Кросс-компиляция - изобретена.

    только не работает (в сишечке во всяком случае) вне пределов хеловротов. go изрядно расширил представления о том что хеловротом является.

    > Получить аналогичный бинарник можно и на других языках.

    как ты думаешь, почему при этом те же дебианоиды собираются в эмуляторе ? Т.е. вот ВСЕ реально используемые дистрибутивы линукса не под x86 - промышленно собираются в кривой тормозной эмулируемой прослойке?

    (как оно там у редхатоидов не выяснял за невозможностью их поставить на не-x86-64, только недавно появившиеся корявые сборки под единственную альтернативу интереса пока не представляют)

    Я тут как раз надысь пытался выяснить, как это у них так криво получается-то. А вот так, оказываетсо.

    Ведро кросс-компиляцией собрать еще кое-как можно (но лучше и этого не делать) а /bin/ls - уже не совсем.

     
     
  • 6.100, laindono (ok), 02:49, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В расте работает. Чуточку длиннее, надо заранее одной командой доустановить кросскомпилятор, если не. Кстати малоизвестная фича - можно запустить прогу под wine сразу и прозрачно. Мелочь, а приятно.

    Скорее всего примерно так же будет в любом новом (по сравнению с сишечкой) компилируемом языке. Почти уверен, что в каких-нибудь D, V, Swift, Nim, Zig и многих других будет так же.

    А в сишечке с крестами да, не работает. Там надо вилкой чистить, читать какие-то кривые доки, качать левые тулзы, а возможно и код фиксить. Ибо поддержка может быть и заявлена, да никто не проверял лет 10. И куча компиляторов, которые совместимы только в теории.

     
     
  • 7.117, нах. (?), 21:43, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Скорее всего примерно так же будет в любом новом (по сравнению с сишечкой) компилируемом
    > языке.

    ты забыл добавить - если его авторы нарочно откажутся от нормальной совместимости с существующим ВСЕМ написанным до них, и полезут переизобретать все сущее с нуля.

    > А в сишечке с крестами да, не работает.

    зато можно пользоваться трудом программистов живших за пару поколений до тебя. И оно - работает. А не требует переписания с нуля на очередном новом-компилируемом-нескучном-йезычке под все платформы сразу.

    Поэтому у нас есть, к примеру, пяток вери-сейф хрустоssl'ей но все большие проекты почему-то собираются с openssl.

     
     
  • 8.122, Прохожий (??), 01:58, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как будто это какое-то преимущество До первого сегфолта, ага Требует, конечно ... текст свёрнут, показать
     
  • 6.101, Аноним (72), 03:50, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >которого и есть процентов 90 в окружающей нас реальности.

    Зато остальные 10 вас неприятно удивят.
    >Потому что мало, мало извращенцев писать на го прослойки к чужому коду.

    Сразу же удачи вам слинковать с условным sqlite, tree-sitter или что там ещё понадобится.
    >только не работает (в сишечке во всяком случае) вне пределов хеловротов

    Чините руки. Как минимум есть https://wiki.nixos.org/wiki/Cross_compiling
    >как ты думаешь, почему при этом те же дебианоиды собираются в эмуляторе ?

    Потому, что дебиан. В нём нет нормального пакетного менеджера.

     
     
  • 7.115, нах. (?), 21:36, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Чините руки. Как минимум есть https://wiki.nixos.org/wiki/Cross_compiling

    то есть ушлепанская ос ЦЕЛИКОМ состоящая из костылей и подпорок чтобы сишечка могла как-то (я не стану тратить клик и читать не буду эту чушь, поверю на слово) что-то криво-косо скросскомпилить.
    Используется полутора больными фанатиками, неспособными пяти минут помолчать о своем фетише.

    Отличный пример как (и почему) не надо этого делать.

    > Потому, что дебиан. В нём нет нормального пакетного менеджера.

    в нем есть. Потому что он как раз - на каждом первом арм-линукс.
    А не у полутора фриков в виртуалочке под вендой.

     
     
  • 8.127, Аноним (72), 02:57, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не вам, не0силят0ру, это говорить, да Только вот когда мне нужен переносимый би... текст свёрнут, показать
     
  • 8.144, Anonimous (?), 19:44, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    То есть чего не видел, того нет И мнение ценное сие преподнести не жалко, н зми... текст свёрнут, показать
     
  • 2.111, Аноним (111), 16:53, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А в С/С++ самостоятельный бинарник сделать нельзя? Через -static при компиляции? Любопытно.

    The PrimeTime
    https://www.youtube.com/watch?v=WqSWZuGS9pc

     
     
  • 3.114, ы (?), 18:31, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    тсс, не порть зрелище
     

  • 1.3, zionist (ok), 02:21, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Всё по делу. Long live Go!
     
  • 1.4, Вася Пупкин (?), 05:16, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Чё стало с временем компиляции после добавления дженерик-функций?
    Второй пример как вообще читать? Без контекста в структуре Gopher как понять где Habitat? А если есть ещё другое поле с другим вложенным Habitat? Или тут опечатка?
    Пысы: хватит вводить в заблуждение, называя синтаксис лаконичным пока не починят бойлерплейт из if err != nil...
     
     
  • 2.6, zionist (ok), 05:36, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ответил ниже
     
  • 2.7, Аноним (7), 05:37, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    _ викчто err, если нет желания разбираться с ошибками.
     
  • 2.8, Мистер Макадамия (?), 05:56, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лол.
    Хотел начать объяснять про память: кучу и стек, а перечитав ваш коммент, попробуйте сами это сделать, и там же есть информация, зачем и для чего проверять на ошибки. ;)
     
     
  • 3.68, Вася Пупкин (?), 14:41, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    спасибо, про память можете не объяснять. и то что надо проверять ошибки. только лучше сами поизучайте как удобно это можно делать в других языках, например в расте.
     
     
  • 4.120, ДядяПетя (?), 22:12, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Go защити нас от ошибок
     
  • 2.14, анм (?), 09:23, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > называя синтаксис лаконичным пока не починят бойлерплейт из if err != nil...

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

     
     
  • 3.62, Вася Пупкин (?), 14:18, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    согласен, что эксепшны еще большее зло, которые еще и затрудняют понимание потока исполнения(читай как потомок goto). промисы, фьючи, таски, корутины - суть все похожее, в некоторых задачах они действительно могут упростить код, но важно понимать как они устроены. а вот чего бы не засахарить компилятором конкретно эту проверку на nil как в например расте в один символ - для меня по-прежнему загадка. код базы бы нехило так похудели, ревью было бы быстрее, разработка ускорилась.
     
  • 2.21, Брат Анон (ok), 10:37, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Время компиляции в модульных языках -- молниеносное. Откройте для себя волшебный мир модульных языков: Go, Modula-2, Oberon-2, Oberon-7, Component Pascal. А поскольку в жертву приносится глубокая оптимизация, при компиляции добавляется сбор профилей во время исполнения, что и компенсирует указанный недостаток.
    Уже давно пора забыть про if err!=nil... Уже как несколько лет можно писать Result[T] и Option[T]. А с последним нововведением -- теперь ещё и FluidAPI подвезли. Везде есть ,но в Go такое нечитаемо? Двойные стандарты детектед.
     
     
  • 3.25, Прохожий (??), 10:44, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Rust - модульный язык. А все почему-то жалуются постоянно на время его компиляции
     
     
  • 4.37, Брат Анон (ok), 11:02, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Rust - модульный язык. А все почему-то жалуются постоянно на время его
    > компиляции

    Садись, два! Модульный язык, это такой язык, где единицей компиляции и компоновки является модуль. Rust если изменить один файл в глубине иерархии -- будет пересобирать весь код. Потому что у него сквозная компиляция, направленная на тотальную оптимизации. Чтобы ты понимал: время сборки 40 сек -- это не норм. Программа на Go, Modula-2, Oberon-2/7 и даже FreePascal собирается за 0.5...1.5 сек. Плата: та самая глубокая оптимизация, которой нет. Поэтому и потребовался механизм профилирования при исполнении.

     
     
  • 5.56, Аноним (56), 12:51, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В Инете видел адептов Компонентного Паскаля и Оберона, которые тащатся от модулей. Бедняги умственно застряли в 1980-х гг. Модуль - это кусок бинарный компонент который во время компиляции линкуется с основным бинарников. В 2026 году такое почти у всех ЯП есть.

    Проснись же наконец и оглянись вокруг. Ты умственно застрял в прошлом.

     
  • 5.69, Аноним (69), 14:49, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Rust если изменить один файл в глубине иерархии -- будет пересобирать весь код.

    Поправлю: будет пересобираться код только данного модуля (то есть крейта. в Rust'е модули крейтами называются). А другие модули не будут пересобираться.
    (Разработчики Rust'а вводят в заблуждение ключевым словом mod, так вот это не обозначение модуля,  а пространства имён. как namespace в C++ )

     
  • 5.123, Прохожий (??), 02:05, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Садись, два! Модульный язык, это такой язык, где единицей компиляции и компоновки является модуль.

    Садись, два! На ходу терминологию выдумыаешь? Ну-ну.

    Система модулей в Rust:
    Крейты
    Модули
    Видимость
    Импорт

     
     
  • 6.129, Брат Анон (ok), 07:07, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Понятие модуль придумала дедушка Вирт в 1980 г, когда тебя ещё в проекте не было.  И модуль -- это вообще не то, что в Расте или даже в Го (хотя Го -- испорченный Оберон).
     
     
  • 7.134, Прохожий (??), 12:41, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Понятие модуль придумала дедушка Вирт в 1980 г, когда тебя ещё в проекте не было.  И модуль -- это вообще не то, что в Расте или даже в Го (хотя Го -- испорченный Оберон).

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

     
  • 3.63, Вася Пупкин (?), 14:27, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    оппа, вот это новость про монады.. а насколько часто их в проектах и библиотеках используют? (вопрос без подковырки - на го не разрабатываю, со стороны поглядываю). и что за fluidapi? рассахаривание как вопросик в расте?

    >Уже давно пора забыть про if err!=nil

    такими темпами и эргономика появится..

     
     
  • 4.79, Брат Анон (ok), 17:18, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну, я не готов отвечать за других, а я так только ими и пользуюсь Монады уже го... большой текст свёрнут, показать
     
  • 3.64, Вася Пупкин (?), 14:30, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    хм. правильно понимаю, что дженерики мономорфизируются только внутри своего модуля? на стыке публичное апи как резолвится?
     
     
  • 4.80, Брат Анон (ok), 17:20, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > хм. правильно понимаю, что дженерики мономорфизируются только внутри своего модуля? на
    > стыке публичное апи как резолвится?

    Нет, мономорфизация проходит насквозь. На границе модуля интерфейсы и типы обрывают детали (но это и правильно. Интерфейсы с накладными расходами но не больно (позднее связывание, косвенные ссылки). Типы -- без них, но больно (прямое связывание, прямое обращение).).

     
  • 3.73, Аноним (72), 16:24, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Откройте для себя волшебный мир модульных языков: Go, Modula-2, Oberon-2, Oberon-7, Component Pascal

    Сейчас, в 2026 году, рассуждать о Паскале. К счастью, мир уже понял ошибочность Паскаля, и закопал его. И да, приводите в пример хорошие языки, вроде OCaml-а.
    >Уже давно пора забыть про if err!=nil... Уже как несколько лет можно писать Result[T] и Option[T].

    Ну и зачем тогда этот ваш голанг нужен, если можно взять тот же OCaml, где всё это изначально сделано по-человечески?
    >Везде есть ,но в Go такое нечитаемо? Двойные стандарты детектед.

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

     
  • 2.51, MaxT (?), 11:59, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так называемый "бойлерплейт" из if err != nil читается гораздо легче чем эксепшены, которые фиг знает где и как обрабатываются.
     
     
  • 3.65, Вася Пупкин (?), 14:32, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    эскобарщина. наброс был с оглядкой на вопросик из раста. вот уж что действительно легче читается.
     
     
  • 4.70, Аноним (69), 14:57, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >легче читается

    но плохо понимается. А в Go не приходится ломать голову что значит unwrap, unwrap_or_else, expect, unwrap_or, unwrap_or_default

     
     
  • 5.74, Аноним (72), 16:25, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >А в Go не приходится ломать голову что значит unwrap, unwrap_or_else, expect, unwrap_or, unwrap_or_default

    Эта проблема решается за 15 минут, раз и навсегда.

     
     
  • 6.90, _ (??), 20:41, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну вот - а в Go - её вообще нет :) 0 минут и так же - навсегда :)
     
     
  • 7.102, Аноним (72), 03:55, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Ну вот - а в Go - её вообще нет

    Есть. Как только код выходит за рамки
    if err != nil {
      return err
    }
    То сразу же возникает куча вопросов. Например, какого типа эта самая err. Это не говоря уже о том, что тратить целых три строки, вместо >>= - расточительство.

     
     
  • 8.110, MaxT (?), 13:32, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем тебе здесь тип err если ты его не обрабатываешь Зато, если тебе нужно зав... текст свёрнут, показать
     
     
  • 9.112, Аноним (72), 17:38, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    С чего вы это взяли Я говорю про то, что подход голанга совершенно никак не пом... текст свёрнут, показать
     

  • 1.5, zionist (ok), 05:34, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > Второй пример как вообще читать? Без контекста в структуре Gopher как понять где Habitat?

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

    > А если есть ещё другое поле с другим вложенным Habitat? Или тут опечатка?

    Ты снова запутался и хотел спросить про другую структуру, с тем же полем, что и у структуры Habitat, которую так же вложили в Gopher. В этом случае сокращённой записью пользоваться нельзя.

     
     
  • 2.67, Вася Пупкин (?), 14:37, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Если нет конфликта имён можно обращаться к полям вложеной структуры напрямую, как будто это поля внешней структуры

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

    >В этом случае сокращённой записью пользоваться нельзя.

    еще и следить потом за этим, и выпиливать если где-то новое поле добавилось

     
     
  • 3.83, zionist (ok), 17:25, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > спасибо, теперь понятно. нахера тока такие ребусы неявные. они ж читаемость ухудшают..

    Синтаксический сахар, как раз таки для упрощения читаемости.

    > еще и следить потом за этим, и выпиливать если где-то новое поле
    > добавилось

    Скорее всего такое случается достаточно редко, а синтаксический сахар помогает гораздо чаще. Но если не нравится, то никто не заставляет. Можно всегда использовать полную запись.

     

  • 1.9, Sm0ke85 (ok), 07:38, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Код проекта распространяется под лицензией BSD

    Что намекает, что в перспективе это будет googo - полностью проприетарный продукт, где сообщество уже не особо нужно, т.к. "трудиться за спасибо" уже не особо надо, а с монетизацией гугл и сам справится))))

     
     
  • 2.22, Брат Анон (ok), 10:40, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет. Инструменты распространяются под максимально свободными лицензиями. И если даже изначально была пермиссивная -- в итоге всё-равно приходят к откровенно либеральной. Так было с питоном, так было со свифтом, так сейчас и с моджо (смотри соседнюю новость). А как известно из школьного курса физики -- фарш невозможно провернуть назад. Отличные примеры Редис, МонгоДБ и ещё десяток если хорошо подумать.
     
     
  • 3.32, Sm0ke85 (ok), 10:53, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Нет. Инструменты распространяются под максимально свободными лицензиями. И если даже изначально была пермиссивная -- в итоге всё-равно приходят к откровенно либеральной. Так было с питоном, так было со свифтом, так сейчас и с моджо (смотри соседнюю новость). А как известно из школьного курса физики -- фарш невозможно провернуть назад. Отличные примеры Редис, МонгоДБ и ещё десяток если хорошо подумать.

    Мне кажется наивно полагать, что код может быть "свободным"... Нет "Хозяина" только у ненужных вещей, а также если ты не "видишь хозяина", то это не значит что он не объявится... И что "новому хозяину" помешает присвоить себе результат труда...? Вера в понятие "свободный код"...?

    ЗЫ оглянись, за окном Капитализм...

     
     
  • 4.41, Брат Анон (ok), 11:10, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не понимаешь смысл капитализма У Солнца кто хозяин Кто хозяин у Вселенной ... большой текст свёрнут, показать
     
     
  • 5.53, Sm0ke85 (ok), 12:23, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Путаешь объемы понятий, вот тебе пример Северный полюс ничейный , но поделен п... большой текст свёрнут, показать
     
  • 3.89, Аноним (72), 20:22, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Инструменты распространяются под максимально свободными лицензиями.

    Максимально свободные - дающие четыре свободы. Не дающие четыре свободы - разрешительные.

     

  • 1.10, Аноним (10), 08:11, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    uuid давно же есть
     
     
  • 2.15, анм (?), 09:24, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Он внешний был, типа. А теперь видимо в базу добавили
     
     
  • 3.19, Аноним (40), 10:23, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а там дефолтный UUIDv7 или кто?
     
     
  • 4.23, Брат Анон (ok), 10:41, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там начиная от v4 до v7. Ту самую либу добавили как дефолт в stdlib.
     
     
  • 5.31, Аноним (40), 10:53, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так а по дефолту кто? v4?
     
     
  • 6.39, Брат Анон (ok), 11:04, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Так а по дефолту кто? v4?

    Там нет понятия дефолт. NewV4() и NewV7()

     

  • 1.12, Аноним (11), 08:19, 20/08/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.20, limafresh (ok), 10:28, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Один из лучших языков стал ещё лучше. Один из самых простых компилируемых языков (почти скриптовая логика), быстро собирается, в том числе и на слабых ПК (привет, Rust, который сильно нагружает ПК при сборке), строгая типизация, встроенный форматтер с няшными табами вместо богомерзких пробелов для отсутствия разногласий в стиле, отсутствие репозиториев типа NPM куда надо публиковать пакеты из своей учётки (достаточно go get ссылка). Что ещё надо?!
     
     
  • 2.35, Брат Анон (ok), 10:56, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Один из лучших языков стал ещё лучше. .... Что ещё надо?!

    Алгебраические типы, тайп матчинг, линейные типы, система эффектов, исполнение на этапе компиляции и ARC вместо сборщика мусора. Вот тогда точно заживём.


     
     
  • 3.91, _ (??), 20:52, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Один из лучших языков стал ещё лучше. .... Что ещё надо?!
    > Алгебраические типы, тайп матчинг, линейные типы, система эффектов, исполнение на этапе компиляции и ARC вместо сборщика мусора. Вот тогда точно заживём.

    Ботва!(С)
    Это всё есть где то там - в других языках. Но ты их не пользуешь.
    В Go если это всё принести - это будет уже не Go => за борт всю эту бодягу. Берите Haskell и идите мимо уже :)

     
     
  • 4.94, Аноним (72), 21:13, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Это всё есть где то там - в других языках.

    Вопрос стоит не в том, где это есть, и где этого нет. Вопрос в том, что индустрия ОПЯТЬ выбрала один из самых плохих вариантов. А потом, когда ошибочность выбора стала очевидна, в голанг стали костылями прикручивать полезные фичи из других языков, но конечно-же получилось ужасно.
    >Но ты их не пользуешь.

    Это легко можно сделать в своих хобби проектах, и практически невозможно - в коммерческих. Мало какой бизнес вливает деньги в инструменты, обычно берут самый минимально пригодный, и живут на нём до тех пор, пока терпеть сил больше не остаётся.

     
     
  • 5.104, _ (??), 06:04, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вопрос в том, что индустрия ОПЯТЬ выбрала один из самых плохих вариантов.

    А вот и нет! Это редкий случай когда выбрали правильно! Я сказал!(С) :-)

    > Это легко можно сделать в своих хобби проектах, и практически невозможно - в коммерческих.

    Ну и вывод то какой? :)
    Впрочем не важно, скоро это болеть у всех уже перестанет :)

     
  • 5.118, Аноним (118), 21:50, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >индустрия ОПЯТЬ выбрала один из самых плохих вариантов.

    Кто-то ей в этом очень помогал .

    >когда ошибочность выбора стала очевидна, в голанг стали костылями

    Гуглю неудобно стало, сначала всем запудрила мозги, а потом оказалось ...

     

  • 1.50, Аноним (40), 11:58, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    как на этом сайте ответить в уже запоротую ботом-мордератором но всё ещё присутствующую ветку? Перепищите уже этого бота на расте чтобы не мешал.
    > CachyOS

    Эта офигительная реалтаймка сейчас здесь? С нами? В одной комнате? Полтора мазохиста-бетатестера тестирующих концепт - это, конечно, отличная ниша для хипстеров, но IRL люди этим не пользуются.
    Куб и прочие тулы, конечно, не часть языка. Как и CachyOS не часть языка. Просто кубу и прочим тулам ваши выдуманные недостатки ЯП не мешают делать восхитительные штуки успешно и давно и, самое сложное - не закидывать проект потому что вайб сменился

     
     
  • 2.54, Аноним (54), 12:24, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    RT-ядро в Линуксе присутствует уже лет 20 как минимум. Не позорься, ононим.
     
  • 2.58, Аноним (40), 13:20, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    RT-ядро в линуксе никаким боком к хрусту 20 лет
     
  • 2.59, Аноним (40), 13:20, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    да и не гарантировало RT-ядро настоящий realtime. Так только, "мы постарались"
     
     
  • 3.92, _ (??), 20:54, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    HRT vs SRT ... На HRT под линуком никто и не замахивался.
     

  • 1.57, Аноним (57), 12:55, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как там с телеметрией?
     
     
  • 2.84, zionist (ok), 17:30, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Как там с телеметрией?

    $ go telemetry
    off

    $ cat .config/go/telemetry/mode
    off 2025-12-11

     

  • 1.75, Аноним (72), 16:29, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Реализована поддержка обобщённых (generic) методов

    Зря. Голанг должен быть простым и тупым, языком для вечных школьников с IQ 90, а любая более менее сложная программа должна вызывать непрекращающуюся боль, для того, чтобы разработчики наконец-то обнаружили, что кроме мейнстрима есть куча других хороших языков.

     
     
  • 2.93, _ (??), 20:59, 20/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У которых есть _свои_ непреодолимые недостатки :)

    Всё нормально, в наше богатое время уж найти ЯП по-душе вообще не проблема!
    А так как это всё стремительно уходит из профессиональной области в область хобби - то ЯП по душе только и надо пользовать!

     
     
  • 3.97, нах. (?), 00:13, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    К сожалению, llm все еще отвратительно программируют на forth.

     
     
  • 4.105, _ (??), 06:12, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ээыыооуу... Уел так уел! (С) :)

    Но ты должен был бороться со злом, а не возглавить его! (С) :)

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

     

  • 1.95, Аноним (95), 23:46, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Как-то "лучший C" превращается в "худший С++". Где-то они не туда завернули.
     
     
  • 2.125, Прохожий (??), 02:21, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Почему "превращается"? Он с рождения такой кривой.
     

  • 1.96, Аноним (95), 23:58, 20/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для меня Го - золотая середина, которой пользоваться невозможно. Для системного он слишком тяжёлый, на сях проще. Для вебв там нет ничего, даже по сравнению с питоном. И зачем он мне?
     
     
  • 2.119, Аноним (118), 21:55, 21/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для автоматизации. Относитесь к Go как к сценарному языку со статической типизацией. Надёжная замена Питону.
     
     
  • 3.126, Прохожий (??), 02:24, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Надёжная замена Питону

    Кроме статической типизации предложить на замену Питону как будто больше и нечего. Ну и зачем тогда менять шило на мыло?

     
     
  • 4.133, AlexM (??), 12:13, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Убогий во всех смыслах питонный скрипт по факту работает в десятки и даже сотни раз медленнее чем Go и кроме того фактически не имеет никакой многопоточности из-за GIL.

    Питон хорош только для обучения школоты,  административного применения, для клея ИИ библиотек и подобного.

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

    Учите лучше Go.

     
     
  • 5.135, Прохожий (??), 12:55, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Убогий во всех смыслах питонный скрипт

    Вкусовщина

    >по факту работает в десятки и даже сотни раз медленнее чем Go

    А что ты там такое автоматизируешь, что тебе скорость выполнения скрипта важна?

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

    >Питон хорош только для обучения школоты,  административного применения, для клея ИИ библиотек и подобного.

    Не только. Он хорош и для автоматизации всякой рутины. Про Ansible слышал, небось? Или Pyinfra?

    >Некоторые юные горе программисты

    Мне шестой десяток идёт. И я знаю Ассемблер, Си, Раст, Питон, Паскаль, Перл, Шелл и может ещё чего. Питон для моих задач - вполне себе годный язык программирования. Го считаю уродством, недотыкомкой, сделанной на скорую руку Гуглом для своих юных программистов, которые что-то более сложное, но при этом и более адекватное освоить не смогли. Ссылки вверху накидал, в начале обсуждения.

     
     
  • 6.137, AlexM (??), 14:19, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У меня тоже весьма богатый опыт за плечами и много языков освоено на проф. уровне.

    Вы можете топить за это питонное скриптовое убожество, но только что по синтетическим, что по нашим практическим тестам Go уделывает Питон в десятки, а с учётом мультизадачности буквально в сотню раз.
    Даже бэкенд на Dart и то в разы быстрее, к тому же там и язык в разы приятнее и тоже строго типизирован (пусть это и на вкусовщина)
    Наш старый бэкенд на Lazarus и то почти в сотню раз быстрее чем питонное убожество.
    К тому же в моём случае ещё и много математики по обработке сигналов на бэкенде, а там питонное убожество и рядом не стояло.
    А вот Go считает даже чуть быстрее Лазаря, чуть ближе к Си.
    Ну и всё это с в разы меньшем потреблении памяти, и без какой-либо среды.
    Ну а с учётом мультипотоковости на сервере Питон вообще похож на реальное убожество.

    Так что дело ваше, но Пютолько по конечном результату и  общей эффективности что Go,что Lazarus, что C# стоят пока очень выше питонного скриптового дерьмеца.

     
     
  • 7.142, Прохожий (??), 16:29, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Вы можете топить за это питонное скриптовое убожество, но только что по синтетическим, что по нашим практическим тестам Go уделывает Питон в десятки, а с учётом мультизадачности буквально в сотню раз.

    Ещё раз. Ибо не похоже, что вы сколь-либо внимательно читаете, прежде чем отвечать. Что вы там такое автоматизируете, что вам нужна скорость? Скрипты (любые) - это не про скорость, это про удобство (вот как с зелёными потоками в Го, которые сами по себе медленные, но зато простые в использовании).

    >К тому же в моём случае ещё и много математики по обработке сигналов на бэкенде

    Где я хоть слово сказал про бекенд? Я про автоматизацию рутины всё это время говорил.

    А про вычисления - в Питоне есть numpy, sympy и прочее, в том числе для обработки сигналов что-то было. И это всё написано на Си. Где там Го угнаться за Си.

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

     
  • 6.138, AlexM (??), 14:20, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У меня тоже весьма богатый опыт за плечами и много языков освоено на проф. уровне.

    Вы можете топить за это питонное скриптовое убожество, но только что по синтетическим, что по нашим практическим тестам Go уделывает Питон в десятки, а с учётом мультизадачности буквально в сотню раз.
    Даже бэкенд на Dart и то в разы быстрее, к тому же там и язык в разы приятнее и тоже строго типизирован (пусть это и на вкусовщина)
    Наш старый бэкенд на Lazarus и то почти в сотню раз быстрее чем питонное убожество.
    К тому же в моём случае ещё и много математики по обработке сигналов на бэкенде, а там питонное убожество и рядом не стояло.
    А вот Go считает даже чуть быстрее Лазаря, чуть ближе к Си.
    Ну и всё это с в разы меньшем потреблении памяти, и без какой-либо среды.
    Ну а с учётом мультипотоковости на сервере Питон вообще похож на реальное убожество.

    Так что дело ваше, но Пютолько по конечном результату и  общей эффективности что Go,что Lazarus, что C# стоят пока очень выше питонного скриптового убожества.

     
  • 3.128, Аноним (72), 03:01, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Относитесь к Go как к сценарному языку со статической типизацией.

    Для сценарного языка в нём слишком много указателей, и слишком мало абстракций. if err != nil не дадут соврать.

     

  • 1.124, Прохожий (??), 02:20, 22/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Брат Антон пишет про макросы: "Нет, в Раст это калечно сделано. Посмотрите как это сделано в Lisp или Nim. В Rust на это без слёз смотреть нельзя."

    Мы о синтаксисе говорим или о фунциональной полноте? Ещё раз. Макросы в Rust работают с AST. Чем это принципиально отличается от макросов в Lisp, Nim?

     
  • 1.130, разраб (?), 07:29, 22/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Реализована поддержка <...> методов
    <...>
    func(!) ! методы но функция))
    для сравнения код F#
    type Add (x) = class
         let add = fun y -> y + x
         member it.Add y = add y
         end;;
    type Add =
      new: x: int -> Add
      member Add: y: int -> int

    > Add(2).Add 2;;

    val it: int = 4

     
  • 1.131, Aller2TeaM (ok), 09:47, 22/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Особенно рад за arch/simd, пользуюсь ещё с релиз кандидата. Получилось Minimax-ом во Freebuff-е подновить img и imaging с инструкциями avx2. Как результат - с 0.9~1.1 сек на изображение упало до 0.09~0.13 сек. В общем, нуждавшимся в arch/simd - мои поздравления. Да, пусть пакет и новый, но ещё разрастётся.
     
  • 1.132, AlexM (??), 11:35, 22/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Имеея за плечами почти 30 лет программирования и хорошего знания таких языков как Си/C++, Object-Pascal, C#, Java, JS и Dart, за себя могу сказать, что если чисто  для бэкенда, то Go язык очень даже не плохой.

    Порадовало переосмысление указания типов на паскалевский манер. Это сильно упрощает читабельность в отличии от Си.
    Так же подкупает общая простота без существенной потери эффективности конечного кода и на фоне меньшей возможности выстрелить себе в ногу в отличии от Си/C++.

    Отсутствие классов и наследования с одной стороны удивляет для нового языка, но с другой стороны избавляет от кучи абстракций и ускорят конечный код (нет таблиц виртуальных функций и прочего).

    Многопоточность решена очень эффективно на уровне как языка так и библиотеки.

    Из того, что не понравилось - это разве что defer вместо привычного try-finally.

    В целом получился годный, безопасный и главное очень эффективный бэкенд.
    Но только IMHO ни для чего более чем бэкенд и микросервисы этот язык пока не годен.

     
     
  • 2.136, Прохожий (??), 13:03, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >то Go язык очень даже не плохой

    Отвратительный, на самом деле. Ссылки вверху есть.

    >Многопоточность решена очень эффективно на уровне как языка так и библиотеки.

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

    >и главное очень эффективный бэкенд

    Сборщик мусора - это тоже не про эффективность. Не помню уже название, но какая-то крупная компания из-за него в своё время мигрировала с Го на Раст.

     
     
  • 3.139, AlexM (??), 14:35, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, зеленые потоки довольно тяжеловесны.

    Это не так. Там пул потоков, причём очень грамотно спроектированный.
    При ожидании тяжеловесных опрераций ввода-вывода потоки из пула перераспределяются на выполнение другого кода.

    Я когда-то писал свой пул потоков на Си, потом на FPC и знаю как сложно порой перераспределять нагрузку так, что приходится оставлять это на уже на откуп более грамотного их использования сверху.
    А в Go это уже "из корзины".

    Сборщик мусора это тоже хорошо на бэкенде.
    К тому же он там крайне эффективный. По моим экспериментам получше чем в .net.
    Затыков нет даже на большой нагрузке.

    Ну и главное - на бэкенде это выходит более эффективно и проще чем .net и уз в сотню раз круче какого-нибудь питонного убожества.

     
     
  • 4.140, Прохожий (??), 16:18, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Там пул потоков

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

     
  • 4.141, Прохожий (??), 16:20, 22/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Сборщик мусора это тоже хорошо на бэкенде.

    Если можно обойтись без него, то лучше обходиться без него. Я ведь не зря вспомнил про миграцию с Го на Раст. Люди там обожглись на подобных размышлениях.

     

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



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

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