Я вот не понимаю
Nov. 24th, 2014 12:06 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Анонсирован Gngr, новый web-браузер, ориентированный на обеспечение приватности
http://www.opennet.ru/opennews/art.shtml?num=41112
В комментах браузер критикуют только за то, что он написан на Жаве. Причем, цепляются к "избежать проблем с безопасностью, свойственных продуктам на С/C++".
Прямой доступ к памяти из языка – это в самом деле проблема с безопасностью. Ей можно пренебречь в более-менее монолитных проектах, требующих максимальной производительности. В случае оупенсорса, как показала практика, наличие сотен комиттеров и простота получения UB для языка напрямую влияют на количество уязвимостей. Можно тот же OpenSSL вспомнить. Да, чисто теоретически грамотный программист не допустит "плохого кода", а даже если допустит - коммит не пройдет ревью, но в реальной жизни все сложнее. Программист не совсем понимает чужой код, ревьюер смотрит на код в отрыве от контекста – ошибки пролезают в продакшн. В джаве это приведет к экзепшну, в C/C++ – к неопределенному поведению. Я не говорю что виртуальная машина жавы без изъянов, но она берет на себя функцию детекта ошибок программиста в рантайме, и это – дополнительный уровень защиты.
http://www.opennet.ru/opennews/art.shtml?num=41112
В комментах браузер критикуют только за то, что он написан на Жаве. Причем, цепляются к "избежать проблем с безопасностью, свойственных продуктам на С/C++".
Прямой доступ к памяти из языка – это в самом деле проблема с безопасностью. Ей можно пренебречь в более-менее монолитных проектах, требующих максимальной производительности. В случае оупенсорса, как показала практика, наличие сотен комиттеров и простота получения UB для языка напрямую влияют на количество уязвимостей. Можно тот же OpenSSL вспомнить. Да, чисто теоретически грамотный программист не допустит "плохого кода", а даже если допустит - коммит не пройдет ревью, но в реальной жизни все сложнее. Программист не совсем понимает чужой код, ревьюер смотрит на код в отрыве от контекста – ошибки пролезают в продакшн. В джаве это приведет к экзепшну, в C/C++ – к неопределенному поведению. Я не говорю что виртуальная машина жавы без изъянов, но она берет на себя функцию детекта ошибок программиста в рантайме, и это – дополнительный уровень защиты.