|
2.175, Брат Анон (ok), 10:42, 18/02/2021 [^] [^^] [^^^] [ответить] [↓] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> GUI юзабельный есть?
Gtk, Qt, Tk, UI, Godot, Flask, termux, HTML5 -- хватит?
| |
|
|
2.176, Брат Анон (ok), 10:45, 18/02/2021 [^] [^^] [^^^] [ответить] [↓] [↑] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
>> предоставляется новая директива "//go:embed".
>> Например, указание в коде комментария "//go:embed test.txt"
>> и объявление следом переменной "var f embed.FS" приведёт
> Т.е. добавили в язык фичу, но она живёт в комментариях?
> Это чё за жесть такая в 2021?
> Костыли в языке такие большие, что их видно даже в прессрелизах!
Т.е. то, что эта фича позволяет сохранить обратную совместимость первой ветки -- ничего не стоит? То, что эта фича работает на всех платформах -- это тоже не важно? И то, что 1.16 теперь работает исключительно с модулями -- этого вы (конечно) не заметили? Вы точно не в 90х?
Вы часом не поклонник перехода от питона2 к питону3?))
| |
|
1.50, Аноним (50), 16:23, 17/02/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +9 +/– |
Мне этот язык не нравится, чисто с админской стороны.
Есть, например, небольшая программка на Go. Небольшая - зависимостей 10-15. Вопрос, который меня убил - как ее собрать в пакет?
Изучив то что было на тот момент в Go 1.14 по вытягиванию зависимостей, я был в ужасе.
Получается, что чтобы собрать программу текст которой содержит внешние зависимости от других библиотек, мне нужно... скачать их из какого-попало гитхаба/гитлаба и прочего.
В гитхабе оно привязывается к тегу ну или бранчу... не важно. Главное что признаком нужной версии в конечном итоге является хэш коммита. НО! Пакетный менеджер Go видит тег, а не хеш. То есть теоретически если программа prog1 версии 0.1.0 требует библиотеку lib1 версии 1.0.4, то 1.0.4 будет тегом, который разработчики lib1 могут поменять.
Видимо программистов на Go не учили что такое "релиз" и, типа, это нормально зацепиться зависимостью на какой-то бранч в который в конечном итоге могут закоммитить и что-то поломать. И вот эта байда по всему Go.
Fedora, например, решает проблему так:
1. Написать спек для каждой библиотеки, от которой зависит программа так, чтобы результирующий SRPM проверял не только тег, но и хэш коммита
2. Писать спек rpm который будет тянуть код для сборки программы не из git, а из специально оформленных SRPM-пакетов с кодом зависимостей.
В этой схеме получается, что есть тьма-тьмущая пакетов, которые используются только как зависимости, но отдельно не собираются. Каждый из них нужно сопровождать, отслеживая факт "фикса", когда разрабы поменяли либы, поменяли тег или когда приложение затребовало другую версию в связи с обновлением. Кроме того надо тянуть в репозиторий зоопарк из версий одной и той же либы.
Судя по обсуждениям и объяснениям, RedHat решил себе столько работы придумать, потому что не уверен в том, что завтра, послезавтра или через 5 лет программа из репозитория соберется, если у нее есть внешние бесконтрольные зависимости. Debian, как я понял из новостей про kubernetes решил что "и так сойдет", но я не проверял, это не точно.
Просто если дать Go-компилятору волю, он именно в инет на git полезет за своими зависимостями. Какие-то идеи по надежному сопровождению, гарантии, повторяемость сборки летят псу под хвост, если не обмазаться сотнями SRPM-ок на Go... с одной стороны. С другой стороны, работы на пустом месте оно создаёт так много, что лучше программы на Go просто не поставлять ни в составе дистров, ни в собственных корпоративных репозиториях. Только бинарно, построив отдельную специфичную для Go систему сборки и тестирования.
У питона, например, таких проблем нет, потому что питоновское барахло имеет релиз.
Если у вас на предприятии кто-то хочет писать на Go программу, которую нужно сопровождать Вам, постарайтесь донести до менеджмента, что наличие кода на Go увеличивает нагрузку на техподдержку. Микросервисы в кубиках пусть пишут, но не больше. Благо, с ними девопсы мучаются в отдельном CI/CD, а не техподдержка.
| |
|
2.178, Брат Анон (ok), 10:49, 18/02/2021 [^] [^^] [^^^] [ответить] [↓] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> Видимо программистов на Go не учили что такое "релиз" и, типа, это
> нормально зацепиться зависимостью на какой-то бранч в который в конечном итоге
> могут закоммитить и что-то поломать. И вот эта байда по всему
> Go.
Вы сейчас какую-то откровенную фигню написали. Посмотрите вот сюда:
> golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad // indirect
Здесь ВООБЩЕ нет никаких тегов. Дата коммита с точностью до микросекунды и хэш от коммита.
"Какой-то бранч"?))) Ну ка, пример в студию, как вы сможете зацепить бранч НЕ МАСТЕР?)) Ой, простите.. НЕ ПРАЙМЕРИ))
Прижде чем постить абсолютно неправильное понимание пакетного менеджера в го и демонстрировать свою безграмотность -- поговорите хотя бы с джуниуром для приличия.
| |
|
|
2.134, Аноним (112), 23:21, 17/02/2021 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +2 +/– |
Давай я тебе по существу отвечу раз уж.
Гошка - гуано. Ниже мой камент про монгу, плюс немного собственного опыта. И даже если бы все поделки на го не жрали память как не в себя (уверен, где-то есть волшебные настройки, но пока не могу понять где, впрочем, уже ненужно), все равно воротит от синтаксиса. Для меня самое логичное обяснение гошкиному хайпу это то, что Пайк, при всем уважении, набрал кредитов и ипотеку впридачу, вот и вынужден симулировать бурную деятельность в гугле. Видосы с плюшевыми куклами для совсем уж целевой аудитории в том числе.
Я вернулся к плюсам. После питона, го, и прочего - радость просто неимоверная.
| |
|
3.153, Аноним (113), 07:13, 18/02/2021 [^] [^^] [^^^] [ответить] [↓] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +1 +/– |
Ну у меня память в гошке не течет и расходуется слабо, в сравнении со всякими пхп и питонами, так вообще копейки.
Синтаксис языка божественен, его не любить можно только пока не начал писать, через три месяца работы на нем я понял, что нашел язык мечты и только дженериков не хватает...
А успех объясняется просто: gc, компилируемый, удобная многопоточность, кроссплатформенный, низкий порог входа, быстрая разработка (time to market ниже), активно развивается.
| |
|
|
1.121, Аноним (112), 22:14, 17/02/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
Кстати! Кстати, пацаны, тока что вспомнил - ведь mongoimport на гошке, а я им недавно пользовался и вот что получается. Импорт бэкапа размером 3.5 гига отжирает ровно столько же гигов оперативки. Я демо-аплаенс виртуалбоксовский делал чтоб клиент заценил у себя на локалхосте все прелести нашего супермегапродукта. Четыре гига оперативы для виртуалки вполне хватало и для mongodb, и для мегасистемы, и еще свободно полтора гига оставалось. Но для cpaных монговских тулзов на гошке, тупо чтобы импортнуть базу, понадобилось еще подключить своп 8 гиг. Я чесслово в тот момент позавидовал майэскюэльшикам. А мне еще по плану делать импорт данных за месяц, а не за два дня как в данном случае. Сколько оперативы жрать будет? Очкую заранее.
В курсе вас держать не буду, есть более важные дела.
| |
|
|
|
4.198, Брат Анон (ok), 15:14, 18/02/2021 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| –4 +/– |
> ... а вот памяти он потребляет
> меньше, да. Ты лучше, прежде чем свои скобочки высирать, посмотрел бы
> бенчмарки.
Чушь на постном масле. Хотя бы на том основании, что Ява выделяет виртуальную память процессам в своей памяти. Управление локальной памятью относительно суперлокальной памяти процессов -- это явно дороже, чем прямая работа с кучей. Учи матчасть, сынок. Вот тебе небольшенький пруф:
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go.html
Разница в потребляемой памяти 12...16 раз. Если бы ты ко мне пришёл на собеседование -- я бы тебя не взял. Ни на Яву, ни на Го.
| |
|
|
|
|
2.221, Аноним (112), 22:47, 18/02/2021 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
Нет, все-таки сишка - это круче гошки когда надо на минимальных ресурсах максимум отдачи. Пройденный этап для меня. Конечно, мнение субъективно, и, например, на серверах с минимумом 128GB оперативки я 10 лет не заморачивался с тем же mongorestore. Но как правильно сказал один чел, - дешевизна железа - это миф. И когда надо сделать рабочий вариант хренотени на минимальных ресурсах - вот тут-то и затык. А минимальные ресурсы - они повсеместно сейчас. Для кое-чего, если сумеете выжать из них нужное - будет профит. Ну вы поняли. Надеюсь.
| |
|
|