Здравствуйте, Shmj, Вы писали:
S>А вот почему на Java/C#/Dart/etc. — писать проще и комфортнее? Есть ли однозначный ответ.
S>Можно сказать что из-за управления памятью. Но вроде умные указатели таки можно сказать вопрос решили. Но даже если этот вопрос убрать — то все-равно, как ни крути, а как-то медленнее получается и я затрудняюсь ответить почему так.
1. GC. Это самое главное. Ему никакой замены нет. Умные указатели это полная шляпа. Rust ломает мозг. Псевдоумные указатели на счётчиках дают утечки на циклических структурах, хотя по эргономичности они, наверное, идут сразу после GС.
2. Адекватная стандартная библиотека. В С++ она просто максимально мегаужасна. Там просто всё плохо, от начала до конца.
3. IDE. В Java IDE прекрасны. В C++ они ужасны. И это не исправить, это генетическое, из-за сложности языка.
4. Сопутствующий тулинг. В Java про него просто не думаешь. В С++ вечно какой-то гемор. Впрочем допускаю, что тут просто разница в опыте.
5. Простота языка. В Java очень редко возникают ситуации, где хочется навернуть шаблон на шаблон. В С++ — начинаешь проект и сходу начинаешь писать свой класс строки, свой класс массива, свой класс связанного списка (т.к. стандартные убоги, см. выше), и в итоге прошёл месяц, а ты закопался в стандартах и думаешь, как же реализовать какой-нибудь оператор присваивания в execption-safe и thread-safe виде, хотя изначально тебе надо было просто HTTP запрос сделать и распарсить его ответ. С++ просто тебя заваливает какой-то лажей, не имеющей отношения к решаемой задаче.