70% CVE в винде из-за неправильной работы с памятью
В расте эти 70% один в один превратились бы 50% логических ошибок и 20% неправильная работа с памятью. Хотя, неправильная работа - это и есть логическая ошибка. Вот бы кто придумал кнопку «сделать правильно».
За все хорошее против всего плохого! Только вот в typescript фигня, а не статическая типизация. Проблем добавляет больше, чем решает. Язык либо сразу проектируется как статический, либо идет мучительное натягивание совы на глобус ради неосиляторов динамики, которые одновременно и неосиляторы развитых систем типов. Т.е. нужна на самом деле жабка, но по какой-то причине приходится сажать индусов за динамические драндулеты.
На самом деле там куча Rust. На С++ скорее всего части где в Rust пришлось бы городить unsafe на unsafe. Это правда что его меньше знают, значит неясно зачем платить большую когнитивную нагрузку если все равно unsafe. Это ж не research проект что кому-то что-то доказать. А так заходите кто угодно в реп, найдете подсистемы на Rust
Потому что динамическая типизация - это всего лишь немного меньше типов по сравнению со статической: TObject и парочка служебных типов для null, undefined и тп. И да, больше не значит лучше. Твоя нединамическая типизация не в состоянии это различать?
Количество CVE не значит абсолютно ничего. Нужно считать количество эксплуатируемых.
С повышением уровня абстракции увеличивается количество логических уязвимостей.
Даже если надеть маску адепта Rust — не вижу причин для радости.
38% багов в Airbnb из-за динамической типизации
Динамическая типизация в контексте безопасности — безусловное зло.
Другое дело, что в контексте бизнеса на безопасность даже банки в основном кладут (дешевле возмещать потери клиентам) — обычно скорость разработки более важна.
В разработку входит отладка, которая значительно упрощается при использовании статической типизации. Впрочем реальный баланс производительности программирования зависит от проекта. Иногда правка типов при малейшем повороте полета мысли обходится дороже, чем поиск простых описок, особенно если код покрыт тестами.
Другое дело, что в контексте бизнеса на безопасность даже банки в основном кладут (дешевле возмещать потери клиентам) — обычно скорость разработки более важна.
Тут вопрос: а не замедляет ли динамика скорость разработки больших сервисов?
Ну дак ее больше. Потому что каждая сраная очепятка требует еще один раз прогнать весь комплекс. Ну юнит тесты тут конечно спасают, но кто же станет ломать полёт своей гениальной мысли сраным TDD.
70% CVE в винде из-за неправильной работы с памятью
Это всё потому, что у вендузятников valgrind-а нет. В моём линуксе мои программы на C после valgrind-а работают с памятью правильно, а волосы гладкие и шелковистые
Покажи хоть один пригодный для ежедневного использования ДТ язык. Cayenne хрен где скачаешь, Edwin Brady опять что-то наколенное мутит, на остальных только теоремы про сложение с умножением доказуюццо.
Ты охренел? Скрипты на 100 строк рулят! Если уж что-то и писать, то только скрипты на 100 строк. 1000 скриптов на 100 строк лучше, чем один на 100к строк.
В свежий c# 8 вроде ввели [non-]nullable type, я полагаю поломав обратную совместимость со старым кодом, где все включения
string a = null нужно будет менять на string? a = null, это так? Но дотнетчикам ломать не привыкать. Жабе это не грозит, но такая типизация заложена в kotlin. Так что, чтоб было меньше NPE пользуйтесь новыми языками.