Anonymous
Вопрос к продвинутым товарищам: Имеет ли смысл решать математические задачи типа как на сайте https://projecteuler.net/ Если целью стоит стать прогером, а не математиком? Смысл вопроса в том, что большинство прогеров занимается конечными продуктами вроде там.. микросервисов на го, всяких там редисок, ребитов, вебсерверов итд.
Paul
В соседнем чаще спрашивали уже про это задание
Anonymous
https://www.codewars.com лучше тут
Спасибо, завёл там акк. Пока что прорешал 8-7-6 уровни, вышел на 5
Oleg
вопрос по vgo, вот есть проект, у него есть файлик go.mod со всеми зависимостями, каким образом я могу загрузить все зависимости и запустить проект?
Daniel
ты тут самый адекватный, вот и просим поучаствовать, как арбитра. а, возможно, у тебя еще и идея интересная есть
кто просил идею для компетишена? смотрите: есть такой проект https://github.com/coturn/coturn это STUN/TURN сервер для WebRTC гошной имплементации я не нашел, а она была бы не лишней - возможность встраивать в свой сервер, возможность расширять, например, метриками, и все вот это вот у меня вот на руках сейчас проект, в котором, возможно, придется использовать WebRTC p2p и, соответственно, STUN/TURN
Daniel
код этого сервера, кстати, хорошая иллюстрация к идее "препроцессор зло". реально нечитаем из-за #if !defined
Daniel
голый C...
Daniel
а вот это - иллюстрация к тому, почему такие вещи редко пишут на C (и тут бы не надо, на самом деле) $cloc ./coturn/src/server/ ./coturn/src/apps/relay/ 43 text files. 43 unique files. 0 files ignored. github.com/AlDanial/cloc v 1.76 T=1.04 s (41.4 files/s, 33639.8 lines/s) ------------------------------------------ Language files blank comment code ------------------------------------------ C 20 4811 1586 24401 C/C++ Header 23 724 1339 2041 ------------------------------------------ SUM: 43 5535 2925 26442 ------------------------------------------
Daniel
24 тысячи строк кода.
Daniel
24
Daniel
вдумайтесь, что можно запилить, написав 24 тысячи строк на go
Pawel
Почему в Го такие дорогостоящие системные вызовы?
Alexander
почем?
Pawel
в питоне, в C#
Michael
😂😂😂
Alexander μήδομαι [в отпуске]
Какие языковые конструкции в Go больше всего экономят бойлерплейт? Мне в голову сразу идёт сборщик мусора, но в отдельных приложениях это неприменимо. В официальной доке о профилировании Go есть пример, когда для существенного улучшения производительности и потребления памяти переходят на ручное управление через предаллокацию и кэшированное переиспользование аллоцированных объектов.
Alexander μήδομαι [в отпуске]
Каналы и горутины конечно много усилий экономят) Но так ли уж много нужно их в типичном сервере?
Alexander μήδομαι [в отпуске]
Наверное, гошные интерфейсы могут сэкономить много тривиального кода, но к сожалению, я пока видел мало примеров.
Alexander μήδομαι [в отпуске]
В общем, если у кого-то есть размышления и примеры на тему "почему в Go код значительно компактнее чем в C/C++", было бы интересно узнать.
Andrey
Го можно сравнивать с Java... При чем здесь c++
Alexander μήδομαι [в отпуске]
Го можно сравнивать с Java... При чем здесь c++
@onokonem сравнивает Си с Го и считает, что на Go коррче, поэтому предлагаю развить эту мысль.
Alexander μήδομαι [в отпуске]
Го это не системный язык. Ядро ты на не напишешь.
Почему-то сами создатели Go в официальной документации охотно сравнивают своё детище с системными языками. "— What is the purpose of the project? — No major systems language has emerged in over a decade, but... blah-blah... We believe it's worth trying again with a new language, a concurrent garbage-collected language with fast compilation." https://golang.org/doc/faq#What_is_the_purpose_of_the_project "— Why are you creating a new language? — Go was born out of frustration with existing languages and environments for systems programming..." https://golang.org/doc/faq#creating_a_new_language
Alexander μήδομαι [в отпуске]
Сравнивать они могут с чем угодно, факт в том, что из-за gc , применение его ограничено. Чего не скажешь например о rust. Но вообще, я о том, что сравнивать его более корректно с Java.
ОК, с создателями Гохи разобрались: они ничего не понимают в системном программировании и делают неправильные сравнения. Их в этом чате нет и возразить нам они не смогут :) Но @onokonem здесь есть и он, наверное, сможет нам рассказать, почему он сравнивает Go и C. На мой взгляд влияние сборщика мусора можно контролировать, если использовать предаллокацию. В разработке игр это распространённая практика. Чтобы не вылететь в середине игры по OufOfMemory, чтобы не пойти на сборку мусора на полминутки, разработчики заранее определяют, что будет не более N объектов типа T и управляют их выделением вручную через слайс фиксированного размера. В системном программировании есть похожие soft/hard limits на количество дексрипторов, но я недостаточно компетентен для того чтобы делать твёрдые заявления об устройстве ядер.
kås
Ага давайте сравним стопы gc в джаве и го
kås
И график изменения пауз за пару лет в го и за 10 в джаве
Anonymous
В джаве не один gc
Andrey
ОК, с создателями Гохи разобрались: они ничего не понимают в системном программировании и делают неправильные сравнения. Их в этом чате нет и возразить нам они не смогут :) Но @onokonem здесь есть и он, наверное, сможет нам рассказать, почему он сравнивает Go и C. На мой взгляд влияние сборщика мусора можно контролировать, если использовать предаллокацию. В разработке игр это распространённая практика. Чтобы не вылететь в середине игры по OufOfMemory, чтобы не пойти на сборку мусора на полминутки, разработчики заранее определяют, что будет не более N объектов типа T и управляют их выделением вручную через слайс фиксированного размера. В системном программировании есть похожие soft/hard limits на количество дексрипторов, но я недостаточно компетентен для того чтобы делать твёрдые заявления об устройстве ядер.
Мы спорить конечно можем, но зачем!? В Яве тоже можно делать биндинги на нативные функций, у управлять памятью через offHeap. Но системным язык от этого не станет. Да это ведь и не проблема. Да, го ближе и легче при работе с нативщиной, и ограничения в языке есть в пользу большей совместимости с С... Ну и ладно. Но в остальном он на Яву похож больше. Яву тоже делали с оглядкой на С.
Andrey
Мне кажется маловероятным, что кто пишет драйвера на го или ядерные модули...
Andrey
Если это вообще возможно
Alexander μήδομαι [в отпуске]
Chrome можно написать на Go.
Andrey
Chrome можно написать на Go.
На яве тоже можно :) Как и на С++, впрочем как и на JS.
Pawel
Ага давайте сравним стопы gc в джаве и го
в Го gc сверхбыстрый. SWT паузы не превышают 100 мкс на любом размере хипа. Джава и проч - сосут по самые гланды
Pawel
гугли. всё доступно
Vladimir
гугли. всё доступно
Да, поэтому я и говорю что хороший вброс, зачет
Vladimir
Поведутся те кто не знает как Гц в го работает
Vladimir
Маладчина
Anonymous
Имеет, просто чтобы лучше овладеть языком ну и косвенно этот опыт пригождается.
Как именно позволяет лучше овладеть языком, например, такая задача и где это можт пригодиться? https://projecteuler.net/problem=71 имхо, мозгосрани много а кода мало
Andrey
Или наоборот?! :) Вообще, если смотреть на большие компании, то они любят задротство на собеседованиях...
Anonymous
Такая нет... т.к. я даже не все слова знаю в этом тексте :)
ахаха да там все такие. Особенно, учитывая, что это из лёгкого уровня...
Anonymous
Или наоборот?! :) Вообще, если смотреть на большие компании, то они любят задротство на собеседованиях...
Ну часто были вопросы про связь логарифма с числом эйлера или про фигурные числа?
Anonymous
я решил десятка два задач, всей этой матоты в голове поприбавилось, теперь вот думаю, как от неё избавиться.
Alexander μήδομαι [в отпуске]
Vladimir
А как он работает? :)
Чуть хуже чем в рекламе :)
Vladimir
А как он работает? :)
Я на это обычно ссылку на этот доклад даю: https://www.usenix.org/conference/srecon17asia/program/presentation/sibiryov
Michael
по поводу го и не системный - https://github.com/achilleasa/gopher-os
Tigran
у меня го в простой программке аллоцирует 500 ГБ виртуальной памяти, это норма?
Alexander
норма.
Alexander
это же линукс ?
Tigran
мак ось
Tigran
где можно почитать поподробнее, что и зачем он при этом делает?
Artem
и в этой статье ответа нет
Artem
там только базовые вещи "а что такое память"
Michael
красивые картинки погц гоу https://twitter.com/brianhatfield/status/804355831080751104 100гб видимо не проблема, под линукс людям и 512 мало, в 1.11 должны снять это ограничение
Alexander μήδομαι [в отпуске]
Не похоже на 100 мкс :) Хотя и 1 мс это вполне по-божески.
Vladimir
Не похоже на 100 мкс :) Хотя и 1 мс это вполне по-божески.
Там беда в том что на большом количестве мусора фоновая фаза начинает адски тормозить
Vladimir
И перестает например справляться
Alexander
И перестает например справляться
да харе, вон там сверху говорят что на любых объемах работает
Vladimir
Говорят и верят в это
Vladimir
лул. и на 100 гигах ?
Паузы зависят от колличества объектов по скорости. Ну и расплатой за скорость в го то, что память дольше висит в непонятном состоянии.
Alexander μήδομαι [в отпуске]
Примеры нужны. Большие объёмы мусора – сколько ГБ, сколько часов рантайма. Тормозит – это сколько в ms.