Anonymous
он 70% времени в GC на высокой конкурентности
Anonymous
так что да, ощутимо хуже графхоппера
Doge
ебанутсья можно. зочем же такое в прод тащить, когда есть С, компилируемый в нативный байткод и миллион инструментов, которые позволяют достать буквально все происходящее внутри?
И да, я по этим же причинам всё вычислительное на работе сейчас на расте пишу. Куда проще следить за производительностью и памятью, чем на управляемых языках.
Doge
вообще нет пулинга памяти
Вот о чём они вообще думают, лол.
Anonymous
как бы странно это не звучало
Anonymous
Вот о чём они вообще думают, лол.
они ж давно похоронили проект
Doge
они ж давно похоронили проект
Так это те вещи, который в таких задачах надо изначально делать
Doge
говноделы, сэр
Самое смешное, что код у них при этом более красиво написан, чем в том же графхоппере, где методы в тысячу строк - это норма.
Anonymous
Самое смешное, что код у них при этом более красиво написан, чем в том же графхоппере, где методы в тысячу строк - это норма.
да, у них код более-менее, не считая отборных кусков. но за разработкой серьзная инженерная мысль стояла только за имплементацией алгоритмов в аспекте выбора правильных структур данных.
Anonymous
а другие аспекты остались просто незамеченными.
Doge
я до раста наверно еще не дорос, не знаю. меня С, cmake и gdb в терминале полностью устраивают
У раста свои плюсы есть в том, что за 2 года, что я на нём в прод пишу - у меня реально было 0 проблем с memory safety. Ни единого сегфолта, ни единой утечки, ни единого раза с покореженной памятью
Doge
Прям красота
Doge
Но проблем тоже хватает, в основном около UX вокруг системы типов и некоторых растовских её особенностей.
Doge
Ну и нехватает всяких плюсовых няшностей в плане дружелюбной к кастомным аллокаторам стд либы (в найтли оно есть, но частично пока) и placement new, что тоже может помешаться.
Doge
Боюсь, дело не столько в Расин, сколько в прямых руках.
Ну конкретно memory safety (если не лезть явно в unsafe) он гарантирует и там сложно на этом проблемы поймать. (Утечки можно - но они как раз memory safe)
Anonymous
А чем тебе valgrind не угодил?
Anonymous
Не хватало?
Doge
А чем тебе valgrind не угодил?
Ну я не фанат крестов, а писать сложные вещи на си не очень хочется по затратам времени на разработку. Да и раст интересен как низкоуровневый язык явно вдохновленный ML семейством и некоторыми ФП вещами. На нём приноровившись можно вполне в ФП-подобном стиле писать.
Doge
Короче, ты влюбился в раст, а раст в тебя?
Не, не могу сказать, что влюбился (своих болячик у него дофига), но как язык для каких-то перформанс критикал сложных вещей - он разумно смотрится. Потому что альтернативы либо сильно дороже по времени разработки, либо кресты, которые со своим гигантским набором проблем.
Doge
Но прям фанатизма и переписывания всего на расте, как многие пропагандируют, я не разделяю.
Anonymous
Но прям фанатизма и переписывания всего на расте, как многие пропагандируют, я не разделяю.
первый и наверно главный признак здорового отношения к инструменту
Doge
То есть это ещё один язык в нише низкоуровневых, но это не замена во всех случаях си и крестов, как пропагандисты утверждают.
Anonymous
я в кресты так и ниасил пока, не хватает меня на это все. а вот С это пожалуйста, это хорошо.
Anonymous
но С простой как песня
Doge
я в кресты так и ниасил пока, не хватает меня на это все. а вот С это пожалуйста, это хорошо.
Мне си нравится в достаточно простых низкоуровневых программах. И в том небольшом эмбеддеде, которым я на досуге иногда занимаюсь. В этих областях вообще прекрасен, в особенности если писать на C11 и со всеми варнингами и анализами.
Anonymous
вызывать
Anonymous
а не все целиком
Anonymous
по крайней мере, так я вижу
Anonymous
Эрланг в этом смысле яркий пример. можно на С структуры данных мутабельные заимплеменить, например, которые оверэффективны, или еще какой-то эффективный системный вызов.
Anonymous
там есть очень удобные механизмы для этого
Doge
так на С надо ядро писать и через биндинги
В си становится не очень удобно, когда приходиться сложные структуры данных использовать. Там где в других языках можно одной строкой подключить библиотеки и при этом получить за счёт дженериков/шаблонов идеальный перформанс под свои типы, в си будет сильно больше геммороя.
Doge
Ну и с абстракциями тоже сложно будет
Anonymous
memcpy(to, from, size)
Doge
void * ptr, size_t size;
Ну это как раз уже не очень удобно. Все же разница в юзабилити тут есть.
Doge
Ну если про сложные программы говорить
Anonymous
Ну это как раз уже не очень удобно. Все же разница в юзабилити тут есть.
да, неудобно, но быстро и эффективно как удар топором (наверно). не знаю, я прям громадную кодовую базу на С не видел, не считая исходников Линукса.
Anonymous
но я вот в таких случаях уверенно все через void * ptr, size_t делаю
Anonymous
все дженерик структуры данных
Anonymous
через макросы не так удобно и еботни много
Anonymous
но тоже можно, зато типизированно будет
Doge
да, неудобно, но быстро и эффективно как удар топором (наверно). не знаю, я прям громадную кодовую базу на С не видел, не считая исходников Линукса.
У меня просто дофига всего в работе библиотечного в плане структур данных используется, что было бы сильно менее удобно в си. Начиная от стандартных векторов, хэшмап, деревьев и графов и заканчивая всякими хитрыми геоиндексами.
Anonymous
но в Эрланге это вот прям официальная политика партии
Anonymous
нет нужной структуры данных или не нравится ее (иммутабельный) перф?
Anonymous
пиши свою на С и вызывай из Эрланга безшовно
Anonymous
и делай там че хочешь
Anonymous
но если из-за тебя рухнет нода, то ты сам дурак
Doge
пиши свою на С и вызывай из Эрланга безшовно
Но это работает в основном там, где ffi дешёвый
Doge
Это увы далеко не везде так
Doge
ffi?
Foreign function interface
Anonymous
аа, маршалинг в неуправляему среду?
Anonymous
ну дотнет в этом плане вроде бы дно. но я не сталкивался. но читал много на Хабрах, что дно
Anonymous
Но это работает в основном там, где ffi дешёвый
именно такая модель позволяет тебе на С держать маленькую кодовую базу, буквально имплементацию нужно тебе модуля и все.
Anonymous
очень удобно
Anonymous
решать точечные проблемы
Anonymous
и решать их хорошо
Doge
решать точечные проблемы
Это если до прям точечных проблем что-то сужается.
Doge
Увы, не всегда возможно
Anonymous
Это если до прям точечных проблем что-то сужается.
структуры данных, эффективные стримовые парсеры, разбор протокольных данных, алгоритмы всевозможные. достаточно богатый спектр же.
Doge
структуры данных, эффективные стримовые парсеры, разбор протокольных данных, алгоритмы всевозможные. достаточно богатый спектр же.
Вот структуры данных как раз требуют прям жутко эффективного ffi или жутко медленного языка из которого си вызывается.
Anonymous
это ты про частые обращения == частый маршалинг?
Vladislav
Shub
Разве в таком случае мало убрать option и nullable? А что насчёт PositiveInt, String50 и прочих решений?
Я провтыкал все твои реплики btw, потому что на маленьком экране все скроллилось вверх быстрее, чем успевал читать. Даже неудобно. Но я еще раз сяду за клавиатуру и отвечу.
Shub
то есть код настолько идеальный что рантайм говно?
Ты не ловишь пост-иронию. Это типа абсурдистский юмор был.
Vladislav
ну я решил сутра перечитать и нихуя не понял