Alexey
Гошники пишут на таком же точно си, без объектов, но с ГЦ
А struct'ы чем не объекты? ООП там нет, а объекты есть:)
nvkv
ну строго говоря я могу и типы вроде int объектами назвать
nvkv
и уже вчера говорилось, в си прекраснейшим образом в структуру можно добавить ссылку на функцию
nvkv
и будет ооп тогда сразу
nvkv
во все поля
Pavel
И что же все так не делают?
Logan
У джаваскрипта беда, кривоватая ооп модель и очень динамическая типизация
у JS две беды - архитектура и программисты, которые верят, что это единственный стоящий язык.
nvkv
И что же все так не делают?
во-первых делают иногда, во-вторых зачем?
Pavel
Чтобы го не изобретать ;)
nvkv
ты ядро линукса на го писать будешь?
Pavel
Врядли, там уровень абстракции не тот
Pavel
Нельзя абстрагироваться от байтов, страничек, айнод, модулей
Pavel
И чтобы мусор сам собирался
Igor
nano - это трэш
Отличная вещь. Юзаю лет 5, зависимость есть. Мышкой копировать можно. Вим не нужен.
Igor
как мелкий редактор может выжирать память?
Logan
как мелкий редактор может выжирать память?
легко и непринужденно. Он на freebsd обожал это делать. нужно было закрыть терминал в момент редактирования файла
Logan
где-то через пару часов он выжирал все
Pavel
Остается заметить что он написан на си и задать вопрос, нет ли тут связи? 😈
Logan
Остается заметить что он написан на си и задать вопрос, нет ли тут связи? 😈
нет, никакой. если бы он был написан на го - вряд ли бы он был написан сильно лучше
nvkv
в го жы гарбедж коллектор!
nvkv
как там может память утекать?
Pavel
Прально, только если баг в канпеляторе или программист насильно ее льет.
Logan
как там может память утекать?
ну будет не память утекать, а что-нибудь другое, велика разница? Кстати в ГЦ тоже может память утекать, правильные руки, приставленные к правильному месту - творят чудеса
nvkv
слишком тонко?
nvkv
хорошо быть вами
Pavel
Просто отличие в том, что если память утекает в ГЦ, то это бага которая фиксится и далее все гошники обновляются и утекать перестает. А если память утекает в си, то это личные проблемы разработчика.
nvkv
утекать память может по куче причин никак не связанных с GC
nvkv
например если человек не особенно задумывается, как эта самая Гэца работает
Pavel
> Кстати в ГЦ тоже может память утекать, я вот на это отвечал
nvkv
или как его память вообще используется
Logan
это сарказм был
этот ответ предназначался не вам, а апологету церкви java :)
Logan
вот все вы гоферы такие, в чудеса верите
он не гофер, он джавист. В го нет ООП как такового
Pavel
ко-ко-ко, жава не тормозит!
nvkv
он не гофер, он джавист. В го нет ООП как такового
не, был бы джавистом знал бы, что память может утекать с GC
Logan
например если человек не особенно задумывается, как эта самая Гэца работает
у меня был забавный экспириенс, когда у нас в сервисе срабатывал ГЦ и сервис вставал колом на 15 минут (все это время ГЦ лихордочно чистил объекты и сервис на внешние раздражители не реагировал вообще)
Pavel
Вообще говоря если память утекает вне GC то это не утечка :)
Pavel
Утечка - это неконторолируемый расход памяти по вине GC или менеджера памяти
Pavel
А если ты просто создаешь объекты и забываешь их удалить, какая же это утечка? Ты все контролируешь но забыл просто.
nvkv
утечка это когда память была, а потом не стало и хуй знает куда делась, обратно не возвращается, хотя мы очень громко зовём
🏳️ Phil
Давайте поиграем в другую игру. Допустим я собираю метрики в инфлюкс или графану. Есть чтото, что может периодически анализировать не вливая в себя дубль эти данные и чтото делать. Идеально, если это чтото - экспорт статуса, который я уже пуллю еще чемто
Logan
jvm?
sun jre 1.8
nvkv
sun jre 1.8
я в целом интересовался, jvm ли :)
Logan
А если ты просто создаешь объекты и забываешь их удалить, какая же это утечка? Ты все контролируешь но забыл просто.
то есть в С не бывает утечек как класса. Если ты где-то память выделил и не убрал за собой - это твои кривые руки виноваты. Забавно. Вечер открытий
Pavel
утечка это когда память была, а потом не стало и хуй знает куда делась, обратно не возвращается, хотя мы очень громко зовём
Так ты википедию прочти In computer science, a memory leak is a type of resource leak that occurs when a computer program incorrectly manages memory allocations[1] in such a way that memory which is no longer needed is not released. здесь именно сложные низкоурвневые случаи
Logan
я в целом интересовался, jvm ли :)
ну да. Там было очень много тонкой черной магии. По сути наш архитектор написал свой ГЦ внутри ГЦ
nvkv
покажи пожалуйста
nvkv
я встречал stop the world без магии, но не на 15 минут, конечно
🏳️ Phil
ой, не в тот чат
Pavel
Ладно тут смотря как интерпретировать, если ты сделал malloc а потом забыл освободить, тоже впринципе можно считать утечкой
Logan
ой, не в тот чат
ай, тут чего только не обсуждают :)
Pavel
Но если ты работаешь с GC то он сам за тебя сделает free ;)
Logan
Но если ты работаешь с GC то он сам за тебя сделает free ;)
причем сделает неуправляемо и поставит колом всю систему
Logan
за то и любим ГЦ
nvkv
на самом деле не обязательно
nvkv
ГЦ разные бывают
Pavel
ГЦ работает по своим алгоритмам, он рандомно ничего не делает
nvkv
я не готов в час ночи за ГЦ тереть, но есть нормальные, которые колом только поток поставят
nvkv
он сказал неуправляемо
nvkv
и это правда в 99% случаев
Logan
это да, там десятки разных тонкостей - способы и алгоритмы, параметры выборки, количество объектов для обработки, способы зачистки объектов... Вариантов сотни.
Pavel
Ну да тонкости есть, однако это себя оправдывает.
Pavel
Иначе бы так и писали до сих пор все программы на си
nvkv
nvkv
оправдывает где и как?
nvkv
в Swift нет GC
nvkv
И слава Богу, что его там нет