История изменений
Исправление abcq, (текущая версия) :
Что? То есть, ты подразумеваешь, что Rust не заставляет тебя запоминать аспекты своего использоваться? Вот как идеи появляются в голове — так сразу их записываешь и они работают, да? Спасибо расту за это.
Не утрируйте, я думаю, вы прекрасно понимаете о чем идет речь.
Еще раз: Rust никак не помогает обнаруживать алгоритмические ошибки. Потому он с радостью скомпилирует проблемный код.
Эх раз еще раз, еще много-много раз. Это пунктик такой, говорить очевидные вещи как аргументы дискуссии? От таких вещей нет спасения. Инструмент владения, контроль мутабельности, искусственные ограничения на этот контроль, аннотирование времени жизни для ссылок, вообще явное аннотирование против неявного «работу этой языковой особенности надо держать в голове». Вот это все, чем больше надо прописывать в коде тем лучше, чем чаще компилятор ругается что не может разобраться что имелось в виду без этих пометок, тем лучше. Это лучше еще по причине того, что человек проводящий ревью вашего кода не будет вынужден домысливать что имелось в виду имея на руках подобного рода аннотации. Вообще я считаю что стоит максимально уходить от любых «соглашений», «допущений», «неявного поведения», «списка правил работы» вместо явного аннотирования в коде этой работы. Да может получается многословно и выглядит как мрак, но С++ выглядит не лучше, тем не менее там над вами постоянно довлеет факт того, что что-то вы забыли или упустили из внимания или просто в виду общей сложности написанного упускаете из виду те самые языковые нюансы. Вы постоянно должны сверяться с гайдлайном и отвергать любые попытки писать не по нему, потому что скорее всего это приведет к проблемам.
Да, в этом и прикол крестов — вынести две трети фич языка, и на оставшихся спокойно писать. Для этого в любой уважающей конторе, пишущей на крестах, есть ревью кода.
На нем только и можно писать выкинув половину функционала, потому как если тянуть все, обязательно получится в итоге кровавый фарш.
Касательно же итераторов с умными указателями — весь сыр-бор крутится вокруг «небезопасного» стиля писания кода, с интенсивным повторным использованием указателей на структуры. Предпочитай значения указателям/итераторам, и будет твой коды безопаснее… Но и медленнее. Это вообще универсальное правило, независимо от языка, просто Rust сделал его частью компилятора и заставляет небезопасный стиль явно описывать. А кто тебя изначально заставлял стрелять себе в ногу?
Никто никого не заставляет, а продолжают писать плохо, не хотят, божатся, но продолжают, и дело тут вовсе не в желании или принуждении - инструмент плохой, соблазн большой, репутация «быстрый, мощный, гибкий, для профессионалов» привлекает толпы фанатиков, кто-то из них действительно может выдать нормальный код, но большинство надламываются над сложностью языка, но причислять себя к профессионалам продолжают и пишут с N итерации что-то сносное, как вы тут сказали по пути выкинув в итоге пол языка и действуя только проверенными методами.
Я тоже так думал. Но теперь прихожу к выводу, что раст создан прожженными крестовиками, которые тщательно скопировали недостатки крестов, вроде медленной компиляции и обобщений, устранив лишь самые очевидные всем проблемы.
любой язык низкого уровня похож на С и проблемы у него такие же как и у С, не удивительно что всех их это роднит.
Исходная версия abcq, :
Что? То есть, ты подразумеваешь, что Rust не заставляет тебя запоминать аспекты своего использоваться? Вот как идеи появляются в голове — так сразу их записываешь и они работают, да? Спасибо расту за это.
Не утрируйте, я думаю, вы прекрасно понимаете о чем идет речь.
Еще раз: Rust никак не помогает обнаруживать алгоритмические ошибки. Потому он с радостью скомпилирует проблемный код.
Эх раз еще раз, еще много-много раз. Это пунктик такой, говорить очевидные вещи как аргументы дискуссии? От таких вещей нет спасения. Инструмент владения, контроль мутабельности, искусственные ограничения на этот контроль, аннотирование времени жизни для ссылок, вообще явное аннотирование против неявного «работу этой языковой особенности надо держать в голове». Вот это все, чем больше надо прописывать в коде тем лучше, чем чаще компилятор ругается что не может разобраться что имелось в виду без этих пометок, тем лучше. Да может получается многословно и выглядит как мрак, но С++ выглядит не лучше, тем не менее там над вами постоянно довлеет факт того, что что-то вы забыли или упустили из внимания или просто в виду общей сложности написанного упускаете из виду те самые языковые нюансы. Вы постоянно должны сверяться с гайдлайном и отвергать любые попытки писать не по нему, потому что скорее всего это приведет к проблемам.
Да, в этом и прикол крестов — вынести две трети фич языка, и на оставшихся спокойно писать. Для этого в любой уважающей конторе, пишущей на крестах, есть ревью кода.
На нем только и можно писать выкинув половину функционала, потому как если тянуть все, обязательно получится в итоге кровавый фарш.
Касательно же итераторов с умными указателями — весь сыр-бор крутится вокруг «небезопасного» стиля писания кода, с интенсивным повторным использованием указателей на структуры. Предпочитай значения указателям/итераторам, и будет твой коды безопаснее… Но и медленнее. Это вообще универсальное правило, независимо от языка, просто Rust сделал его частью компилятора и заставляет небезопасный стиль явно описывать. А кто тебя изначально заставлял стрелять себе в ногу?
Никто никого не заставляет, а продолжают писать плохо, не хотят, божатся, но продолжают, и дело тут вовсе не в желании или принуждении - инструмент плохой, соблазн большой, репутация «быстрый, мощный, гибкий, для профессионалов» привлекает толпы фанатиков, кто-то из них действительно может выдать нормальный код, но большинство надламываются над сложностью языка, но причислять себя к профессионалам продолжают и пишут с N итерации что-то сносное, как вы тут сказали по пути выкинув в итоге пол языка и действуя только проверенными методами.
Я тоже так думал. Но теперь прихожу к выводу, что раст создан прожженными крестовиками, которые тщательно скопировали недостатки крестов, вроде медленной компиляции и обобщений, устранив лишь самые очевидные всем проблемы.
любой язык низкого уровня похож на С и проблемы у него такие же как и у С, не удивительно что всех их это роднит.