Здравствуйте, varenikAA, Вы писали:
AA>Тут правда сразу подумал, а как там с вебом? rocket AA>Глаз задергался от необходимости так детализировать логику веба.
это уже нцатая серебряная пуля на моей памяти, необходимо один раз и навсегда понять, что качество софта в гораздо (порядок/порядки) большей степени зависит от квалификации инженеров и менеджеров, нежели от инструмента. Профессионалы высокого класса могут и на Си (без классов) написать стабильный и безопасный код, обложившись линтерами, тестами, код-ревью и в целом обладая культурой разработки, а если дуракам дать половой орган стеклянный, вы сами знаете что произойдёт. Буквально месяц назад один крупный банк искал (а может всё ещё ищет) разработчиков на C++ чтобы переписать (подчёркиваю — переписать) то глючное и тормозное угрёбище, которое наворотили до этого нанятые хипстеры на расте. О чём это говорит? О том что раст — говно? Нет, это говорит о том что хочешь качество — плати нормальные бабки и нанимай нормальных разработчиков. Нормально делай — нормально будет.
Здравствуйте, Мирный герцог, Вы писали:
МГ>это уже нцатая серебряная пуля на моей памяти, необходимо один раз и навсегда понять, что качество софта в гораздо (порядок/порядки) большей степени зависит от квалификации инженеров и менеджеров, нежели от инструмента.
А я уже энцатый месяц трахаюсь с проектом, в котором надо постоянно проводить операции над графом, при этом не нарушая инварианты, некоторые из которых очень трудно сформулировать. И 99% возникающих ошибок у меня — логические, а вовсе не из-за нарушения логики владения чем-то там.
«C++ не является безопасным для памяти языком и никто не притворялся бы, что это не так»
Во-первых, C/C++ буквально созданы чтобы управлять памятью. Во-вторых, этот аргумент уже настолько надоел, что не могут придумать абсолютно ничего нового. Что думаете посадите своих программистов на Rust или C#, который рекламировали точно так же, и всё у вас будет в шоколаде.
У меня логика такая, если памятью не управляют напрямую, значит это делает сборщик мусора. Это ещё одна концепция, которой нужно учиться. Не хотите учиться? Ну тогда будете писать тормознутые программы с чудовищным перерасходом памяти.
Один из подходов, который давно используется, состоит в том, чтобы больше обучать программистов написанию более безопасного кода. Но «нет никаких доказательств того, что комплексное обучение разработчиков на C и C++ действительно решит эту проблему любым существенным способом»
Очень наивно, я могу на любом языке программирования написать отвратительную программу с кучей глюков. "Нет никаких доказательств того, что один и тот же программист налажав на C/C++ не налажает на других языках программирования".
Когда Бьерн Страуструп рекламировал C++ он говорил, что одно из его основных достоинств прямое управление памятью. И тут я, например, спрашиваю, какое преимущество у Rust? А мне в ответ C++ небезопасен, потому что позволяет управлять памятью. Нет, постойте ка, какое преимущества у Rust, я не хочу слышать про C++, говорите про Rust. Что там нельзя управлять памятью и это преимущество?
Ну, вы знаете, наши программисты пишут лажовый код, мы хотим попробовать Rust в надежде на то, что они перестанут писать лажовый код. А Microsoft известна своими программистами. Они может поэтому и переписывают свой .NET каждый раз, потому что проще переписать с нуля, чем поддерживать и развивать старую версию.
Здравствуйте, velkin, Вы писали:
V>Во-первых, C/C++ буквально созданы чтобы управлять памятью.
Чистый Cи и Cи c классами созданы чтоб управлять памятью. В новомодном раскошерном C++ это пытаются запретить и исключить, взамен навязывая какие-то кошмарные костыли.
Здравствуйте, Zhendos, Вы писали:
Z>Здравствуйте, varenikAA, Вы писали:
AA>>Собственно вопрос в теме. Навеяло предыдущими обсуждениями. AA>>Кто-то сбросил недавно ссылку Microsoft: Rust является 'лучшим шансом' в отрасли программирования безопасных систем
AA>>Тут правда сразу подумал, а как там с вебом? rocket AA>>Глаз задергался от необходимости так детализировать логику веба.
Z>А в чем детализация? Напоминает python/flask:
Z>
Здравствуйте, velkin, Вы писали:
V>Очень наивно, я могу на любом языке программирования написать отвратительную программу с кучей глюков. "Нет никаких доказательств того, что один и тот же программист налажав на C/C++ не налажает на других языках программирования".
Ну, на том же F#, если не использовать внешние dll, чистый код не сможет вызвать BSOD даже если вы второй день пишете на F#.
Да и на D такое сложно, ибо изначально проверка типов, особенно длины/границ массивов. Кажется в rust тоже проверка типов сильная.
Писали год назад один плагин для шифрования потока на плюсах, это конечно тихий ужас, настройка окружения одна чего стоит.
Зато сетевой поток сразу обрабатывается без лишних преобразований. Это с одной стороны круто. С другой, ушло много времени на отладку.
И все равно производительности для обработки видео с камеры 640x480 не хватало. Дефолтовый плагин шифровал через виндовый RSA, наш через CryptoPro.
У С++ слишком богатый синтаксис с неоднозначной семантикой. По моему скромному опыту.
И что с этим кодом не так? Количество строчек плюс-минус
столько же сколько в flask, да выглядит код практически точно также,
функция из одной строчки, аннотация это функции и однастрочная
"запускалка". В общем все стандартно, может на python будет на пару строчек
больше, а на ruby/sinatra на пару строк меньше, но в чем отличие и минус Rust?
Здравствуйте, varenikAA, Вы писали:
AA>Ну, на том же F#, если не использовать внешние dll, чистый код не сможет вызвать BSOD даже если вы второй день пишете на F#.
BSOD вообще трудно вызвать, если нет аппаратных проблем и ты не пишешь драйвер. Уронить процесс в Access Violation на C# без unsafe и DllImport, я думаю, что смогу. Если можно на C#, скорее всего, на F# тоже можно. Правда это будет не случайность, а целенаправленное действие, которое ещё надо знать как провернуть.
Здравствуйте, T4r4sB, Вы писали:
TB>А я уже энцатый месяц трахаюсь с проектом, в котором надо постоянно проводить операции над графом, при этом не нарушая инварианты, некоторые из которых очень трудно сформулировать.
Отбрасывай, сокращай, ограничивай.
Чем больше ограничений, тем проще система.
раст, вроде бы, хорош, но нужен не один десяток лет, чтобы он стал реальной альтернативой C++/C.
на C++ и C, при всех недостатках этих языков, написано слишком много хорошего софта, который проще всего переиспользовать, разрабатывая новую систему на C++/C.
я пытался прикинуть, куда раст приткнуть в моей сфере — в игровой разработке.
его преимущества в играх были бы как нельзя кстати.
но получилось, что, в общем-то, пока никуда, а жаль.
Здравствуйте, LuciferSaratov, Вы писали:
LS>я пытался прикинуть, куда раст приткнуть в моей сфере — в игровой разработке. LS>его преимущества в играх были бы как нельзя кстати.
Ты видел какой они код пишут???
Когда я работал в Автодеске, в соседнем от нас здании сидел Ubisoft Singapore и их разработчики к нам часто приходили на собеседования. Такого кошмарного подхода к разработке как в играх вообще нигде нет, как мне кажется. Язык где надо очень много думать над структурой твоего кода и всячески ублажать borrow checker в коммерческих и успешных играх не взлетит. Там мало того, что надо по максимуму минимизировать фрагментацию памяти, пусть и в ущерб поддерживаемости решения, так еще и сделать все вчера, а лучше неделю назад.
Здравствуйте, kaa.python, Вы писали:
KP>Ты видел какой они код пишут???
в среднем по больнице, наверное, всё так и есть.
но я вижу также, что есть и ответственные люди в этой сфере и вполне уверен, что преимущества Rust были бы ценны.
в работе попадался совершенно разный код, есть и очень хорошие примеры, явно сделанные опытными людьми.
МГ>в гораздо (порядок/порядки) большей степени зависит от квалификации инженеров и менеджеров, нежели от инструмента. Профессионалы высокого класса могут и на Си (без классов) написать стабильный и безопасный код, обложившись линтерами, тестами
Тут дело такое. Армия стрельцов с ружьями непременно разгромит противостоящую ей армию профессиональных лучников. Даже при равной дальности эффективной стрельбы и при равной убойной силе стрелы и пули.
Потому что армию стрельцов (массовую армию) можно обучить за пару недель ("сыплешь туда порох, засовываешь пулю, поджигаешь фитиль, целишься"). А для стрельбы из лука нужна многолетняя каждодневная тренировка. Т.е. профессиональных лучников будет мало.
Здравствуйте, L.K., Вы писали:
LK>Потому что армию стрельцов (массовую армию) можно обучить за пару недель ("сыплешь туда порох, засовываешь пулю, поджигаешь фитиль, целишься"). А для стрельбы из лука нужна многолетняя каждодневная тренировка. Т.е. профессиональных лучников будет мало.
Так битва не насмерть. И когда лучники научатся, они начнут убивать стрельцов еще на этапе насыпания пороха.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.