Re[11]: Rust - suxx & mustdie
От: blacktea  
Дата: 20.12.21 06:28
Оценка: 1 (1)
Здравствуйте, kaa.python, Вы писали:

KP>Ну вот как сертифиуируете по какому-то серьёзному процессу, так и расскажешь про паники в критичном коде.


Обязательно расскажу

PS: кстати, мы с тобой в одной области вроде даже работаем (то есть, я работал), SDC
Re[12]: Rust - suxx & mustdie
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 20.12.21 06:51
Оценка:
Здравствуйте, blacktea, Вы писали:

B>PS: кстати, мы с тобой в одной области вроде даже работаем (то есть, я работал), SDC


Я, честно говоря, не знаю что такое SDC
У меня как бы autonomious vehicle, но к самому autonomious не имею, у меня это своего рода фронтэнд и бэкенд на колесах
Re[13]: Rust - suxx & mustdie
От: blacktea  
Дата: 20.12.21 07:20
Оценка: 1 (1)
Здравствуйте, kaa.python, Вы писали:

KP>Я, честно говоря, не знаю что такое SDC

KP>У меня как бы autonomious vehicle, но к самому autonomious не имею, у меня это своего рода фронтэнд и бэкенд на колесах

SDC — Self Driving Cars.
Re[13]: Rust - suxx & mustdie
От: CreatorCray  
Дата: 20.12.21 09:44
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>Я люблю исключения и считаю их лучшим способом информировать об ошибках нежели коды возврата.

Обработка их уж очень геморная. Весь код оказывается густо засран try/catch
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Rust - suxx & mustdie
От: CreatorCray  
Дата: 20.12.21 09:44
Оценка: +1
Здравствуйте, blacktea, Вы писали:

B> работал над критическим кодом на C++

B> отказались от исключений
B> ввели вместо них Паники

Это как?
Исключение можно поймать и обработать.
Паника прекращает исполнение совсем.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Rust - suxx & mustdie
От: Mr.Delphist  
Дата: 20.12.21 10:01
Оценка: +1
Здравствуйте, T4r4sB, Вы писали:

TB>в С++ приходится держать в голове кучу правил "не обращаться по этому указателю после того, как уничтожен тот буфер".


Недаром у C++ два плюса в названии. Видимо, мы с Вами пишем на разных — кто-то на левом, а кто-то на правом.
Re[9]: Rust - suxx & mustdie
От: blacktea  
Дата: 20.12.21 10:27
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Это как?

CC>Исключение можно поймать и обработать.
CC>Паника прекращает исполнение совсем.

Да, все верно, философия fail fast.
Re[6]: Rust - suxx & mustdie
От: T4r4sB Россия  
Дата: 20.12.21 19:23
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:


MD>Недаром у C++ два плюса в названии. Видимо, мы с Вами пишем на разных — кто-то на левом, а кто-то на правом.


Да-да, расскажи, что делаешь ты, когда у тебя есть "движок"-владелец объекта, и тебе нужен временный указатель на объект. Ты делаешь weak_ref? Или выдаёшь сырой указатель?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[14]: Rust - suxx & mustdie
От: T4r4sB Россия  
Дата: 20.12.21 19:26
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, kaa.python, Вы писали:


KP>>Я люблю исключения и считаю их лучшим способом информировать об ошибках нежели коды возврата.

CC>Обработка их уж очень геморная. Весь код оказывается густо засран try/catch

Насколько я понял из разговора с их сторонниками — надо не засирать код try/catch, а поставить один try/catch вокруг функции, написанной джуном, чтоб она не повалила остальное.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[10]: Rust - suxx & mustdie
От: CreatorCray  
Дата: 20.12.21 19:41
Оценка:
Здравствуйте, blacktea, Вы писали:

B>Да, все верно, философия fail fast.

Тогда у тебя должна быть куча процессов, что добавляет накладные runtime расходы по их взаимодействию
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[15]: Rust - suxx & mustdie
От: CreatorCray  
Дата: 20.12.21 19:53
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Насколько я понял из разговора с их сторонниками — надо не засирать код try/catch, а поставить один try/catch вокруг функции, написанной джуном, чтоб она не повалила остальное.

А остальные функции никогда не ошибаются никогда что ли?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[16]: Rust - suxx & mustdie
От: T4r4sB Россия  
Дата: 20.12.21 20:01
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>А остальные функции никогда не ошибаются никогда что ли?


Можно в главном цикле поставить один большой трай. Типа главный цикл можно отладить нормально 1 раз.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[17]: Rust - suxx & mustdie
От: CreatorCray  
Дата: 20.12.21 20:09
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Можно в главном цикле поставить один большой трай. Типа главный цикл можно отладить нормально 1 раз.

Это не программа а кусок говна получается.
Можно тогда уже просто тупо падать по ошибке
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[18]: Rust - suxx & mustdie
От: T4r4sB Россия  
Дата: 20.12.21 20:45
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, T4r4sB, Вы писали:


TB>>Можно в главном цикле поставить один большой трай. Типа главный цикл можно отладить нормально 1 раз.

CC>Это не программа а кусок говна получается.
CC>Можно тогда уже просто тупо падать по ошибке

Что лучше — говно, которое кое-как работает, или говно, которое сразу падает?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[14]: Rust - suxx & mustdie
От: hi_octane Беларусь  
Дата: 20.12.21 22:01
Оценка: +4
KP>>Я люблю исключения и считаю их лучшим способом информировать об ошибках нежели коды возврата.
CC>Обработка их уж очень геморная. Весь код оказывается густо засран try/catch
Ну это же фигня. Try/Catch нужно ставить только там где ты можешь разумно исправить ситуацию. Например ты отправляешь запрос в сеть и ожидаешь что в ответ прилетит тонна упакованного Json — нет никакого смысла оборачивать в try/catch каждое чтение из сокета, парсинг токенов, и т.п. Оборачиваешь в один try/catch всё скопом — и запрос, и распаковку, и парсинг. Если что-то сломалось — верхнему уровню пофиг на нюансы — исключение в лог, операцию повторить. После нескольких попыток исключение летит выше, и там кто-то или юзеру напишет "проверьте подключение", или там наверху само переключится на резервный url и вызовет ещё раз.
Двумя try/catch вполне вменяемое поведение с минимумом лишней работы. С кодами ошибок — хочешь или нет, а проверять будешь в каждой грёбанной строке. В случае rust хоть '!' но воткнуть придётся. В случае go...
Re[5]: Rust - suxx & mustdie
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 20.12.21 22:50
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Не знаю починили ли в Rust главную проблему — непредсказуемые паники


Ну они не то чтоб прям "непредсказуемые".
Есть всякое такое — атрибут [nopanic] проверит в компайл-тайме возможность получить panic в интересующем куске кода.
Я пока в продакшне этот атрибут не пробовал, но скоро буду попробовать.

Но в этом плане Rust ничуть не опаснее обычного С, где тот же эффект можно получить делением на ноль. В этом плане, вероятно, разработка ядра на Rust будет отличаться от обычного кода в плане более консервативного выбора библиотек. Ну так и в Си никто не тянет свеженаписанные ноунейм зависимости в ядро.

KP> его даже Глав Пингвин забанил


Разве? Я не очень-то слежу за темой, но вроде ж недавно были прямо противоположные новости, что, мол, Rust в ядре Linux будет.
Причём, толкает всё это Google, так что перспективы у этой инициативы, на мой взгляд, хорошие.
С уважением, Artem Korneev.
Re[4]: Rust - suxx & mustdie
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 20.12.21 22:56
Оценка: +2
Здравствуйте, vaa, Вы писали:

vaa>если же инженер уже знает си, то ему проще написать на нем. чем учить новый сложный яп.


Конечно же проще. Rust это ж вообще не про простоту. Rust это как помесь Си и С++, к которой прилагается специально-обученный человек компилятор, который больно бьёт вас по голове каждый раз, когда вы пытаетесь написать небезопасную конструкцию.
Всё это выливается в боль и страдания, но код получается значительно безопаснее аналогичного на Си. Вот отсюда и весь хайп, а вовсе не из рекламы.

На мой взгляд, Rust это как раз то, в какую сторону должны двигаться современные системные компилируемые языки. Синтаксис его мне, правда, не очень нравится. Но пока что есть, то есть.
С уважением, Artem Korneev.
Re[19]: Rust - suxx & mustdie
От: CreatorCray  
Дата: 20.12.21 22:58
Оценка: +2
Здравствуйте, T4r4sB, Вы писали:

TB>Что лучше — говно, которое кое-как работает, или говно, которое сразу падает?

Конечно же то, что сразу падает.
Тогда быстро выпишут живительных звездюлей, говнодела выкинут на мороз а это говно отправят на переделку.
Иначе же говна будет становиться всё больше.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[15]: Rust - suxx & mustdie
От: CreatorCray  
Дата: 20.12.21 23:44
Оценка: +1
Здравствуйте, hi_octane, Вы писали:

_>Try/Catch нужно ставить только там где ты можешь разумно исправить ситуацию. Например ты отправляешь запрос в сеть и ожидаешь что в ответ прилетит тонна упакованного Json — нет никакого смысла оборачивать в try/catch каждое чтение из сокета, парсинг токенов, и т.п. Оборачиваешь в один try/catch всё скопом — и запрос, и распаковку, и парсинг. Если что-то сломалось — верхнему уровню пофиг на нюансы — исключение в лог, операцию повторить.

Сильно зависит что ты пишешь. У меня например достаточно кода в котором результат операции "не success" это одно из допустимых состояний. Так что с try/catch код превращается в плохочитаемую кашу очень быстро. Так что в таком раскладе if выходит куда предпочтительнее а исключения остаются для гм, исключительных случаев типа "глубоко в недрах Мории случилась уж совсем полная жопа и надо всё бросать и свистать всех наверх".

_> После нескольких попыток исключение летит выше, и там кто-то или юзеру напишет "проверьте подключение", или там наверху само переключится на резервный url и вызовет ещё раз.

Вот так и получаем софт который просто пишет "ашыпка, нисмагла", а где сломалось и почему — догадайся сам. В лучшем случае — на тебе стек где случилась обосратушка, без состояния.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[14]: Rust - suxx & mustdie
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 21.12.21 00:07
Оценка:
Здравствуйте, CreatorCray, Вы писали:

KP>>Я люблю исключения и считаю их лучшим способом информировать об ошибках нежели коды возврата.

CC>Обработка их уж очень геморная. Весь код оказывается густо засран try/catch

try/catch всегда можно поставить поменьше, только в местах где можно обработать ошибки разом и повторить действие/отказаться в зависимости от обстоятельств. С кодами ошибок же всё засирается на порядок быстрее, тот же код на Go — это сплошные сопли из if/else для обработки кодов возврата. Да, оно проще читается и создает меньше возможностей для ошибок т.к. ты всегда знаешь где и что было обработано, но вот "засрано" — это точно не про исключения
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.