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

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



"Выпуск языка программирования Go 1.27"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск языка программирования Go 1.27"  +/–
Сообщение от opennews (??), 20-Авг-26, 01:47 
После шести месяцев разработки представлен релиз  языка программирования Go 1.27, развиваемого компанией  Google при участии сообщества. Язык сочетает высокую производительность, свойственную компилируемым языкам, с такими достоинствами скриптовых языков, как простота написания кода, высокая скорость разработки и защита от ошибок.   Код проекта распространяется под лицензией BSD...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=66095

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

2. Сообщение от Аноним (2), 20-Авг-26, 02:01   +41 +/–
Один из лучших языков с самостоятельными бинарниками, которые можно перекидывать между системами и не париться за зависимости.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11, #24, #60, #72, #111

3. Сообщение от zionist (ok), 20-Авг-26, 02:21   +2 +/–
Всё по делу. Long live Go!
Ответить | Правка | Наверх | Cообщить модератору

4. Сообщение от Вася Пупкин (?), 20-Авг-26, 05:16   –6 +/–
Чё стало с временем компиляции после добавления дженерик-функций?
Второй пример как вообще читать? Без контекста в структуре Gopher как понять где Habitat? А если есть ещё другое поле с другим вложенным Habitat? Или тут опечатка?
Пысы: хватит вводить в заблуждение, называя синтаксис лаконичным пока не починят бойлерплейт из if err != nil...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #7, #8, #14, #21, #51

5. Сообщение от zionist (ok), 20-Авг-26, 05:34   +6 +/–
> Второй пример как вообще читать? Без контекста в структуре Gopher как понять где Habitat?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #67

6. Сообщение от zionist (ok), 20-Авг-26, 05:36   +/–
Ответил ниже
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

7. Сообщение от Аноним (7), 20-Авг-26, 05:37   +/–
_ викчто err, если нет желания разбираться с ошибками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

8. Сообщение от Мистер Макадамияemail (?), 20-Авг-26, 05:56   +1 +/–
Лол.
Хотел начать объяснять про память: кучу и стек, а перечитав ваш коммент, попробуйте сами это сделать, и там же есть информация, зачем и для чего проверять на ошибки. ;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #68

9. Сообщение от Sm0ke85 (ok), 20-Авг-26, 07:38   –4 +/–
> Код проекта распространяется под лицензией BSD

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22

10. Сообщение от Аноним (10), 20-Авг-26, 08:11   –1 +/–
uuid давно же есть
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15

11. Сообщение от Аноним (11), 20-Авг-26, 08:16    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

12. Сообщение от Аноним (11), 20-Авг-26, 08:19    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #13, #28

13. Сообщение от фывыфв (?), 20-Авг-26, 09:17   +2 +/–
Вообще разные инструменты. Как сравнивать микроскоп и ЧПУ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #18

14. Сообщение от анм (?), 20-Авг-26, 09:23   +3 +/–
> называя синтаксис лаконичным пока не починят бойлерплейт из if err != nil...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #62

15. Сообщение от анм (?), 20-Авг-26, 09:24   +2 +/–
Он внешний был, типа. А теперь видимо в базу добавили
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #19

18. Сообщение от Аноним (40), 20-Авг-26, 10:05   –2 +/–
Там TinyGo лучше во всём чем Rust
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

19. Сообщение от Аноним (40), 20-Авг-26, 10:23   +/–
а там дефолтный UUIDv7 или кто?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #23

20. Сообщение от limafresh (ok), 20-Авг-26, 10:28   +1 +/–
Один из лучших языков стал ещё лучше. Один из самых простых компилируемых языков (почти скриптовая логика), быстро собирается, в том числе и на слабых ПК (привет, Rust, который сильно нагружает ПК при сборке), строгая типизация, встроенный форматтер с няшными табами вместо богомерзких пробелов для отсутствия разногласий в стиле, отсутствие репозиториев типа NPM куда надо публиковать пакеты из своей учётки (достаточно go get ссылка). Что ещё надо?!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #35

21. Сообщение от Брат Анон (ok), 20-Авг-26, 10:37   +2 +/–
Время компиляции в модульных языках -- молниеносное. Откройте для себя волшебный мир модульных языков: Go, Modula-2, Oberon-2, Oberon-7, Component Pascal. А поскольку в жертву приносится глубокая оптимизация, при компиляции добавляется сбор профилей во время исполнения, что и компенсирует указанный недостаток.
Уже давно пора забыть про if err!=nil... Уже как несколько лет можно писать Result[T] и Option[T]. А с последним нововведением -- теперь ещё и FluidAPI подвезли. Везде есть ,но в Go такое нечитаемо? Двойные стандарты детектед.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #25, #63, #64, #73

22. Сообщение от Брат Анон (ok), 20-Авг-26, 10:40   +3 +/–
Нет. Инструменты распространяются под максимально свободными лицензиями. И если даже изначально была пермиссивная -- в итоге всё-равно приходят к откровенно либеральной. Так было с питоном, так было со свифтом, так сейчас и с моджо (смотри соседнюю новость). А как известно из школьного курса физики -- фарш невозможно провернуть назад. Отличные примеры Редис, МонгоДБ и ещё десяток если хорошо подумать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #32, #89

23. Сообщение от Брат Анон (ok), 20-Авг-26, 10:41   +2 +/–
Там начиная от v4 до v7. Ту самую либу добавили как дефолт в stdlib.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #31

24. Сообщение от Прохожий (??), 20-Авг-26, 10:41   –3 +/–
Ужасный язык на самом деле, если хоть немного разбираться в языках. Ниже по ссылкам можно ознакомиться с его проблемами.

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...

https://fasterthanli.me/articles/lies-we-tell-ourselves-to-k...

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #26, #52, #107, #116

25. Сообщение от Прохожий (??), 20-Авг-26, 10:44   +/–
Rust - модульный язык. А все почему-то жалуются постоянно на время его компиляции
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #37

26. Сообщение от Кроссдрессер (?), 20-Авг-26, 10:44   +4 +/–
Могу в 10 раз больше ссылок накидать, почему гошечка - самое лучшее, что существует из языков на сегодня.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #30, #150

28. Сообщение от Брат Анон (ok), 20-Авг-26, 10:46   +2 +/–
Нет, не лучше во всём. Нельзя делать частичную реализацию трейтов (интерфейс имеет ко всему прочему накладные расходы), нет нормальных алгебраических типов, нет паттерн матчинга (а местами очень не хватает). Из Нима я бы ещё подтащил систему эффектов (в Расте такого нет), свободный синтаксис вызова процедур, чистые функции, исполнение на этапе компиляции, темплейты и подумал бы над макросами (в Ним они сделаны исчерпывающе, в отличии от Раста, но инструмент всё же опасный). Хоть вместо make давно существует task (который написан на Go), но в плане гибкости Nim-script как часть компилятора и скриптовый движок расширения бинарей всё же более интегрирован в экосистемы Nim. Очень важная вещь, которой не хватает в Go -- изоляты. В Dart они сделаны тяжеловато (на перемещении, нет семантики перемещения). В Rust аннотация времени жизни -- вынос мозга. Опять же, в Nim изоляты сделаны красиво и понятно (+семантика перемещения в 5 раз проще, чем в Rust). Я уже не говорю про то, что рантайм не позволяет контролировать момент уничтожения объектов (да-да -- тот самый сборщик мусора в отличии от автоматической расстановки вызова деструкторов в Rust или Nim). Реалтайм на Go возможен, но это дополнительные приседания. Возможно, дженерики в обновлённом виде позволят как раз решить эту проблему (ORM/ARC из Nim, да и ARC из Rust как показывает практика -- тот же сборщик с ручным управлением по требованию -- работает офигенно).
Go многое решает иначе, но много пока не хватает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #34, #38

30. Сообщение от Прохожий (??), 20-Авг-26, 10:49   +/–
Восторженные возгласы пришедших в программирование вчера не особо показательны, да и не особо интересны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #40, #88

31. Сообщение от Аноним (40), 20-Авг-26, 10:53   +/–
Так а по дефолту кто? v4?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #39

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #41

34. Сообщение от Прохожий (??), 20-Авг-26, 10:54   +/–
>подумал бы над макросами (в Ним они сделаны исчерпывающе, в отличии от Раста, но инструмент всё же опасный)

Это как, исчерпывающе? В Rust вы фактически с AST работаете. Куда уж более исчерпывающе?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #42

35. Сообщение от Брат Анон (ok), 20-Авг-26, 10:56   +5 +/–
> Один из лучших языков стал ещё лучше. .... Что ещё надо?!

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #91

37. Сообщение от Брат Анон (ok), 20-Авг-26, 11:02   +4 +/–
> Rust - модульный язык. А все почему-то жалуются постоянно на время его
> компиляции

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #56, #69, #123

38. Сообщение от Аноним (40), 20-Авг-26, 11:04   +2 +/–
чего-то там (лень перечислять) нет в других ЯП потому что оно им нужно чтобы что? Реалтайм в контексте современных ОС звучит вообще как насмешка - нет его у вас.
В Golang многого пока не хватает. fzf, gdu, rclone, xq/fx/yq, kubectl, hugo и ещё вагончик тулов используемых ежедневно и массово... как нам их не хватает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #43

39. Сообщение от Брат Анон (ok), 20-Авг-26, 11:04   +4 +/–
> Так а по дефолту кто? v4?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

40. Сообщение от Аноним (40), 20-Авг-26, 11:08   +/–
ну так кто те виноват что ты так поздно пришёл
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #154

41. Сообщение от Брат Анон (ok), 20-Авг-26, 11:10   +/–
Ты не понимаешь смысл капитализма.

У Солнца кто хозяин? Кто хозяин у Вселенной?
Понятие "свободный" относится к личному владению. Фактически хозяин есть -- общество. Давно пора бы усвоить, что в английском языке "свободный" не значит "бесплатный". "Свободный" означает, что "не подлежащий продаже". Но "свободный" софт можно прекрасно распространять за деньги и за деньги поддерживать. И самое главное, чего ты не понял: свободный софт нельзя приватизировать. Поэтому Go, строго говоря не подпадает под определение GPL (который запрещает приватизацию), но при этом ,если ты что-то сделал сам на подаренном тебе инструменте (какое-то усовершенствование) -- лицензия Go не запрещает тебе сохранять это ноухау лично. Правда, ты станешь отщепенцем и вреда от такого положения будет больше, чем пользы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #53

42. Сообщение от Брат Анон (ok), 20-Авг-26, 11:14   +1 +/–
>>подумал бы над макросами (в Ним они сделаны исчерпывающе, в отличии от Раста, но инструмент всё же опасный)
> Это как, исчерпывающе? В Rust вы фактически с AST работаете. Куда уж
> более исчерпывающе?

Нет, в Раст это калечно сделано. Посмотрите как это сделано в Lisp или Nim. В Rust на это без слёз смотреть нельзя.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

43. Сообщение от Брат Анон (ok), 20-Авг-26, 11:14   +2 +/–
> чего-то там (лень перечислять) нет в других ЯП потому что оно им
> нужно чтобы что? Реалтайм в контексте современных ОС звучит вообще как
> насмешка - нет его у вас.
> В Golang многого пока не хватает. fzf, gdu, rclone, xq/fx/yq, kubectl, hugo
> и ещё вагончик тулов используемых ежедневно и массово... как нам их
> не хватает

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

Тулзы перечисленные выше классные. Но они не часть языка, не часть комплекта компилятора. И это создаёт проблему. UUID наконец-то затащили и ура. А вот JSON/v2 не решает проблему до конца: в тех же Rust и Nim все сериализаторы, десериализаторы JSON автоматически строятся на этапе компиляции. В Go приходится использовать фактически ручную кодогенерацию. И это не есть гуд.
Опять же, упомянутая система эффектов Nim -- такого даже в Rust нет. А бывает ой как не хватает в коде на Go таких вещей.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #54, #58, #59

51. Сообщение от MaxT (?), 20-Авг-26, 11:59   +/–
Так называемый "бойлерплейт" из if err != nil читается гораздо легче чем эксепшены, которые фиг знает где и как обрабатываются.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #65

52. Сообщение от Аноним (52), 20-Авг-26, 12:14   +4 +/–
даже одного момента, когда интерфейсу присвоен nil, а после проверка на nil может показать, что он не nil, уже достаточно чтобы считать этот язык дурным и непригодным
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #172

53. Сообщение от Sm0ke85 (ok), 20-Авг-26, 12:23   –2 +/–
>Ты не понимаешь смысл капитализма.
>У Солнца кто хозяин? Кто хозяин у Вселенной?

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

>Понятие "свободный" относится к личному владению. Фактически хозяин есть -- общество

Вот в GPL это явно указано, а в остальных "свободных" лицензиях получается что "Код свободен" - а это явный бред сивой кобылы...

> "Свободный" означает, что "не подлежащий продаже"

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

>И самое главное, чего ты не понял: свободный софт нельзя приватизировать

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

>Поэтому Go, строго говоря не подпадает под определение GPL (который запрещает приватизацию)

У тебя опять каша... GPL - не свободный, т.к. там владельцами являются все участники создания кода...

>ты что-то сделал сам на подаренном тебе инструменте (какое-то усовершенствование) -- лицензия Go не запрещает тебе сохранять это ноухау лично

Да ладно...? А продавать разрешает или запрещает...? А как так получилось, то код же свободный был, а тут вдруг "Лично" появилось - откуда личности...?

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

И кто "отщеплять" будет...? Вон Раст внедряют и многие против - в итоге отщепляют тех самых "многих"))))) Все чуть сложнее, чем тебе представляется...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

54. Сообщение от Аноним (54), 20-Авг-26, 12:24   +2 +/–
RT-ядро в Линуксе присутствует уже лет 20 как минимум. Не позорься, ононим.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

57. Сообщение от Аноним (57), 20-Авг-26, 12:55   +/–
Как там с телеметрией?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #84

58. Сообщение от Аноним (40), 20-Авг-26, 13:20   –2 +/–
RT-ядро в линуксе никаким боком к хрусту 20 лет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

59. Сообщение от Аноним (40), 20-Авг-26, 13:20   –2 +/–
да и не гарантировало RT-ядро настоящий realtime. Так только, "мы постарались"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #92

60. Сообщение от localhostadmin (ok), 20-Авг-26, 13:36   –4 +/–
К слову о перекидывании между системами. Пару месяцев назад я решил перекинуть бинарь, собранный на старой версии опенка, на более новую. Он у меня не запустился из-за версий libc
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #78, #174, #195

62. Сообщение от Вася Пупкин (?), 20-Авг-26, 14:18   +/–
согласен, что эксепшны еще большее зло, которые еще и затрудняют понимание потока исполнения(читай как потомок goto). промисы, фьючи, таски, корутины - суть все похожее, в некоторых задачах они действительно могут упростить код, но важно понимать как они устроены. а вот чего бы не засахарить компилятором конкретно эту проверку на nil как в например расте в один символ - для меня по-прежнему загадка. код базы бы нехило так похудели, ревью было бы быстрее, разработка ускорилась.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

63. Сообщение от Вася Пупкин (?), 20-Авг-26, 14:27   +/–
оппа, вот это новость про монады.. а насколько часто их в проектах и библиотеках используют? (вопрос без подковырки - на го не разрабатываю, со стороны поглядываю). и что за fluidapi? рассахаривание как вопросик в расте?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #79

64. Сообщение от Вася Пупкин (?), 20-Авг-26, 14:30   +/–
хм. правильно понимаю, что дженерики мономорфизируются только внутри своего модуля? на стыке публичное апи как резолвится?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #80

65. Сообщение от Вася Пупкин (?), 20-Авг-26, 14:32   +/–
эскобарщина. наброс был с оглядкой на вопросик из раста. вот уж что действительно легче читается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #70

67. Сообщение от Вася Пупкин (?), 20-Авг-26, 14:37   +1 +/–
>Если нет конфликта имён можно обращаться к полям вложеной структуры напрямую, как будто это поля внешней структуры

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #83

68. Сообщение от Вася Пупкин (?), 20-Авг-26, 14:41   +1 +/–
спасибо, про память можете не объяснять. и то что надо проверять ошибки. только лучше сами поизучайте как удобно это можно делать в других языках, например в расте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #120

69. Сообщение от Аноним (69), 20-Авг-26, 14:49   +2 +/–
>Rust если изменить один файл в глубине иерархии -- будет пересобирать весь код.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

70. Сообщение от Аноним (69), 20-Авг-26, 14:57   +1 +/–
>легче читается

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #74

72. Сообщение от Аноним (72), 20-Авг-26, 16:15   +/–
>Один из лучших языков

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #82

73. Сообщение от Аноним (72), 20-Авг-26, 16:24   –3 +/–
>Откройте для себя волшебный мир модульных языков: Go, Modula-2, Oberon-2, Oberon-7, Component Pascal

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

74. Сообщение от Аноним (72), 20-Авг-26, 16:25   +2 +/–
>А в Go не приходится ломать голову что значит unwrap, unwrap_or_else, expect, unwrap_or, unwrap_or_default

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #90

75. Сообщение от Аноним (72), 20-Авг-26, 16:29   –1 +/–
>Реализована поддержка обобщённых (generic) методов

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #93

78. Сообщение от OpenEcho (?), 20-Авг-26, 17:14   +/–
Значит бинарь был скомилирован с CGO и поэтому получилась динамическая линковка
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #143

79. Сообщение от Брат Анон (ok), 20-Авг-26, 17:18   +2 +/–
> оппа, вот это новость про монады.. а насколько часто их в проектах
> и библиотеках используют? (вопрос без подковырки - на го не разрабатываю,
> со стороны поглядываю). и что за fluidapi? рассахаривание как вопросик в
> расте?

Ну, я не готов отвечать за других, а я так только ими и пользуюсь. Монады уже года два в обойме доступны. Даже свою либу написал. Для примера:
https://gitp78su.ipnodns.ru/svi/kern/src/v4/v4/lev0/result/r...

FluidAPI/FLuentAPI (кто как пишет). Это когда строится цепочка вызовов как в функциональном программировании. Крайне удобно структурировать код в рамках многослойной архитектуры (LTI/LBI/LSI). Без дженериков в методах приходилось разрывать цепочку вызовов в три отдельных вызова с присвоением результата в конкретную типизированную переменную. Теперь всё гораздо проще (и свой фреймворк буду переделывать под это дело).

>>Уже давно пора забыть про if err!=nil
> такими темпами и эргономика появится..

Ну, строго говоря она и была. Код на Го кратно легче читается, чем на том же Расте. А чувство стиля, оно нарабатывается. На любом языке.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

80. Сообщение от Брат Анон (ok), 20-Авг-26, 17:20   +1 +/–
> хм. правильно понимаю, что дженерики мономорфизируются только внутри своего модуля? на
> стыке публичное апи как резолвится?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64

82. Сообщение от MaxT (?), 20-Авг-26, 17:24   –1 +/–
>этим свойством обладает практически любой компилируемый язык, будь то OCaml, Rust, небезызвестный си, и не менее знаменитый C#.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #86, #87

83. Сообщение от zionist (ok), 20-Авг-26, 17:25   +/–
> спасибо, теперь понятно. нахера тока такие ребусы неявные. они ж читаемость ухудшают..

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

84. Сообщение от zionist (ok), 20-Авг-26, 17:30   +1 +/–
> Как там с телеметрией?

$ go telemetry
off

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #161

86. Сообщение от GenkaOk (ok), 20-Авг-26, 18:47   +/–
Хоть и пользуюсь Go на регулярной основе, но к сожалению все не так здорово.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

87. Сообщение от Аноним (72), 20-Авг-26, 19:35   +/–
>никто из перечисленных не обладает свойством сделать так-же:

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #98

88. Сообщение от _ (??), 20-Авг-26, 20:15   +/–
Так то Пайк программировать начал "раньше чем твоя папка родился"(С) Ж-)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

89. Сообщение от Аноним (72), 20-Авг-26, 20:22   –1 +/–
>Инструменты распространяются под максимально свободными лицензиями.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

90. Сообщение от _ (??), 20-Авг-26, 20:41   +6 +/–
Ну вот - а в Go - её вообще нет :) 0 минут и так же - навсегда :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #102

91. Сообщение от _ (??), 20-Авг-26, 20:52   +/–
>> Один из лучших языков стал ещё лучше. .... Что ещё надо?!
> Алгебраические типы, тайп матчинг, линейные типы, система эффектов, исполнение на этапе компиляции и ARC вместо сборщика мусора. Вот тогда точно заживём.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #94

92. Сообщение от _ (??), 20-Авг-26, 20:54   +/–
HRT vs SRT ... На HRT под линуком никто и не замахивался.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

93. Сообщение от _ (??), 20-Авг-26, 20:59   +/–
У которых есть _свои_ непреодолимые недостатки :)

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #97

94. Сообщение от Аноним (72), 20-Авг-26, 21:13   +/–
>Это всё есть где то там - в других языках.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #104, #118

95. Сообщение от Аноним (95), 20-Авг-26, 23:46   +2 +/–
Как-то "лучший C" превращается в "худший С++". Где-то они не туда завернули.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #125

96. Сообщение от Аноним (95), 20-Авг-26, 23:58   +/–
Для меня Го - золотая середина, которой пользоваться невозможно. Для системного он слишком тяжёлый, на сях проще. Для вебв там нет ничего, даже по сравнению с питоном. И зачем он мне?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #119

97. Сообщение от нах. (?), 21-Авг-26, 00:13   +/–
К сожалению, llm все еще отвратительно программируют на forth.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93 Ответы: #105

98. Сообщение от нах. (?), 21-Авг-26, 00:35   –1 +/–
> Важное уточнение - данный подход работает только для родного кода на go.

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87 Ответы: #100, #101

100. Сообщение от laindono (ok), 21-Авг-26, 02:49   –2 +/–
В расте работает. Чуточку длиннее, надо заранее одной командой доустановить кросскомпилятор, если не. Кстати малоизвестная фича - можно запустить прогу под wine сразу и прозрачно. Мелочь, а приятно.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98 Ответы: #117

101. Сообщение от Аноним (72), 21-Авг-26, 03:50   +/–
>которого и есть процентов 90 в окружающей нас реальности.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98 Ответы: #115

102. Сообщение от Аноним (72), 21-Авг-26, 03:55   +1 +/–
>Ну вот - а в Go - её вообще нет

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #110

104. Сообщение от _ (??), 21-Авг-26, 06:04   +2 +/–
> Вопрос в том, что индустрия ОПЯТЬ выбрала один из самых плохих вариантов.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

105. Сообщение от _ (??), 21-Авг-26, 06:12   +1 +/–
Ээыыооуу... Уел так уел! (С) :)

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

107. Сообщение от Аноним (107), 21-Авг-26, 07:44   +/–
Как известно, существует два вида языков программирования - те, у которых есть куча проблем, за которые их не любят, но используют, и те, которые никто не использует.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #156

110. Сообщение от MaxT (?), 21-Авг-26, 13:32   +/–
>какого типа эта самая err.

Зачем тебе здесь тип err если ты его не обрабатываешь?

>тратить целых три строки

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #112

111. Сообщение от Аноним (111), 21-Авг-26, 16:53   +/–
А в С/С++ самостоятельный бинарник сделать нельзя? Через -static при компиляции? Любопытно.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #114

112. Сообщение от Аноним (72), 21-Авг-26, 17:38   +/–
>Зачем тебе здесь тип err если ты его не обрабатываешь?

С чего вы это взяли? Я говорю про то, что подход голанга совершенно никак не помогает обрабатывать ошибку. Если взять монаду Result, исключения в сигнатурах как в Java, типизированные алгебраические эффекты, то любой из этих вариантов будет лучше. Информация о исключении не потеряется, как в голанге, где всё превращается в безликий Err.
>у тебя так-же останется 3 строки

Нет. 3 строки на каждый вызов. Если сделать однократно вложенный вызов, то будет не 3, а 6. Двукратно - 9. Голанг заставляет дублировать строки даже если они не нужны.
>в отличие от раста или хаскеля где нужно начать приседать в противоположном направлении

В каком противоположном? Сразу видно, что у вас нет опыта работы ни с java, ни с haskell.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

114. Сообщение от ы (?), 21-Авг-26, 18:31   +/–
тсс, не порть зрелище
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

115. Сообщение от нах. (?), 21-Авг-26, 21:36   +1 +/–
> Чините руки. Как минимум есть https://wiki.nixos.org/wiki/Cross_compiling

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

116. Сообщение от анонец (?), 21-Авг-26, 21:38   +1 +/–
> https://simpleobservability.com/blog/go-portable-until-isnt

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

117. Сообщение от нах. (?), 21-Авг-26, 21:43   +1 +/–
> Скорее всего примерно так же будет в любом новом (по сравнению с сишечкой) компилируемом
> языке.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100 Ответы: #122

118. Сообщение от Аноним (118), 21-Авг-26, 21:50   +/–
>индустрия ОПЯТЬ выбрала один из самых плохих вариантов.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

119. Сообщение от Аноним (118), 21-Авг-26, 21:55   –1 +/–
Для автоматизации. Относитесь к Go как к сценарному языку со статической типизацией. Надёжная замена Питону.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #126, #128

120. Сообщение от ДядяПетя (?), 21-Авг-26, 22:12   +/–
Go защити нас от ошибок
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68

122. Сообщение от Прохожий (??), 22-Авг-26, 01:58   +/–
>зато можно пользоваться трудом программистов живших за пару поколений до тебя

Как будто это какое-то преимущество.

>И оно - работает

До первого сегфолта, ага.

>А не требует переписания с нуля

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


>но все большие проекты почему-то собираются с openssl

Придёт время, и это г-но мамонта заменят

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117

123. Сообщение от Прохожий (??), 22-Авг-26, 02:05   –1 +/–
>Садись, два! Модульный язык, это такой язык, где единицей компиляции и компоновки является модуль.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #129

124. Сообщение от Прохожий (??), 22-Авг-26, 02:20   +/–
Брат Антон пишет про макросы: "Нет, в Раст это калечно сделано. Посмотрите как это сделано в Lisp или Nim. В Rust на это без слёз смотреть нельзя."

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

Ответить | Правка | Наверх | Cообщить модератору

125. Сообщение от Прохожий (??), 22-Авг-26, 02:21   +/–
Почему "превращается"? Он с рождения такой кривой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

126. Сообщение от Прохожий (??), 22-Авг-26, 02:24   +/–
>Надёжная замена Питону

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #133

128. Сообщение от Аноним (72), 22-Авг-26, 03:01   +/–
>Относитесь к Go как к сценарному языку со статической типизацией.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119

129. Сообщение от Брат Анон (ok), 22-Авг-26, 07:07   +1 +/–
Понятие модуль придумала дедушка Вирт в 1980 г, когда тебя ещё в проекте не было.  И модуль -- это вообще не то, что в Расте или даже в Го (хотя Го -- испорченный Оберон).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #134

130. Сообщение от разрабemail (?), 22-Авг-26, 07:29   +/–
Реализована поддержка <...> методов
<...>
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

Ответить | Правка | Наверх | Cообщить модератору

131. Сообщение от Aller2TeaM (ok), 22-Авг-26, 09:47   +/–
Особенно рад за arch/simd, пользуюсь ещё с релиз кандидата. Получилось Minimax-ом во Freebuff-е подновить img и imaging с инструкциями avx2. Как результат - с 0.9~1.1 сек на изображение упало до 0.09~0.13 сек. В общем, нуждавшимся в arch/simd - мои поздравления. Да, пусть пакет и новый, но ещё разрастётся.
Ответить | Правка | Наверх | Cообщить модератору

132. Сообщение от AlexM (??), 22-Авг-26, 11:35   +/–
Имеея за плечами почти 30 лет программирования и хорошего знания таких языков как Си/C++, Object-Pascal, C#, Java, JS и Dart, за себя могу сказать, что если чисто  для бэкенда, то Go язык очень даже не плохой.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #136

133. Сообщение от AlexM (??), 22-Авг-26, 12:13   +/–
Убогий во всех смыслах питонный скрипт по факту работает в десятки и даже сотни раз медленнее чем Go и кроме того фактически не имеет никакой многопоточности из-за GIL.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #135

134. Сообщение от Прохожий (??), 22-Авг-26, 12:41   +/–
>Понятие модуль придумала дедушка Вирт в 1980 г, когда тебя ещё в проекте не было.  И модуль -- это вообще не то, что в Расте или даже в Го (хотя Го -- испорченный Оберон).

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129

135. Сообщение от Прохожий (??), 22-Авг-26, 12:55   +1 +/–
>Убогий во всех смыслах питонный скрипт

Вкусовщина

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #137, #138, #158

136. Сообщение от Прохожий (??), 22-Авг-26, 13:03   –3 +/–
>то Go язык очень даже не плохой

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #139

137. Сообщение от AlexM (??), 22-Авг-26, 14:19   +1 +/–
У меня тоже весьма богатый опыт за плечами и много языков освоено на проф. уровне.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #142

138. Сообщение от AlexM (??), 22-Авг-26, 14:20   +/–
У меня тоже весьма богатый опыт за плечами и много языков освоено на проф. уровне.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135

139. Сообщение от AlexM (??), 22-Авг-26, 14:35   +/–
> Нет, зеленые потоки довольно тяжеловесны.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #140, #141

140. Сообщение от Прохожий (??), 22-Авг-26, 16:18   –1 +/–
>Там пул потоков

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139 Ответы: #146, #147, #169

141. Сообщение от Прохожий (??), 22-Авг-26, 16:20   +/–
>Сборщик мусора это тоже хорошо на бэкенде.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139 Ответы: #148

142. Сообщение от Прохожий (??), 22-Авг-26, 16:29   +/–
>Вы можете топить за это питонное скриптовое убожество, но только что по синтетическим, что по нашим практическим тестам Go уделывает Питон в десятки, а с учётом мультизадачности буквально в сотню раз.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137 Ответы: #151, #176

143. Сообщение от user (??), 22-Авг-26, 19:43   +/–
При зависимостях с libc, нужно билдиьб пакет под каждую операционку отдельно. Впрочем это не проблема.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #170

145. Сообщение от Аноним (145), 22-Авг-26, 21:08   –1 +/–
Как-то не совсем удобно спорить с опытными мастерами, но хочется. Если что, простят.
Но вот какие мысли априори о языке Go возникают, даже не имея опыта на нём:
1. Нет исключений. Это хорошо для автоматически работающих програм (службы и задания, запускаемые on demand, по расписанию, по триггеру), но плохо для интерактивных программ (gui, cli).
2. Сборка мусора. Нормально для интерактивных программ (где нет большой нагрузки на gc), но не пойдёт для служб (там между запусками сборщика может произойти исчерпание памяти).
3. Статическая типизация. Неудобно для интерактивного сценарирования, но надёжно для остальных случаев.

Вердикт: Go - язык для автоматически запускаемых заданий (on demand, по расписанию, по триггеру/хуку).

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #157, #162

146. Сообщение от AlexM (??), 22-Авг-26, 22:36   +/–
> Это только подтверждает то, что я уже сказал. Пул не нужен, если потоки легковесны.

Какие потоки у вас лекговестны?
Вы сами-то понимаете о чём говорите?

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

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

А что вы понимаете под легковесными потоками?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140 Ответы: #152, #167, #178

147. Сообщение от AlexM (??), 22-Авг-26, 22:37   +/–
> Это только подтверждает то, что я уже сказал. Пул не нужен, если потоки легковесны.

Какие потоки у вас лекговестны?
Вы сами-то понимаете о чём говорите?

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

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

А что вы понимаете под легковесными потоками?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140

148. Сообщение от AlexM (??), 22-Авг-26, 22:51   +/–
> Если можно обойтись без него, то лучше обходиться без него.

В идеале для крайне быстрого и не прожорливого кода - да.

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

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

А Rust очень многообещающий язык. Но он не для бэкенда, а для системного программирования. Прямая замена Си.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141 Ответы: #153, #166

150. Сообщение от Вкатыш_в_ГО (?), 23-Авг-26, 02:34   –1 +/–
Очень сильное высказывание и очень неоднозначное.
для начала не мешало бы определить для какой области лучше всего подходит этот язык.
По сравнению с C#/Kotlin/typescript для написания бизнес логики приложения go ильно проигрывает в лаконичности и универсальности инструментария на уровне языка. run-time платформы не рассматриваю
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

151. Сообщение от AlexM (??), 23-Авг-26, 03:43   +/–
> Где я хоть слово сказал про бекенд? Я про автоматизацию рутины всё это время говорил.

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

Но беда-то в том, что на хайпе её сейчас пихают куда не надо, а именно на бэкенд.

Зачем нам вообще тогда с вами сравнивать это скриптовое г-но с нормальными компилируемыми языками и тем более специализированными на быстром бэкенде типа Go в данной ветке?
На этом и согласимся.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

152. Сообщение от Прохожий (??), 23-Авг-26, 05:37   +/–
>А что вы понимаете под легковесными потоками?

Изначально не потоки имел ввиду, а горутины и Future (Rust). Неверно выразился, извиняюсь.

Потоки - да, есть только те, которые ОС предоставляет.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #187

153. Сообщение от Прохожий (??), 23-Авг-26, 05:49   +/–
>Разница буквально в единицах процентов, максимум десяток

Я сужу исключительно на основе ОПЫТА другой фирмы, вы - на основе теории. Вот этой фирме не понравились задержки, которые появлялись из-за GC. Это стало для них такой проблемой, что они в итоге весь свой код мигрировали на Rust

>Но он не для бэкенда

Обоснуйте. Dropbox, Amazon (lambda), Discord, Figma, Coursera, npm, 1Password и другие используют Rust в качестве языка для бэкенда.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #179, #184

154. Сообщение от Прохожий (??), 23-Авг-26, 05:58   –2 +/–
Я пришёл в программирование в начале 2000-х. Мне тогда было двадцать с лишним лет. Это поздно для адептов Го (который возник только в 2009 году)?  Ох, уж эти "эксперты".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #171

156. Сообщение от Прохожий (??), 23-Авг-26, 06:05   +/–
>те, у которых есть куча проблем, за которые их не любят, но используют

Непонятно одно - зачем заниматься мазохизмом? С остальным согласен.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #173

157. Сообщение от Прохожий (??), 23-Авг-26, 06:17   +/–
1. Я - не сторонник Go. Однако хочу заметить, что без исключений жить можно в любом софте. Rust не даст соврать (как и продукты, которые на нём написаны, в том числе те, которые gui используют).

3. Статическая типизация для сколь-либо крупного проекта - это огромное достоинство. Даже если этот проект - какая-то скриптота (например, Питон). Мне в Питоне сильно не хватает статической типизации, приходится аннотациями типов и линтером перебиваться.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #165

158. Сообщение от Аноним (158), 23-Авг-26, 12:40   +/–
Всё верно, Go и делался на замену Python для своих юных программистов и не только, т.к. python не справлялся с задачами из-за своей медлительности. Google действительно много где использовал Python, т.к. он относительно прост и Golang именно для его замены и создан. Это не замена С/С++, а замена именно что Python. Согласитесь, что хорошо получилось?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135

161. Сообщение от Аноним (161), 23-Авг-26, 14:45   +/–
Сборочный скрипт софта на Go молча сделает on.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84 Ответы: #163

162. Сообщение от Аноним (162), 23-Авг-26, 20:26   +/–
1. Исключения переоценены, да и реализованы они обычно криво. Норм исключения в Erlang - это тупо jmp;
2. В Go gc лайтовый, не говоря об оптимизациях, которые исключают использование gc;
3. Динамическая типизация - всегда в итоге приводит к бардаку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #164

163. Сообщение от zionist (ok), 23-Авг-26, 21:45   +/–
> Сборочный скрипт софта на Go молча сделает on.

Сборочный софт на твоём любимом языке молча сольёт все твои приватные файлы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161

164. Сообщение от Аноним (167), 23-Авг-26, 23:07   +/–
(3) - это да.
(1) - в C++ каркас исключений очень хрупкий, чуть что не так сделаешь с исключениями - программа рушится. В Python 2 было неправильная реализация обработки исключений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162 Ответы: #181

165. Сообщение от Аноним (167), 23-Авг-26, 23:15   +/–
(1) - Если без исключений, то обязательно надо писать обработку ошибок, а это излишне в интерактивных сценариях и приложениях, лишняя трата времени. В интерактивных ошибку надо просто показать пользователю и завершиться.
(3) - Если вам не хватает статической типизации, то значит вы пишете приложение, а Python не для приложений. Java не пробовали? Она как Python, но прекрасно подходит для приложений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157 Ответы: #180

166. Сообщение от Аноним (167), 23-Авг-26, 23:25   +/–
Rust для системного программирования не подходит:
1. Нет стандарта. Для систмн. програмр обязательна жёсткая стандартизация языка и стандрт. фреймврка (взгляните на C++ и Ada).
2. Непростая интеграция с C-кодом, нисколько не проще чем, скажем у Java, а простота интеграции с C API - главное и непременное условие языка системн. программр. (взгляните как элементарно интегрируются C++ и Ada).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #186

167. Сообщение от Аноним (167), 23-Авг-26, 23:31   +/–
Под легковесными потоками обычно понимают кооперативную многопоточность.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

168. Сообщение от Аноним (169), 24-Авг-26, 13:43   +/–
Голанг - это именно то, что нужно. Кто уже отучился на плюсы, джаву и прочее, тем конечно обидно, но что поделать.
Главное достоинство языка в том, что количество необходимой экспертности для эффективного программирования намеренно ограничено сверху и поддерживается на доступных нормальным людям уровнях.
Еще язык намеренно ограничивает парадигму программирования, предупреждая таким образом перетаскивание "багажа" из языков с большой историей. Объективно, ООП с классами не безальтернативный подход, исключения - тот еще костыль. Их отсутствие только освобождает руки.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #183, #188

169. Сообщение от Аноним (169), 24-Авг-26, 13:47   +/–
На низком уровне корутины так или иначе как-то группируются, чтобы планировщик мог работать.
И если у самых умных студентов на уме только микрооптимизации, то у более опытных людей на передний план выходит обеспечение честного разделения ресурсов этими корутинами и управление этим разделением. Что без пулов немыслимо. Где их нет, люди их тут же пишут сами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140

170. Сообщение от OpenEcho (?), 24-Авг-26, 14:57   +/–
> При зависимостях с libc, нужно билдиьб пакет под каждую операционку отдельно. Впрочем
> это не проблема.

Нет, это проблема, когда зоопарк очень большой и разношерстный, а если б было CGO free то про парку с версиями либц можно было бы забыть

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143

171. Сообщение от _ (??), 24-Авг-26, 18:02   +1 +/–
> Я пришёл в программирование в начале 2000-х. Мне тогда было двадцать с лишним лет.

Стыдно что так сделал? Делай камингаут - ты такой не один ;)

> Это поздно для адептов Го (который возник только в 2009 году)?  Ох, уж эти "эксперты".

Ну вот ты тут нетрехсмысленно намекнул что ты мол синьЁр и вообще - дедЪ ...
Но при этом играешь в самую популярную у мальчиков игру - ту которя с линейкой :-D

Кому Go нравится - его хвалят. От всей души, фром зи боттом оф май хартЪ, тксказать.
А с другой стороны - haters gonna hate!

Как и с _любым_ другим <впишите_вах_фетищЪ> :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154

172. Сообщение от _ (??), 24-Авг-26, 18:06   –1 +/–
Если это всё - то Го самый годный из всего что только есть :)
Но ты просто глюпый и не осилил - в Go гораздо больше "пгекгастного, аж придушить бы" чем ты смог понять :-D
И что? В плюсах чтоли меньше? Или на чём ты там кодишь... промпт? Ой я пас! :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

173. Сообщение от _ (??), 24-Авг-26, 18:09   +2 +/–
Ну предложи свой вариант. Чтоб не мазохизмЪ (С) :-)

PS: Хороший соет: Джо, спили мушку и вазелином запасись заранее :)


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #156

174. Сообщение от _ (??), 24-Авг-26, 18:12   +/–
> К слову о перекидывании между системами. Пару месяцев назад я решил перекинуть бинарь, собранный на старой версии опенка, на более новую. Он у меня не запустился из-за версий libc

А потом ещё и удивляются когда им говорят что опенок, как ОС общего назначения - 0н0 :-)))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

176. Сообщение от _ (??), 24-Авг-26, 18:37   +/–
> (вот как с зелёными потоками в Го, которые сами по себе медленные, но зато простые в использовании).

Ну, как и положено, и спалился ты как с[т]ранный нуб! :)

Для представителей эпистолярного жанра - те платные курсы "пыхтон за 21 час" были разводом для вас - "немамонтов" :)
Потому как в реальности всё не как на самом деле! (С) :)
Всё наеборот! -  зелёные потоки сами по себе _быстрые_ , но зато опасные, и нихрена они не простые в использовании, даже в Go расслабляться не рекомендуется...

А теперь подай-те ка настоящих программистов, а не вот этого ... фотографа на телефон :)

Хочелось про вкус ананасов поговорить с теми, кто их и-в-правду ел :-D

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

177. Сообщение от Аноним (177), 24-Авг-26, 18:51   +/–
На удивление рабочий язык без пантов безопасности и инопланетного синтаксиса
Ответить | Правка | Наверх | Cообщить модератору

178. Сообщение от _ (??), 24-Авг-26, 19:05   +/–
> Какие потоки у вас лекговестны? Вы сами-то понимаете о чём говорите?

Он пейтонЩег :) После курсофф :)
С ним говорить о системных низкоуровневых вещах ... ну разве на бисерной фабрике работаешь :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

179. Сообщение от _ (??), 24-Авг-26, 19:09   +1 +/–
Не зыбывай - это Энтерпрайс - они и Node\JS могут заюзать для чего не надо-бы :)

А так то да - нравится Го - пиши на нём, нравится раст - ну ... эээммм ... пиши на расте :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153

180. Сообщение от _ (??), 24-Авг-26, 19:13   +2 +/–
>(1) - Если без исключений[...] В интерактивных ошибку надо просто показать пользователю и завершиться.

И что же в Go тебе мешает это сделать? :-)

>(3) - Если вам не хватает статической типизации, то значит вы пишете приложение, а Python не для приложений. Java не пробовали? Она как Python, но прекрасно подходит для приложений.

%-\ ерасе у тебя термоядерный мих! Ты уже в каком классе учишься?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165

181. Сообщение от _ (??), 24-Авг-26, 19:14   +/–
> В Python 2 было неправильная реализация обработки исключений.

В Python 2 - вообще _всё_ неправильно :-\ Но люди таки пользуют ...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164 Ответы: #182

182. Сообщение от _ (??), 24-Авг-26, 19:15   +/–
В Python __3__ - очепятка, hyppo typened ;-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181

183. Сообщение от _ (??), 24-Авг-26, 19:18   +/–
Да брось - это _всё_ прекрасная но _уходящая_ эпоха.
Промпту - пох, оно ЯП генерит для _вас_. Но это тоже не надолго... :(
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #168

184. Сообщение от AlexM (??), 24-Авг-26, 19:30   +/–
> Я сужу исключительно на основе ОПЫТА другой фирмы, вы - на основе теории.

Какой теории? У меня обработка сигналов на бэкенде. Я выше другому автору писал, что старый бэкенд у нас на Lazarus написан и прекрасно справляется. На FPC писать явно в разы проще чем на Си, а по факту работает не намного медленнее и очень мало жрёт.

Но при переводе на Go стало работать ещё быстрее.
А программистов на Go явно проще сейчас найти чем на FPC (особенно на перспективу).
Ещё это как минимум работает не медленнее чем на C#, жрёт памяти меньше чем C# и не требует среды.
А скриптовые Питоны тут вообще не годятся, поскольку реально по экспериментам тарахтят в сотню раз медленее не имея к тому же мультипоточности из-за GIL.

Поэтому, я вам говорю как раз ИЗ СВОЕГО ОПЫТА.

> Обоснуйте. Dropbox, Amazon (lambda), Discord, Figma, ...

Ну так можно писать бэкенд и на Cи/Cи++ и будет вообще максимально быстро. Некоторые даже до сих пор и пишут.
А на Rust будет работать несколько быстрее чем на Go - спору нет. НО писать и поддерживать бэкенд будет дольше и сложнее.

На Go тупо просто, предельно читабельно (IMHO за исключением defer) и результат достаточно быстрый (как написал выше).
А вот если бы нужно было писать что-то очень critical realtime системное или типа того, то наверное выбрали бы Rust.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153 Ответы: #185

185. Сообщение от _ (??), 24-Авг-26, 20:38   +/–
> На Go тупо просто, предельно читабельно (IMHO за исключением defer)

Уже - не, прямо в новости про полноценные generics ... я был против, если что. Но вотЪ :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #184 Ответы: #189

186. Сообщение от AlexM (??), 24-Авг-26, 23:11   +/–
> Rust для системного программирования не подходит

Тем не менее он именно туда и метит.
На нем уже драйверы пишут (какие-то новые для NVidia) и он уже практически признан альтернативным языком системной разработки для Linux (даже Торвальдс сдался).
Уже даже систему на нем пишут (Redox OS).

На Go такое никому в здравом уме в голову не придёт.
Зато для бэкенда Go очень даже на своём месте.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #190, #191

187. Сообщение от AlexM (??), 24-Авг-26, 23:23   +/–
И в gorutine и в future под капотом всё те же потоки.
Я, например, для FPC лет 10 тому назад свой Future<T> написал, содрав часть кода из .net. поверх собственного же пула потоков.

Go же использует потоки очень эффективно в рамках своих горутин. Проверено на практике.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152

188. Сообщение от Аноним (188), 25-Авг-26, 12:26   +/–
К сожалению последние изменения и предложения начинают уродовать язык.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #168

189. Сообщение от AlexM (??), 25-Авг-26, 14:07   +/–
> Уже - не, прямо в новости про полноценные generics ... я был против, если что. Но вотЪ :)

Ну generics - это IMHO хорошо. Ничего плохого в них нет кроме незначительного увеличения общего объёма исполняемого файла. Плюсов-то больше.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #185 Ответы: #192, #193

190. Сообщение от Аноним (192), 25-Авг-26, 21:22   +/–
Одно дело - системное программирование, и совсем другое - программирование драйверов для Linux. Потому что для программирования модулей ядра Linux используется специальная версия компилятора Rust и специальный стандартный фреймворк и он не обращается к crates.io, то есть это не ванильный Rust. Фактически, это два разных языка - ванильный и специальный для Linux.
Ванильный Rust - не подходит для системного программирования, а специальная версия - наверное подходит, но желающих на нём писать практически нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #186

191. Сообщение от Аноним (192), 25-Авг-26, 21:30   +/–
Я не отговариваю никого от использования Go, если нравится то пусть используют.
Я и не фанат Rust'а.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #186

192. Сообщение от Аноним (192), 25-Авг-26, 21:44   +/–
Класс это расширяемый тип. В Go отсутствие классов это попытка избавиться от проблемы хрупкости базового класса, которая возникает когда пытаются сделать производную реализацию путём расширения.
В Go наследование есть, но оно в форме refinement'а интерфейсов, а наследования реализации - нет.
Поэтому добавление классов в Go это полный отход от идеи языка, это тогда получится  Java
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189 Ответы: #194

193. Сообщение от _ (??), 25-Авг-26, 22:23   +/–
Go 2 ;-)

Да уже почти "нинужна" это всё, ЫЫ-шке пофиг, она для себя свой ЯП сделала, причём вначале все ведущие ЫЫ-вендоры это признали, а потом ... как обрезало :) Видимо нарылось что то эдакое(С) чего вам знать не положено :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189

194. Сообщение от AlexM33 (ok), 26-Авг-26, 15:35   +/–
Отсутствие классов - это прежде всего отсутствие лишнего действия по просмотру таблиц виртуальных функций. Кроме того это позволяет без глубокого анализа легко избавляться от большой части неиспользуемого кода и "агрессивно" инлайнить функции на этапе компиляции.
С виртуальными методами это не просто, а иногда и нельзя при наличии какого-нибудь RTTI.
Например, Java умеет оптимизировать такие вызовы и заменять их на прямые переходы на лету, поскольку динамически "видит" как они запускаются. При статической же компиляции в данном случае "всего не рассчитаешь" (tm).

В том числе и поэтому классы и не планировались в Go, задача которого изначально была тупо максимально быстро, но при этом безопасно молотить сетевые запросики и формировать на них сетевые ответики. С чем он великолепно и справляется.
Но с другой стороны из-за отсутствия классов другое применение этому языку в ближайшей перспективе не светит. И писать на нём сложные прикладные системы, прикручивать GUI и т.п. будет крайне болезненно.

Тем более, что для мордописательства у Гугла есть замечательный Flutter+Dart. Там чисто по коду все уже не так быстро, но классы даже весьма изощрённые (mixin-ы, например), всё изначально заточено на GUI и тоже максимально кросплатформенно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192

195. Сообщение от твой папа (?), 01-Сен-26, 00:57   +/–
Musl не осилил, маленький?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




XSQUARE
Inferno Solutions
Hosting by Hoster.ru
Хоcтинг: