После шести месяцев разработки увидел свет релиз языка программирования Go 1.23, который развивается компанией Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD...Подробнее: https://www.opennet.me/opennews/art.shtml?num=61701
> Язык достаточно лаконичен, но при этом код легко читается и воспринимается.Так может написать только человек, который не пробовал сделать что-то сложнее хелловорлда на этом поделии.
В чем затруднение? Не смогли разобраться с горутинами, интерфейсами и дженериками?
С дженериками и авторы языка не смогли разобраться, если судить по стандартной библиотеке
С этим всем можно разобраться, ничего сложного. А вот победить полный фриз всего приложения, когда GC начинает в отдельном потоке чистить мусор - невозможность. Это такой рантайм бай дизайн
Отключи его нафиг чисть сам, уже давно так можно.
Нахер мне тогда Go для этого?
Он же лаконичный написали же тебе.
Ага, особенно в обработке ошибок.
Звучит как брехня. Давай код - посмотрим. У нас много коммерческих проектов на го - ничего такого нет.
Так вы тяп ляп и в продакшон, зачем вам фризы смотреть. Вы же не ракетой управляете.
Ты тоже не управляешь. Те, кто управляет делают это с MISRA C и Ada. Но при этом для расчётов используют самый обычный Эксель, а не пишут специальный калькулятор на ассемблере. Видимо, что-то знают про отношения задач и инструментов.
Брехня это ты со своими коммерческими проектами. А проблема это описана даже самим гуглом, так реализован GC в Go - он фризит весь основной поток исполнения приложения, чтоб в параллельном потоке запустить сборщик мусора
Ага, на доли микросекунд. У GO один из самых быстрых GC.
Ахаха, это как дважа не тормозит
Ага, рассказывай. Java давно в бигдата. И не только.
> Java давно в бигдатаПитон тоже, и?
У GO GC кстати быстрее Java, на столько, что они сейчас пилят (или запилили) GC аналогичный Goшному.
Не, ну если писать как на крестах привыкли - все в один большой монолит, то таки да - проблЭма. А так - собирает мусор у тебя одна из 20 реплик сервиса - на общий SLA фактически не влияет.
Вот Вы сейчас ему всю концепцию порвали.
Вам ответят "так это что же, мне надо распределенные микросервисы что ли писать?", и будут (в чем то) правы.
И начнется святой холивар между монолитчиками и распределёнщиками...
> Не, ну если писать как на крестах привыкли - все в один большой монолит, то таки да - проблЭма.Шардированность и монолитность - вообще никак не связаны.
> А так - собирает мусор у тебя одна из 20 реплик сервиса - на общий SLA фактически не влияет.
А реплика у тебя клиентов в этот момент не обслуживает? Или хочешь сказать что гошные приложения когда подпирает бегут и стучатся в балансер чтобы тот снял них трафик, а потом, уже в уединении, спокойно делают свои GC, подтираются и возвращаются к работе? Господи, я этим гошников теперь до конца жизни буду стебать.
> А реплика у тебя клиентов в этот момент не обслуживает? Или хочешь
> сказать что гошные приложения когда подпирает бегут и стучатся в
> балансер чтобы тот снял них трафик, а потом, уже в уединении,
> спокойно делают свои GC, подтираются и возвращаются к работе? Господи, я
> этим гошников теперь до конца жизни буду стебать.Да нет, у меня потребление памяти гошными сервисами <1Gb в среднем и сборка мусора на одной ноде из 20 парит примерно "никак". Но у вас-то небось риалтаймовый хайлоад на плюсах - так поди шта и не получится?
> меня потребление памяти гошными сервисами <1Gb вЭто кстати скорее всего вирутальная память. У нас по факту не более 30Mb жрут.
Ещё раз - слова ничего не стоят, код в студию. Нет кода - иди под кровать стирать слёзки полотенцем. Всё крайне просто)
https://github.com/golang/go/issues/54444
Там речь про web assembly.
Я знаю английский, там речь про то, что когда запускается GC в GO - всё фризится наглухо. Ну и да, какая разница что там wasm? Wasm, реализованный на Go, не должен работать?
У вас много не hello world на WASM?
> Ну и да, какая разница что там wasm?wasm != constant time
поэтому кроме как хелоувордов и вебмазни не применяется, где даже сотни милисекундные задержки хомяки не заметят
И при чем тут это ишью? Там речь про wasm и к тому же нерелевантно. Попробуй ещё раз.
> А вот победить полный фриз всего приложения100% зеркало виновато, - не рожа
>А вот победить полный фриз всего приложения, когда GC начинает в отдельном потоке чистить мусор - невозможность. Это такой рантайм бай дизайнСыку - ты Го и Java не попутал? Впрочем эксперту такого класса - какая в * разница?! :-)))
Не бывает там полных фризов, а вот жор памяти может быть, когда гц проца не хватает
Самый длинный фриз в прикладном ПО на Go из-за GC будет меньше 1мс и почти наверняка меньше 0.1мс. Нет такого человека, который бы это заметил.Но судя по вот этой ахинее:
> когда GC начинает в отдельном потоке чистить мусор
вы явно не эксперт (в Go для GC не выделяется отдельного потока)
Синтаксис у него чудаковатый, конечно, но потом привыкаешь. Даже несмотря на странности, его код воспиринимается лучше современной Джавы.Хотя, мне и не хватает тернарного оператора, и надоедает писать одну и туже обработку ошибок через несколько строк.
Что угодно лучше современной (если не рассматривать примитивное подмножество) java. Даже 1С.
Котлин хуже например.
Не соглашусь. Котлин весьма не плох, в плане как "modern java", я имею ввиду для написания бэкенда, а не для андроида.
Единственный, а для кого-то может существенный недостаток в том, что он "гвоздями" прибит к JetBrains IDE, вы нигде больше не сможете на нём полноценно разрабатывать.
> гвоздями" прибит к JetBrains IDEИ… И что? Это плохо? JetBrains неплохие IDE делает, если тебе, конечно, работать, а не жаловаться на жизнь. Да и Котлин норм, если нужно задачу решить, а не эстетствовать на счёт формы шашечек. Цель определяет средства (разработки).
а ты попробуй её приобрети как организацияну ? что с лицом ?
Ох уж эти ретрограды, все современное им не нра, раньше травка была зеленее.Хотя справедливости ради, даже старая java удобней go во всем,
начиная от работы с зависимостями, обработки ошибок/exceptions, работы с genericsи работает хоть на Linux, хот на MacOS хоть на Windows, хоть на android
Что то вы хлопцы слишком торопитесь!
Чем вам батники в CMD не угодили? Пишите под command.com!
> Хотя справедливости ради, даже старая java удобней go во всем,что у Go лучше
* простая доставка библиотек, достаточно коммита в гите, не нужно поднимать корпоративный Nexus / Artifactory для хранения .jar
* быстрое время старта
* статическик бинарники под платфрорму, для запуска готового приложения не нужно ставить (обновлять, заставлять обновлять) что-либо. GraalVM на этом фоне выглядит как набор костылей (привет прописывание статика, рефлексии и т. д.)
* множественные возвраты из функцийЭто не значит что Java плохая, у неё тоже есть плюсы:
* актуальна, развивается, недавно добавили виртульные потоки например, это сильная штука по мне, чего десятилетиями не хватало, в превью "настаивается" structured concurrency
* да, более пОлно сделанные дженерики
и там и там:
* большие экосистемы
* популярны
* легко найти специалиста
На, держи. https://github.com/maledog/ssc3_serial_proxy Небольшой helloworld который работает мостом для последовательного порта. Давно правда не обновлял, но вполне рабочий. Может принимать запросы от нескольких источников и ставить их в очередь, может преобразовывать ModbusTCP запросы в ModbusRTU. Расшарить можно неограниченное количество Com-портов. В винде тоже работает. Единственное ограничение - парадигма запрос-ответ. Ну так большинство пром-протоколов по этому принципу работают. Мне вот до сих пор помогает. Довольно удобный язык когда нужно расшарить что-то по сети или быстро набросать прототип.
Еще удобно например для таргетированных DDoS когда с минимальными знаниями программирования надо написать многопоточное приложение. При этом уместиться в 50 строк кода и это приложение потом можно запустить пусть даже и на windows NT4 или XP. С современными версиями конечно нельзя, но всегда можно собрать под go 1.0(правда подозреваю что придется собирать минимум на xp и старой версией gcc, но можно). Вот я лет 10 назад собирал приложение которое должно было собирать логи NT4 в И переправлять из в базу данных, и при этом на сервере NT4 даже никакого рантайма не требовалось (хотя какие там рантаймы?). И если помнится была там одна особенность, что некоторые строки в журнале приложений ты можешь получить только через winapi из подключенных локально библиотек, а если запрашиваешь удаленно, то только ссылку на переменную, которая на другом компе если у тебя нет нужной dll не прочитать. Вот почему было важно чтобы приложение запускалось локально.
И синтаксис и правда очень простой для изучения.
Я рад что язык начнёт нормально развиваться с телеметрией, которая активно помогает разработчикам!
Я вот как только увидел новость, так сразу же захотелось поднять что то свое оригинальное типа SunSolaris, aix, Plan9 под 32 бита или даже просто Net\OpenBSD на каком нибудь mips/loong утюге
и как начать слать им свою телеметрию на telemetry.go.dev.
Давай на Эльбрусе.
Давай Эльбрус.
Почему именно Я?
Сейчас поворчат на Opennet комментаторы и пойдут по работе разное в Visual Studio Code писать.🫵 💽 🚰 ◀️
Я так тоже над всеми стебусь, хотя сам использую Uncoded.
> телеметрия не добавляется в пользовательские приложения, собираемые при помощи инструментарияно пойдут
> в Visual Studio Code писатьхотя там телеметрия в приложения добавляется
Значит, дело не в телеметрии.
на JS...
Go полюбил сразу, а Ts-JS сразу не зашел ни в какую со своими вебпаками и фреймворками.
Как же просто в Го сконфигурить и скомпилить проект под любую платформу, в отличие от других приблуд.
как будто вс-код это что-то плохое
ms vs code это что-то плохое, без "как будто"а вот объяснять это людям, которым вчера мамка купила компьютер, бесполезно. они первое время не смогут поверить, что бывает по-другому, буду воспринимать всё агрессивно
Я себе сам компьютер купил, когда вас, скорей всего, ещё на свете не было. Мне объясните, что там такого плохого? Я, если что, в своё время разные IDE перепробовал. Начиная с Турбопаскаля в ВУЗе.
Я тоже хочу послушать объяснение, но только внятное и обоснованное!
ВС-Код в нынешнее время - что-то вроде блокнот++ в былые, только гораздо лучше всё, включая подсветку синтаксиса, плагины итд итп
Вот где ещё можно с одинаково серьёзным удобством работать с жабой, котлином, с/с++, реакт и реакт-натив( жс и хтмл/цсс-подобное, с нативной поддержкой модулей нпм/ярн ) и даже с Си/С++ для AVR и ESP32 на винде, лине( включая отечественные ) и яблоке и совершенно бесплатно ?
А ведь есть плагины и для работы с БД...
А какие альтернативы собственно? Про Vim,Neovim,Emacs не надо плавали знаем более 10 лет. Успешно пересели на VSCode.
блокнот++ при этом все ещё лучше чем вскод
Как минимум хранением "не сохраненных в явном" файлов.
Как все хотят следить за всеми. Не понимаю откуда такое упорство. Я понимаю, что "хотят улучшить и углубить", но не до такой-же степени, что нужно в языковую платформу это пихать... Что творится в головах у тех, кто это продвигает?
> Как все хотят следить за всеми. Не понимаю откуда такое упорство.Вот меня тоже удивляет такая упоротость.
Когда сбор анонимных данных, которые можно просто взять и почитать в файле всякие поехавшие называют слежкой.
"Телеметрия сохраняется в локальных файлах, доступных для аудита, и охватывает только данные об особенностях работы с инструментарием"Для таких как ты даже закон о Персональных данных приняли.
Но ты не останавливайся, и начинай заливать про шпионаж!
Чем больше будет градус абсурда, тем меньше психов будут слушать.
> Когда сбор анонимных данныхК сведению, можно отследить человека, например, по статусу "в сети", имея данные доступности мобильной связи. Этот статус достаточно анонимен, не так ли?
А в GO есть статус "в сети"?
Или ты это для нагнетания "атмосферы тревожности" написал?Вон опеннет определяет IPшники для анонимом не из ТОРа и выдает им номерки.
Это тоже слежка? Или это другое.А что уж говорить про номера машин... каждую можно отследить по номеру!
И злые гаишники не разрешают вешать номер соседа, когда к любовнице ездишь.
Ты случайно не из секты "ИНН метка дьявола!"?
Это тот закон где за миллионы слитых данных штрафы десятки тысяч рублей? Самому не смешно?
Ну, целых 60 тысяч рублей штраф составляет.У меня некий знакомый для своей фирмы очень сильно хотел, что бы их корпоративная почта была на майл_ру.
После завершения работ по подключению, он решил спросить, мол что, "вк-майлру наверняка ведь надежней, чем (проклятый) яндекс?", на что, ему пришлось просто показать новость за прошлый год, о том, что указанная организация была оштрафована за утечку пользовательских данных на 60 т.р.
Человеку стало грустно.
Как будто из Яндекса ничего не утекало.
Размер штрафа зависит от юрисдикции страны, на правда ли? Другими словами, в других странах такие штрафы могут быть гораздо более чувствительными для того, кто нарушает закон.
Не нужно ёрничать, есть хорошая цитата из фильма Ликвидация:
"Есть люди, которые не хотят, что бы их портреты печатали в газете "Правда". Таки имеют на это право!"
Я это к тому, что без моего согласия собирать у меня любые данные - недопустимо!
Ну а если без этого пользоваться продуктом будет нельзя, я не гордый, найду другой продукт.
> я не гордый, найду другой продукт.Пока ещё да, можешь. Но всё меньше их :(
Не "Как все хотят следить за всеми.", а это просто считается дёшево и модно. Дёшево - потому что не надо проводить опросы и/или собирать фокус группы и т.д. Другое дело, что часто ещё наблюдается, что над опросами/фокус группами надо думать, а тут вроде как всё автоматизированно.
Смысл собранной телеметрии в том, чтобы верно её обработать. А вот об этом кажется часто забывают. И в итоге получается, что какая-то критичная фича, которая используется раз в полгода, но при этом реально оч спасает, может быть выкинута на мороз, потому что "ну ведь используется раз полгода, какая-то фигня минорная, никому она не нужна, а поддержка денег стоит, выкинем её нах".P.S. По наблюдениям, неистовый сбор телеметрии начинается, когда решают, что все фичи поддерживать оч дорого (в широком смысле), и надо что-то выкинуть.
Думаю ты прав.
Вначале в проект добавляют только самое нужное, потом он становится популярным, пользователи начинаю просить "дайте больше фич".
В итоге напихивают 100500 свистелок и прделок, а потом оказывается что их надо поддерживать, тестировать, проверять на регрессии.
ИЧСХ это не бесплатно!В этот момент в голову приходит здравая мысль "а нужны ли нам такое кол-во фич?"
Но нельзя просто взять и удалить.
Поэтому надо посчитать, а скольким людям оно вообще нужно.По поводу "верно её обработать" тоже согласен.
И обычно все-таки смотрят по уникам, а не по частоте использования.
Например добавление аккаунта это функция которой большая часть пользователей делают 1 раз.Но если "фича которая всех спасает" нужна только 0.5% уников, то сорян, ее дропнут.
>В этот момент в голову приходит здравая мысль "а нужны ли нам такое кол-во фич?"Кто сказал, чистый Си?!
>>В этот момент в голову приходит здравая мысль "а нужны ли нам такое кол-во фич?"
> Кто сказал, чистый Си?!В чистом СИ такая зловонная куча из UB и кривого "стандарта", что он совсем не подходит.
Чего только стоят фичи "каст всего чего угодно к чему угодно через void*", перечисления котроые можно сравнивать как попало и прочие прелести, самого отвратительного языка программирования в мире.
> В чистом СИ такая зловонная куча из UB и кривого "стандарта", что он совсем не подходит.Гениальный ЯП! Смотрю как нейроинклюзивных он него трясёт и ржу :)
> Чего только стоят фичи "каст всего чего угодно к чему угодно через void*",Ну я ж говорил, тут как на жЫсЫ без мозгов програмить - чирьевато! :)
JS-ники не дуйтесь, я знаю несколько JS-ников "которые могут"(С) и я их вполне уважаю (не за словеса - за дело). Но "средняя температура по больнице"(С) что в JS, что в Си, что в Rust ... :-D
> Гениальный ЯП! Смотрю как нейроинклюзивных он него трясёт и ржу :)Так уже много лет СИшники пишут, и все без мозгов.
То за буфер выйдут, то память два раза очистят.
Тонны CVE от бракоделов говорят лучше чем любые другие аргументы.Какой ужас, наверное он просто убивает нервные клетки превращая носителей в идиотов.
И ты как прекрасный пример! Так что ржы-ржы, я ведь над умственно отсталыми смеяться не буду.
Му-ха-ха!Ну что есть ещё несогласные что Си - гениальный язык?!?! :))))))
А в чём его гениальность выражается? Вон, нормальные люди от этого страдают, специально более строгие языки придумывают, чтобы избегать типичные баги дыряшки. Примеры? Ада, Мисра Си, Раст. Все эти языки не от хорошей жизни придумали.
Всё нормально творится. Причем тут какая-то платформа? Телеметрия встроена в инструментарий и включается эксплицитно при желании. Чё ты трясешься?
Работа у него такая. Как на картинке "белки истерички".Потом начнется
"а если они в следущей версии ее включат!?",
"а если они будут включать по сигналу со спутника!?",
"а если они прокрадутся анону в спальню и засунут зонд в задницу!?" (обычно у таких персонажей нездоровая фиксация на заднем проходе, возможно какие-то нереализованные фантазии)
>"а если они в следущей версии ее включат!?"«Штирлиц ещё никогда не был так близок к провалу»...
Делаем ставки господа, на каком релизе переведут на "умолчательно включено", и на каком сделают неотключаемой опцией...
Вот это более практичный подход! Ибо могут как И так и НЕ :)PS: Ставки будут?
А как потом ИИ сочинять, который на Го писать будет :)
Вот что творится в головах кто соглашается это использовать гораздо больший вопрос...
А в чём всё-таки проблема, ну, кроме склонности к паранойе?
Честному гражданину нечего скрывать.
> Как все хотят следить за всеми.Так всем же скрывать нечего, все честные, от того и тенденция
А ещё - это лучше товарищ-майора, как тут любят писать боты, замученные товарищ-майором.
А на сколько глубоко оно собирает телеметрию?
Открой файл и почитай.
Это же так просто)
Для тебя специально их складывают локально.
> Открой файл и почитай.Это же так просто)
Советы раздавать действительно "просто". А сами то пробовали разобраться в той каше,которая скидывается в лог? Для большинства даже опытных она мало отличается от китайской грамоты.
> Язык достаточно лаконичен, но при этом ... В инструментарий встроена возможность отправки телеметрииотлично!
02.08.2024
Лидер проекта Go принял решение покинуть пост14.08.2024
Выпуск языка программирования Go 1.23 с поддержкой телеметрииОн что-то знал...
> 02.08.2024
> 14.08.2024Ты действительно думаешь, что такое дописывается в проект за две рабочие недели?
Добавление телеметрии обсуждали еще с начала 2023 года, а может даже раньше.
telemetry in the Go toolchain #58409
on Feb 8, 2023
github.com/golang/go/discussions/58409
Так он наверно не сразу покинул а тоже обсуждал...
...и решил не участвовать в этом беспредела. Как и ведущий мейнтейнер Дебиана в своё время.
> Он что-то знал...Вообщето это именно его идея и была очень даже агрессивно телеметрию в opt-out, но так как в итоге получилось opt-in, потому наверное и ушел... не понятый
> По умолчанию отправка телеметрии на внешний сервер отключена (opt-in) и требует активации при помощи новой команды "go telemetry on".удивлён, обычно делают наоборот и даже если отключаешь, то она потом может включиться
вот бы и локально-собираемую отключали по дефолту
Скорей всего, чтобы сотни тысяч девопсов не забыли _выключить_ её отправку для триллиона пересобирающихся каждую минуту коньтейнеров.
Скорее всего сотни конкурентов Гугла внезапно по ошибке начнут телеметрию слать куда надо.
> Скорее всего сотни конкурентов Гугла внезапно по ошибке начнут телеметрию слать куда надо.У Го языка появились конкуренты ?!!!
Го язык конкурентноспособный ?!!!
> Го язык конкурентноспособный ?!!!Вообше-то это его основаня фишка, - легкая работа с конкурентностью
У Гугла полно конкурентов которые используют го.
> У Гугла полно конкурентов которые используют го.Изпользуют, - но не форкают язык, а телеметрия она только в тулчайне языка, т.е. нет там конкурентов
Сначала собирается локальная телеметрия, а затем в очередном выпуске она оптом отправляется на сервер. Внезапно. Не зря же собирали телеметрию локально. Это же элементарно!
> Сначала собирается локальная телеметрия, а затем в очередном выпуске она оптом отправляется на сервер.Алюминевая шапочка: go telemetry off
Улучшенная шапочка: rm -fdr ~/go/telemetry
Премиальная титановая шапочка: Все что включенно в алюминевую и премиальную + iptables, apparmor, SELinux...И да, телеметрия то про тулз (help programs in the **toolchain** collect useful data about their **reliability, performance, and usage**) а не про хелуворды написанные на тулзе, и если б она была раньше, то не произошел бы факап на эплах при одной оплошности, в одном из релизов
Платиновая шапочка с подкладкой из палладиевой фольги - саморучно выпиливает телеметрию из исходников.
Если все так хорошо почему бы телеметрию совсем не собирать? Или если нужна почему ты руками сам её не собираешь и в гугл не отправляешь?
> Если все так хорошо почему бы телеметрию совсем не собирать?Потому-что был прецедент, когда из за отсутствия телеметрии и бага в тулчайне на эплах случился большой облом, отсюда желание иметь фидбэк
> Или если нужна почему ты руками сам её не собираешь и в гугл не отправляешь?Собираю и отправляю, - только не в гугл, а в гитхабовские ишшю, эт оно так работает давно в опен сырцах, телеметия же (если онa не наглеет, как в браузерах и мелкософте) немного про другое, про статистику и обломы, очень полезная штука, особенно для улучшения языка
Молодец!
А вот я не хочу, ни сам собирать, ни позволять собирать у меня )
> Алюминевая шапочка: go telemetry off
> Улучшенная шапочка: rm -fdr ~/go/telemetry
> Премиальная титановая шапочка: Все что включенно в алюминевую и премиальную + iptables,
> apparmor, SELinux...А выходя из дома - не забудьте одеть каску, бронежилет, прихватите миноискатель, глушак, пару пзрк и что-нибудь от танков ... wait, oh shi... совет то актуальный некоторым :)
Это терпилы.
Иными словами "только один поцелуй" или "я только на пол-шишечки!" :D
> "я только на пол-шишечки!" :DРабочая схема же - всегда прокатывало, особенно при ректальном подкате! 👉👌
Обычно сначала выключают чтобы хомки радовались, а потом "случайно" включают. А потом для их же блага так и оставляют.
Язык отличный. Для тех, что переживает насчёт телеметрии - она по-умолчанию собирается локально. Никуда не отправляется. Читать тут: https://go.dev/doc/telemetry#config.
Не мамонты просто не истребимы. Вот откуда вы только берётесь, а?
А при сборке самого компилятора её вообще отключить можно?
ты в курсе, что значит "теле" в слове "телеметрия"?
Кто вкурсе про gccgo? Даже в GCC 14 gccgo соответствует эталонному Gо 1.18. Работа над повышением версии ведётся?
1.18 - это уже весьма неплохо.
1.18 не собирает уже некоторые проекты.
А именно?
Даже долбанутые generic уже есть: "Go 1.18 includes an implementation of generic features ..."
Ну и кому нужен этот Go? Я как-то взялся его учить, да так и не понял сути. Когда всё то же самое можно написать на С++. Так под Гошку нет даже графических тулкитов, а если и есть, то все они завязаны на тот же С++.
Твой си плас плас небезопасно работает с памятью. И в асинхронщину он не умеет нормально. И состояние гонки для си плас плас нерешимая проблема.
Когда такое читаю, то вспоминается что куча критически важных программ написаны на C и C++ и оно как–то работает сколько лет уже как а как какие–то поделки написанные очередным васяном разбирающие JSON на пару с XML и гоняющие данные по HTTP так сразу вылазит эта тема о памяти, асинхронщине, многопоточности и прочем.
> как–то работает сколько лет уже"как-то" довольно хорошее определение, учитывая количество совершенно наитупейшних ошибок работы с памятью, которые "поделки написанные очередным васяном" совершить не могут
Зато вместо наитупейших ошибок работы с памятью васяны делают много других наитупейших ошибок. А работает оно вполне неплохо. Особенно учитывая сложность систем.
> то вспоминается что куча критически важных программ написаны на C и C++Но есть нюанс - НИ ОДНА из них не написана _тобой_ :)
> поделки написанные очередным васяном разбирающие JSON
А вот такого добра даже ты написать _можешь_, закроешь пачку тикетов, получишь денюжку, купишь шоколадку или даже айфон, если напряжёшься ... сечёшь расклад?
За что платят - то и работают, увы.
Ну да, ну да. C++ это так сложно, так сложно. И так непонятно что нужно быть семи пядей во лбу чтобы сделать хоть что–то сложнее простой программы. Хотя погодите. Мы же как–бы программисты и корочки у многих есть. И это же наша объязанность разбираться в программировании.
>C++ это так сложно, так сложно.Сравните спецификацию Плюсов и Го по количеству страниц.
>И это же наша объязанность разбираться в программировании.
Именно! В программировании, а не спецификациях языка программирования. Если один и тот же продукт можно на Го сделать проще, быстрее, качественнее, чем на Плюсах, то зачем страдать?
ЯП и не должен уметь в асинхронщину. Умеют либы. В плюсах они есть
На Go написаны Kubernetes и obfs4.
И вообще-то докер чего уже более чем достаточно.
> Kubernetes и obfs4Простите, но я понятия не имею что это такое, не сисадмин и максимально сторонюсь всей этой облачно-контейнерной темы, да и мне уже за 70, я олд скул. Пришлось гуглить. И это все заслуги? Насколько обоснована поддержка языка, на котором ничего толкового так и не написали?
Ну так там весь цимес в динамическом горизонтальном масштабировании, и увеличении\уменьшении запускаемых микросервисов, при увеличении\уменьшении нагрузки.
Для этого Go и писали.
Ведь этот код запускается на серверах у провайдеров, и оплата выставляется за потребленные вычислительные мощности.
Что заставляет снижать потребление при снижении нагрузки, а не крутить одно монолитное приложение постоянно в максимальном потреблении занятых ресурсов.
> мне уже за 70, я олд скул.А чего Вас в ваши годы в IT интересует?
Просто весь текущий движ там ныне - в облаках :( А в них на Go сделано четь более чем овердоУЯ :)
Скажите чего Вы в IT делаете, может и Вашей области есть чего на Go - чтобы оценить нужно\ненужно (Вам).
> obfs4Изделие без должной документации. Спасибо, лучше уж старая школа.
Это в смысле, "чтоб ещё и не работало"/"не дописано" было, или как?
Как раз наоборот. Диды писали утилиты с подробной документацией, оформленными man страницами. Чтобы без интернета и вопросов на форумах можно было понять и настроить. Как настроить obfs4? Можно ли его использовать не для tor, а для своего прокси? Как? Где хотя бы описание файла конфигурации?
>Диды писали утилиты с подробной документацией,Сразу вспомнилась одна хитрая мелкопрограммная контора из Редмонта.
Помнится, когда они выпустили свою операционную систему, затем подождали некоторое время конкурентов, и ВНЕЗАПНО заявили о наличии в их операционке недокументированных параметрах\функциях, что позволило им получить некое преимущество над конкурентами.
Так что не надо тут, "диды" тоже разные бывают
> Изделие без должной документации.Никогда такого не было! И вот - опять ... (С)
;-)
и именно поэтому они так безбожно тормозят вместе с докером. может, веб-"программисты" к такому и привыкли после винды/intellij/ms vs code, но для нормальных людей это шиза
Ну, так-то vim при попытке что-то осмысленно-полезное с ним делать - тоже преизрядно тормозить начинает...
Да ну! Просто ты вытворяешь дурости, а vim в свою очередь не может понять, что ты от него хочешь.
> Да ну! Просто ты вытворяешь дурости, а vim в свою очередь не
> может понять, что ты от него хочешь.Ну да, ну да - там же более другой(ТМ) LSP, ага. Еще вот поиск с рефакторингом на большом проекте прям агонь как работают и git там более лудший(ТМ)...
> Ну и кому нужен этот Go? Я [..] не понял сути.Ты не понял и сделал вывод, что он никому не нужен? Какая-то алтернативная логика.
> Когда всё то же самое можно написать на С++.
Можно и суп вилкой жрать.
> Так под Гошку нет даже графических тулкитов, а если и есть, то все они завязаны на тот же С++.
Есть биндинги буквально ко всем GUI тулкитам. Qt, например. Что тебе еще надо?
Или для каждого языка программиования нужно изобретать свой GUI?
> Есть биндинги буквально ко всем GUI тулкитам.С такой логикой можно и на питоне писать "полноценные десктопные приложения". Только люди всё же умные и не занимаются извратом, когда есть устоявшийся зрелый С++.
> С такой логикой можно и на питоне писать "полноценные десктопные приложения".Ты не поверишь...
>> Есть биндинги буквально ко всем GUI тулкитам.
> С такой логикой можно и на питоне писать "полноценные десктопные приложения".Ну дык и пишут ...
> Только люди всё же умные и не занимаются извратом, когда есть устоявшийся зрелый С++.Это не те ли умные люди которые выкручивают руки чтобы народ на Qt писал на своём варианте жабаскрипта, а не на твоём С++ ;-D
:-))))
Umputun из Radio-t нахваливает и говорит что хорошо заходит верстальщикам чтобы они могли кроме вёрстки ещё и программы писать гоняющие JSON между базами данных.
> Umputun из Radio-tих шоу давно скатилось в сходку старых пердунов, что ноют на вполне нормальные и работающие вещи
Пробовал go1.22 забутстрапить до go1.20 собирается, а потом ошибка в подсистеме CGO.
Go 1.23 с телеметрией или "GFY edition"
Не очень понимаю смысл его существования, пока есть c#, который, вместе с .net, в каждом релизе бьёт новые рекорды по скорости.Пока в c# не было aot, мб и был смысл, сейчас хз
Ну, as for me - гошечка сильно попроще правильно используемого c# будет, не?
Он может и простой, но плохо понятно, для чего он нужен. В нем есть хороший стек для работы с сетью, на нем пишут различные прокси. Но дальше куда ему двигаться я хз, с GC в низкоуровневых системах места нет, для вебни не хватает высокоуровневых фреймворков пл типу ef core, asp.net
> Он может и простой, но плохо понятно, для чего он нужен. В
> нем есть хороший стек для работы с сетью, на нем пишут
> различные прокси. Но дальше куда ему двигаться я хз, с GC
> в низкоуровневых системах места нет, для вебни не хватает высокоуровневых фреймворков
> пл типу ef core, asp.netАсинхронная работа с сетью, да - там, где нет сколько-нибудь сложной бизнес-логики (А есть она не всегда) мегафреймворки скорее вредят. Из относительно неожиданного - статическая сборка по дефолту - сделала удобным для создания переносимых cli-утилит. Ну и он правда "простой" не сказать "примитивный" - нишу "языка-программирования-для-непрограммистов" у python'а пожалуй не отберет - но админам\devops'ам по ощущениям вполне "заходит"
> гошечка сильно попрощеЯ только протер монитор после прошлых комментаторов, а вы снова жир пускаете. Особенно позабавило сравнивать вездесущий C# и хипстерское поделие, на котором ничего особо внятного не сделали.
>> гошечка сильно попроще
> Я только протер монитор после прошлых комментаторов, а вы снова жир пускаете.
> Особенно позабавило сравнивать вездесущий C# и хипстерское поделие, на котором ничего
> особо внятного не сделали.Путаем теплое с мягким? "Распространенность" и "сложность" инструментов конечно некоторым образом корреллируют - но делать на этом основании вывод о том, что pascal сложнее c# я бы не стал, нет, не стал... Но вы продолжайте, продолжайте - нам очень интересно!
> pascal сложнее c#А вы иного мнения? Код на Паскале хоть раз видели? Паскаль довольно сложный язык, не намного легче той же Ada. Если же конечно мы говорим не о хелло ворлд.
>> pascal сложнее c#
> А вы иного мнения? Код на Паскале хоть раз видели? Паскаль довольно
> сложный язык, не намного легче той же Ada. Если же конечно
> мы говорим не о хелло ворлд.Ээээ... если опять же теплое-с-мягким не путать - то уверен. Сишечка - простая. Паскаль - простой. Одна концепция империтивного программирования и можно ехать, остальное опционально. C# - сложный, там надо еще весьма развесистую концепцию ООП в голову укладывать.
А вот сделать сколько-нибудь сложный проект на "простом" языке - прям сложно, да.Или вы про современный object pascal\delphi? Там да, все уже дискуссионно )
Мне почему то кажется что вы оба не вдупляете что под именем Pascal тут идёт разговор о двух ЯП.
Один классический паскаль, то что Вирт придумал. Второе - это то что из паскаля сделал Борланд
Сами пасквилянты пытаются говорить о Pascal и Object Pascal ... разница понятна, и она достатона для того чтобы считать их хоть и похожими - но разными ЯП. Как Си и С++ :)
> Мне почему то кажется что вы оба не вдупляете что под именем
> Pascal тут идёт разговор о двух ЯП.
> Один классический паскаль, то что Вирт придумал. Второе - это то что
> из паскаля сделал Борланд
> Сами пасквилянты пытаются говорить о Pascal и Object Pascal ... разница понятна,
> и она достатона для того чтобы считать их хоть и похожими
> - но разными ЯП. Как Си и С++ :)"Или вы про современный object pascal\delphi? Там да, все уже дискуссионно )" - а это о чем тогда было? Как раз таки пытался уточнить, а об одном и том же мы говорим? :)
> а это о чем тогда было?О том же, ем шляпу :)
А чем вам мешает АОТ? Компиляция быстрее будет - все о чем это говорит.
И скорость это скорее к функциональным языкам программирования.
Где Гугл там всегда телеметрия. Они её успели засунуть даже в свой язык программирования.
тостер сам решает какую булочку ты хочешь)
> В циклах "for"Мда, они ещё только циклы for допиливают...
Это же прекрасно. Дело делают, а не пихают кучу нового говна как в сях(++), растах, явах с каждым релизом.
работы ещё много ... например, цикл while ещё не сделали
> например, цикл while ещё не сделалиа это что тогда, если не while ?
for i <= 10 {
fmt.Println(number)
i++
}
Изнасилование мозга, заменить несколько разных ключевых слов на одно ради "упрощения" было отвратительной идеей
> Изнасилование мозга, заменить несколько разных ключевых слов на одно ради "упрощения" было
> отвратительной идеейКак сказал один очень умный дядя Эйнштеин:
- Делайте вещи как можно проще, но не проще этогоЗачем плодить множество ключевых слов для одной и той же сущности цикла, когда применются for, while,until когда по идеи это просто loop, так что ИМХО с "выносом мозга" вы поторопились
> Зачем плодить множество ключевых слов для одной и той же сущности цикла,
> когда применются for, while,until когда по идеи это просто loop, так
> что ИМХО с "выносом мозга" вы поторопилисьЕсли бы это была одна сущность цикла. Нет, это перегрузка синтаксиса, когда слова for/while/foreach решили заменить на одно и отличать конструкцию уже по аргументу цикла.
При этом эта конструкция страдает по эргономике и логике, потому что базовая вещь "идти от a до b" непредставима кроме как через легаси C синтаксис, который говно по читаемости
for i := a; i < b; i++ {}
Хотя это мог быть for range!
Окей, теперь это можно сделать в виде for range, со свежедобавленными генераторами, но эргономика всё равно так себеfor i := range Range(a, b).Walk {}
// Спасибо за языковые костыли, что по спискам можно итерироваться без этого уродства.
for element := range list {}
// Ах, да, это же получается ещё один синтаксис, ведь генераторы не позволяют выплюнуть 2 значения!
for key, value := range dictionary {}
// Хочешь итерироваться по своей реализации словаря? Дереву например
for entry := range TreeIterator(myTree).Walk {
// Эргономишно!
key := entry.Key
value := entry.Value
}
// Неужели "for" тут является лучшим словом объясняющим семантику?
for i < 10 {}
for {}Тем временем страшный сложный Rust:
for i in a..b {}
for element in list {}
for entry in dictionary {}
// Вау, неужели для поддержки мап не нужно отдельный синтаксис вводить?!
for (key, value) in dictionary {}
// А для пользовательских типов не нагромождать говно которым являются гошные новые генераторы?!
for (key, value) in my_tree {}
while i < 10 {}
loop {}
Начали за while, закончили rust-омЕсли обсуждать один язык, то на нем и надо тормозить, а не сравнивать с другими инструментами.
Они, - инструменты, для этого и делаются разными, каждый под определенную задачу. Го проще, устаканенный, раст моложе и сложнее. И когда повсюду проталкивается аджайл разработка, посчитайте с точки зрения экономики, скорости и поддержки кто из двух языков сейчас выигравает.
Вилка - для мяса, ложка - для супа и не надо тогда сравнивать, нет и не будет одного "правильного" языка - никогда. Раст очень хорош на своем поле, Го на своем
Даже это слишком сложно. GoTo это же ещё проще и универсальнее. Пример:Write("Начало счета ")
f = 3
m1: If f <= 9 Then GoTo m3 Else GoTo m2
m3: Write(f & " ")
f = f + 2
GoTo m1
m2: Write("Конец счета")Ещё им можно заменить for чтобы не забивать себе голову:
i = 1
m1: If i > 200 Then GoTo m2
Debug.Write("ФУТБОЛ ")
i = i + 1
GoTo m1
m2:
Вот так вот. Вместо while и for только одно слово.
> Изнасилование мозга, заменить несколько разных ключевых слов на одно ради "упрощения" было отвратительной идеей.Если ты выучил главный язык для программиста - а я об английском, то ... что for, что while, что untill - это вполне distinguish terms :) И для думающих на этом языке все три формы - просто убийственно логичны.
:-Р
> Мда, они ещё только циклы for допиливают...В питоне только недавно switch добавили и это ему не помешало продоминировать ;)
Ну насчёт swtitch case Гвидо был прав так-то.
> Ну насчёт swtitch case Гвидо был прав так-то.Субъективно...
Есть два разных Гвидо.
Один написал The Zen of Python.
Другой с дзеном не согласен и ушёл, когда заругали за несоблюдение.Второй ещё в 2006 хотел добавить Switch/Case, но ты как будто говоришь про первого.
А, его не Гвидо написал. Но дзен всё равно был "изложением руководящих принципов" первого Гвидо.
Один из самых стремных распиаренных языков последних времен, конкурирует с Растом. Страдающий побочными эффектами своего "фундаментального" иного проектирования от традиционных ЯП.
Язык с GC и без пакетной экосистемы ну никак не может конкурировать с растом.
> без пакетной экосистемыПриехали... специалисты...
Язык с GC и без пакетной экосистемы ну никак не может конкурировать с растом.
>Отправка телеметрии поможет выявить аномалии и нештатное поведение, оценить особенности взаимодействия разработчиков с инструментарием и понять, какие опции наиболее востребованы, а какие почти не используются.go итак обрезан по самое не хочу, что там ещё может не использоваться? Или в тьюринговой трясине ветки else не нужны?
>В циклах "for" при определении диапазонов значений появилась возможность указания функции в качестве аргумента выражения "range" для использования этой функции в качестве итератора, что позволяет создавать собственные итераторы для любых последовательностей.Сколько лет долгого развития, и они не дотягивают даже до седьмой джавы. А ведь могли бы взять SML/Core ML, если уж им так нужен простой язык, и сделать его популярным. Удивительно, как они с одной стороны отказываются от простоты первых версий go, то итераторы добавляют, то дженерики, но с другой отказываются признать всю мощь и красоту Ocaml/Haskell/...
Go весьма хорош, как и Haskell впрочем. Мне оба нравятся.
Смотрю на комментарии, в частности удаленные. Это так глупо ненавидеть язык программирования. Просто срач на пустом месте. Воспитанные люди просто промолчали, если что-то не нравится. Глупые просто ничего не заметили. А по факту обычный язык программирования со своим рынком. Телеметрия это конечно печально - все равно что сообщить - мы вам устроили бэкдор. А вы кто? Товарищ майор чтоб нас оберегать? Глобально-мировой? Ну или допустим это для улучшения "сервиса", хоть мы и не в ресторане. Чего-то я не помню контракта на тестирование. Как-то неприятно, хоть и мелочь для меня - я очень маленький в бизнесе. А вот для крупных компаний - очень неприятная новость конечно.
Нет не глупо. Ничего глупого в этом не вижу.
> Это так глупо ненавидеть язык программирования. Просто срач на пустом месте.Попробуй сказать это Линусу.
Не против Go, но в целом - разделять на "хорошее" и "плохое" для человека нормально и не глупо. И решения в языках программирования тоже можно так классифицировать. И чем лучше с этим справляются люди, тем меньше неудачных решений укореняется. Неудачные решения через годы дают о себе знать уязвимостями / сложностью поддержки / тормозами.
Телеметрияна тебя столько камер наблюдения смотрит на улице а ты телеметрии боишься)
Я его под mipsel (OpenWRT) использовал - работает и шустренько. Низкий порог входа - не особо вдавался в детали как там электронны шевелятся в моей железяке чтоб выдать сайт. Ну или вы понимаете - я бы даже на джуна собеседование на него не прошел, а сайт работает.