S>А как меняется количество строк при переписывании с С++ на С++? ИМХО, если взять какой-нибудь большой проект на С++98 и переписать на С++20, то он тоже легко в 4 раза меньше может стать по количеству строк.
Нет, не может. Будет примерно так же. И не спрашивай, откуда я знаю
с примерами. И мой опыт это полностью подтверждает.
У вас кроме "не спрашивай" аргументы есть, чтобы утверждать, что среднестатистический проект на С++98 не будет значительно меньше, если его переписать на С++11/14/17/20?
Здравствуйте, SkyDance, Вы писали:
SD>... На С/С++ эти ошибки будешь ловить уже после ухода в прод, а на Rust — еще на этапе компиляции
Вчера Cloudflare лежал 3 часа из-за того, что в ботфильтре на расте unwrap разворачивал ошибочное значение безо всяких проверок и весь сервис постоянно падал и не пропускал ни своих, ни чужих. Вот и все гарантии в компайл-тайм.
Здравствуйте, YuriV, Вы писали:
YV>Вчера Cloudflare лежал 3 часа из-за того, что в ботфильтре на расте unwrap разворачивал ошибочное значение безо всяких проверок и весь сервис постоянно падал и не пропускал ни своих, ни чужих. Вот и все гарантии в компайл-тайм.
Так ты не путай их отсталый сегфолт и нашу продвинутую панику. Это другое, это понимать надо!
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, YuriV, Вы писали:
YV>Вчера Cloudflare лежал 3 часа из-за того, что в ботфильтре на расте unwrap разворачивал ошибочное значение безо всяких проверок и весь сервис постоянно падал и не пропускал ни своих, ни чужих. Вот и все гарантии в компайл-тайм.
clippy ругается на это по умолчанию, если специально не отключить. Если они отключили — то это не проблема раста. Так-то можно и тупо в unsafe блоке в нулевой указатель чего-нибудь записать.
Здравствуйте, Manticore, Вы писали:
M>Здравствуйте, YuriV, Вы писали:
YV>>Вчера Cloudflare лежал 3 часа из-за того, что в ботфильтре на расте unwrap разворачивал ошибочное значение безо всяких проверок и весь сервис постоянно падал и не пропускал ни своих, ни чужих. Вот и все гарантии в компайл-тайм.
M>clippy ругается на это по умолчанию, если специально не отключить. Если они отключили — то это не проблема раста. Так-то можно и тупо в unsafe блоке в нулевой указатель чего-нибудь записать.
Тем более из ансейф блоков раст никогда не вылезал Как только какая-нибудь сложность в архитектуре и оппа ансейф-блок. Но растоманы надрываются: "это же в одном месте — всё прозрачно". Но на практике оказывается, что одного места абсолютно достаточно, чтобы положить пол-инета.
Весь растохайп, в принципе, начался именно из-за утверждений растоманов, что "всё проверяет компилятор", не нужно заморачиваться на мелочах, можно сосредоточиться на логике. Результат — растоманы пишут, лишь бы скомпилилось и в прод. Т.е. раньше были скриптокидди, теперь растокидди.
Так-то можно и в С++ писать прямыми руками, тем более это несложно, включить всякие линтеры и санитайзеры, перейти на современную версию С++, изучить гайд для новичков, хотябы и т.д. Речь о том, что полузнайке всё равно что у него в руках — как ударить себя по лбу он найдёт способ. Поэтому раст абсолютно ни отчего не спасает.
Здравствуйте, YuriV, Вы писали:
YV>Тем более из ансейф блоков раст никогда не вылезал Как только какая-нибудь сложность в архитектуре и оппа ансейф-блок.
Это очень сильное преувеличение. Мне за пять лет unsafe понадобился ровно один раз, и еще пару раз видел его когда читал код зависимостей.
YV>Весь растохайп, в принципе, начался именно из-за утверждений растоманов, что "всё проверяет компилятор", не нужно заморачиваться на мелочах, можно сосредоточиться на логике.
Ну так unwrap() и есть логика. Если язык в принципе позволяет сделать panic! в произвольном месте (а unwrap() это, по сути, синоним if + panic!), компилятор тут ничего не сделает, только линтер или ревьюер может по рукам дать. Даже в супербезопасном питоне можно написать exit(0) в произвольном месте, и программа вылетит.
Дам совет для будущих холиваров — если хочется придираться к паникам в Расте, можно обсуждать неочевидные паники (например, при арифметических операциях), которые даже линтер не ловит.
YV>Результат — растоманы пишут, лишь бы скомпилилось и в прод. Т.е. раньше были скриптокидди, теперь растокидди.
Бред. Взрослому человеку должно быть стыдно такое писать.
YV>Так-то можно и в С++ писать прямыми руками, тем более это несложно, включить всякие линтеры и санитайзеры, перейти на современную версию С++, изучить гайд для новичков, хотябы и т.д. Речь о том, что полузнайке всё равно что у него в руках — как ударить себя по лбу он найдёт способ. Поэтому раст абсолютно ни отчего не спасает.
С++ — это как Раст когда весь код завернут в большой unsafe блок. В принципе, можно, конечно, но зачем? Разница тут не качественная, а количественная. Ударить себя по лбу можно в любом языке, но в Расте способов гораздо меньше, и заметить их легче.
Здравствуйте, mrTwister, Вы писали:
CRT>>в долгосрочной перспективе ИИ будет сразу фигачить в машинных кодах
T>Не будет. Только если придумают какой-то принципиально новый тип ИИ.
В долгосрочной перспективе будет такой тип ИИ который будет сразу фигачить в машинных кодах. Это тоже самое что я написал в моем прошлом комментарии, только другими словами.
Здравствуйте, Manticore, Вы писали:
M>clippy ругается на это по умолчанию, если специально не отключить. Если они отключили — то это не проблема раста.
Если clippy ругается на всякую ерунду, без которой писать невозможно — то это таки проблема раста.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, CRT, Вы писали:
CRT>Здравствуйте, mrTwister, Вы писали:
CRT>>>в долгосрочной перспективе ИИ будет сразу фигачить в машинных кодах
T>>Не будет. Только если придумают какой-то принципиально новый тип ИИ.
CRT>В долгосрочной перспективе будет такой тип ИИ который будет сразу фигачить в машинных кодах. Это тоже самое что я написал в моем прошлом комментарии, только другими словами.
а с чего такие выводы? на github-е вряд ли гигантское количество проектов, написанных на ассемблере, на основе чего он будет учиться?
ну и тем более, естественный интеллект же не занимается тем, чтобы сокращать мышцы сердца по таймеру, чтобы не умереть.
плохая аналогия конечно, но смысл того, что я хочу донести, надеюсь, понятен?
Здравствуйте, Manticore, Вы писали:
YV>>Тем более из ансейф блоков раст никогда не вылезал Как только какая-нибудь сложность в архитектуре и оппа ансейф-блок.
M>Это очень сильное преувеличение. Мне за пять лет unsafe понадобился ровно один раз, и еще пару раз видел его когда читал код зависимостей.
Я на плюсах лет 15 наверное не работал уже с сырой памятью
Но, могу представить, что кто-то её до сих пор весьма активно использует
Здравствуйте, Marty, Вы писали:
M>Я на плюсах лет 15 наверное не работал уже с сырой памятью
На плюсах необязательно работать с сырой памятью чтобы поиметь проблемы.
const auto & m = std::min(
"123456789_123456789_123456789_123456789_123456789_"s,
"123456789_123456789_123456789_123456789_123456789_123456789_"s);
std::cout << m << std::endl;
Здравствуйте, CRT, Вы писали:
CRT>В долгосрочной перспективе будет такой тип ИИ который будет сразу фигачить в машинных кодах. Это тоже самое что я написал в моем прошлом комментарии, только другими словами.
Хз, не могу будущее предсказывать. Может, конечно, позитронный мозг изобретут, но это уже будет не LLM
Здравствуйте, Manticore, Вы писали:
M>С++ — это как Раст когда весь код завернут в большой unsafe блок. В принципе, можно, конечно, но зачем? Разница тут не качественная, а количественная. Ударить себя по лбу можно в любом языке, но в Расте способов гораздо меньше, и заметить их легче.
Вот, классика, пришёл растоман и рассказал какой плохой С++. А почему вы не рассказали откуда взялся анврап в неположенном месте в этом конкретном случае? И почему, раз в расте это легко заметить, это не заметили в ф-ции из 10 строк и чудо-компилятор ничего не сказал?