2. Он не работает напрямую так, как написано в коде;
3. Многие его средства неудобны, громоздки, не нужны в большинстве случаев;
4. Некоторые его средства лучше вообще никогда не использовать, потому что они либо устарели, либо ведут к ошибкам;
5. У него нет подробного детального описания того, как всё устроено и работает;
6. В нём постоянно внедряется новый синтаксический сахар, который по сути бесполезен, но маркетинг призывает всех переписывать каждый раз старый сахар на новый;
7. Он не оптимален ни по памяти, ни по быстродействию;
8. Программы на нём тяжело отлаживать и тестировать, потому что используют в массе своей ООП;
9. Чтобы программировать на нём, нужно постоянно покупать новые книги и читать их;
10. Его фреймворки регулярно выкидывают на помойку, что опять ведёт к переписыванию всего и вся;
11. Большинство программистов на нём и слышать не желают про оптимизацию программ и культуру безопасного кодирования, как и про алгоритмы - обычно знания заканчиваются там, где заканчиваются руководства;
12. Его сложность и обилие классов заставляют задумываться над выбором средств реализации чаще, чем сосредотачиваться на алгоритме решения;
13. Для него мало бесплатных дополнений, большинство качественных сопутствующих средств - платны;
14. При постоянно растущей энтропии синтаксиса языка качественный код превращается в кашу;
15. Программисты, привыкшие к упрощениям, начинают бояться сложностей;
16. Обилие обёрток сводит на нет программирование на бумаге.
17. Абстрагированный от железа язык можно развивать до бесконечности.
18. И ещё эта Visual Studio - один сплошной баг с регулярным обновлением.