Size: a a a

2021 March 04

А

Алексей in rust_offtopic
заходит царь в чат секта_нейм и говорит сектантам что они сектанты
источник

RB

Roman Blog in rust_offtopic
polunin.ai
Ну это такой трейдофф. Если тебе нужно делать опасные вещи пишешь unsafe и сам за всем следишь. Если нет, пишешь safe и не получаешь никаких ошибок.
Да, но  я в safe не получаю итак никаких ошибок. Пойми разницу. Если мы ограничим любой язык теми возможностями, что даёт safe-раст, то там не будет ошибок. Т.е. чекер раста и модель безопасности раста не чекает ОШИБКИ - она чекает возможности, которые ты используешь.

И проблема в том, что те места, которые приводят к ошибкам - всегда написаны ЗА РАМКАМИ этого safe-языка. Давай проще, если ты перепишешь что-то дырявое и мира с/с++, то все места, которые там дырявые - будут у тебя под unsafe и не будут никак проверяться. И никакого преимущества ты не получишь.

Т.е. безопасность, которая нужна. И чекер который нужен - это то, что проверяет ПОТЕНЦИАЛЬНО опасную логику. И сообщает правильно ты её реализовал или нет. Раст работает не так. Он запрещает тебе любую потенциально опасную логику, даже если она не содержит ошибок
источник

RB

Roman Blog in rust_offtopic
если бы мы могли исключить всё потенциально опасную логику - мы бы не имели проблем в  принципе
источник

А

Алексей in rust_offtopic
Roman Blog
Да, но  я в safe не получаю итак никаких ошибок. Пойми разницу. Если мы ограничим любой язык теми возможностями, что даёт safe-раст, то там не будет ошибок. Т.е. чекер раста и модель безопасности раста не чекает ОШИБКИ - она чекает возможности, которые ты используешь.

И проблема в том, что те места, которые приводят к ошибкам - всегда написаны ЗА РАМКАМИ этого safe-языка. Давай проще, если ты перепишешь что-то дырявое и мира с/с++, то все места, которые там дырявые - будут у тебя под unsafe и не будут никак проверяться. И никакого преимущества ты не получишь.

Т.е. безопасность, которая нужна. И чекер который нужен - это то, что проверяет ПОТЕНЦИАЛЬНО опасную логику. И сообщает правильно ты её реализовал или нет. Раст работает не так. Он запрещает тебе любую потенциально опасную логику, даже если она не содержит ошибок
Если мы ограничим любой язык теми возможностями, что даёт safe-раст, то там не будет ошибок.
В этом и смысл
источник

А

Алексей in rust_offtopic
Чтобы компилятор контролировал что программист точно не обосрался в safe секции
источник

RB

Roman Blog in rust_offtopic
в конечном итоге как максимум, чего ты добьёшься в расте - это чуть более строгие safe-интерфейсы. Возможно это снизит количество багов, но не особо сильно. Потому как сильно снижает их именно safe-интерфейс. Любой. Не обязательно строгий
источник

JM

John Meow in rust_offtopic
Roman Blog
Да, но  я в safe не получаю итак никаких ошибок. Пойми разницу. Если мы ограничим любой язык теми возможностями, что даёт safe-раст, то там не будет ошибок. Т.е. чекер раста и модель безопасности раста не чекает ОШИБКИ - она чекает возможности, которые ты используешь.

И проблема в том, что те места, которые приводят к ошибкам - всегда написаны ЗА РАМКАМИ этого safe-языка. Давай проще, если ты перепишешь что-то дырявое и мира с/с++, то все места, которые там дырявые - будут у тебя под unsafe и не будут никак проверяться. И никакого преимущества ты не получишь.

Т.е. безопасность, которая нужна. И чекер который нужен - это то, что проверяет ПОТЕНЦИАЛЬНО опасную логику. И сообщает правильно ты её реализовал или нет. Раст работает не так. Он запрещает тебе любую потенциально опасную логику, даже если она не содержит ошибок
Так суть в том, что ошибку безопасности проще искать в небольшом куске unsafe
источник

А

Алексей in rust_offtopic
Roman Blog
в конечном итоге как максимум, чего ты добьёшься в расте - это чуть более строгие safe-интерфейсы. Возможно это снизит количество багов, но не особо сильно. Потому как сильно снижает их именно safe-интерфейс. Любой. Не обязательно строгий
особо сильно
источник

MS

Mikola Summer Duck in rust_offtopic
Roman Blog
Да, но  я в safe не получаю итак никаких ошибок. Пойми разницу. Если мы ограничим любой язык теми возможностями, что даёт safe-раст, то там не будет ошибок. Т.е. чекер раста и модель безопасности раста не чекает ОШИБКИ - она чекает возможности, которые ты используешь.

И проблема в том, что те места, которые приводят к ошибкам - всегда написаны ЗА РАМКАМИ этого safe-языка. Давай проще, если ты перепишешь что-то дырявое и мира с/с++, то все места, которые там дырявые - будут у тебя под unsafe и не будут никак проверяться. И никакого преимущества ты не получишь.

Т.е. безопасность, которая нужна. И чекер который нужен - это то, что проверяет ПОТЕНЦИАЛЬНО опасную логику. И сообщает правильно ты её реализовал или нет. Раст работает не так. Он запрещает тебе любую потенциально опасную логику, даже если она не содержит ошибок
При прочих равных сам тот факт что у тебя есть четко ограниченные рамки - это уже преимущество, скажешь нет?
источник

RB

Roman Blog in rust_offtopic
John Meow
Так суть в том, что ошибку безопасности проще искать в небольшом куске unsafe
Это ничего не даёт. Все итак знают где это "не безопасно" находится. Просто проблема, что этого unsafe там до жопы
источник

А

Алексей in rust_offtopic
потому что в расте у тебя есть много safe кода и относительно немного unsafe кода
источник

А

Алексей in rust_offtopic
в крестах у тебя всё unsafe
источник

А

Алексей in rust_offtopic
вообще всё
источник

p

polunin.ai in rust_offtopic
Roman Blog
Да, но  я в safe не получаю итак никаких ошибок. Пойми разницу. Если мы ограничим любой язык теми возможностями, что даёт safe-раст, то там не будет ошибок. Т.е. чекер раста и модель безопасности раста не чекает ОШИБКИ - она чекает возможности, которые ты используешь.

И проблема в том, что те места, которые приводят к ошибкам - всегда написаны ЗА РАМКАМИ этого safe-языка. Давай проще, если ты перепишешь что-то дырявое и мира с/с++, то все места, которые там дырявые - будут у тебя под unsafe и не будут никак проверяться. И никакого преимущества ты не получишь.

Т.е. безопасность, которая нужна. И чекер который нужен - это то, что проверяет ПОТЕНЦИАЛЬНО опасную логику. И сообщает правильно ты её реализовал или нет. Раст работает не так. Он запрещает тебе любую потенциально опасную логику, даже если она не содержит ошибок
Ну да, в этом и смысл раста. Чтобы писать safe код и чтобы компилятор запрещал тебе использовать потенциально опасные штуки. В крестах нет этого разбеления, а потому потенциально safe код может сделать опасную вещь и ты не увидишь это моментально, как в случае с растом.
источник

А

Алексей in rust_offtopic
и ты должен сам и без помощи компилятора всё проверять чтобы было safe
источник

RB

Roman Blog in rust_offtopic
как в раст stdlib и ещё хуже. Эта куллстори про "unsafe блоки видено" работает только в сказках. Реально у тебя их будет столько, что ты их не найдёшь
источник

MS

Mikola Summer Duck in rust_offtopic
Писал игрушечный аллокатор, ансейф кода там таки в меньшинстве.
источник

RB

Roman Blog in rust_offtopic
polunin.ai
Ну да, в этом и смысл раста. Чтобы писать safe код и чтобы компилятор запрещал тебе использовать потенциально опасные штуки. В крестах нет этого разбеления, а потому потенциально safe код может сделать опасную вещь и ты не увидишь это моментально, как в случае с растом.
это ничего не даст. Я выше уже говорил об этом. Ты как максимум можешь уповать на то, что раст БУДЕТ способствовать в рамках выбора безопасно/небезопасно выбор в сторону безопасно
источник

p

polunin.ai in rust_offtopic
Roman Blog
как в раст stdlib и ещё хуже. Эта куллстори про "unsafe блоки видено" работает только в сказках. Реально у тебя их будет столько, что ты их не найдёшь
Так ну это уже сказки от тебя. На джаве/питоне/жсе/шарпе написано миллион проектов без единого ансейфа. Что скажешь?
источник

RB

Roman Blog in rust_offtopic
polunin.ai
Так ну это уже сказки от тебя. На джаве/питоне/жсе/шарпе написано миллион проектов без единого ансейфа. Что скажешь?
правильно, потому что скриптуха и там другие проекты и другие требования
источник