Можете это "программисту" постучать по лбу всем известным органом за такие взгляды про C#
- Любой язык с JIT-компиляцией и управляемым кодом работает не "напрямую", но где тут минусы.
- Чушь полная. В любом языке есть такие конструкции и инструменты, но это не делает язык бесполезным.
- У каждого языка есть устаревшие или редко используемые конструкции и модули, которые не обязательно применять. Но раз в жизни все равно бывает тот самый частный случай и хорошо когда есть готовая реализация.
- Документация C# и .NET очень обширна, а исходники фреймворков открыты. Например тут - https://referencesource.microsoft.com
- Синтаксический сахар - это не про маркетинг, а улучшение читаемости кода. Никто не заставляет вас постоянно переписывать старый код или мгновенно переходить на новую версию.
- Оптимальность зависит от задач. C# даёт баланс между удобством и производительностью
- То что в C# все построено на классах и объектах не является проблемой, а процессы связанные с дебагом или тестированием зависят от навыков разработчика.
- Знания всегда нужно обновлять, независимо от языка. И это даже не только независимо от языка, это независимо от рода деятельности. Если вы хотите оставаться специалистом и не выпадать из трендов рынка труда, то придется постоянно развиваться.
- Развитие фреймворков - нормальный процесс в IT. Обновления повышают удобство и безопасность. В других языках, которые постоянно развиваются, ситуация такая же.
- Язык тут явно ни при чем, а говнокодеры есть везде. Это независимо от языка.
- Если ваше приложение чуть сложнее, чем Hello World, то так или иначе вам придется задуматься про поддержку и про оптимизацию. Но куда важнее иметь просто работающую программу без применения паттернов и алгоритмов, чем стараться сразу написать какое-то оптимизированное решение, в котором вы 100% потеряетесь.
- В C# достаточно бесплатных инструментов. Visual Studio Community и .NET - бесплатные. На гитхабе или в том же VS, в расширениях, есть куча всего бесплатного, что упростит вам разработку. Экосистема и комьюнити .NET одно из самых больших в мире.
- Так в любом языке. Чем больше кодовая база, тем сложнее ее поддерживать. Ну или покажите ЯП, в котором увеличение кодовой базы упрощает его поддержку.
- Упрощения не мешают разбираться в сложных вещах, если есть желание.
- Опять же дело не в языке. Да и зачем сейчас нужно программирование на бумаге. Да и нужно это было далеко не всем.
- Любой высокоуровневый язык можно развивать бесконечно. И зачем мне привязка к железу. Зачем мне молоток, который зависит от гвоздей.
- VS - мощный инструмент, но никто не запрещает использовать альтернативы, например, Rider. Любой крутой инструмент может содержать какие-то проблемы и баги. Если вас это напрягает, то пишите в блокноте. Там нет багов.
1. Его невозможно полностью изучить;
2. Он не работает напрямую так, как написано в коде;
3. Многие его средства неудобны, громоздки, не нужны в большинстве случаев;
4. Некоторые его средства лучше вообще никогда не использовать, потому что они либо устарели, либо ведут к ошибкам;
5. У него нет подробного детального описания того, как всё устроено и работает;
6. В нём постоянно внедряется новый синтаксический сахар, который по сути бесполезен, но маркетинг призывает всех переписывать каждый раз старый сахар на новый;
7. Он не оптимален ни по памяти, ни по быстродействию;
8. Программы на нём тяжело отлаживать и тестировать, потому что используют в массе своей ООП;
9. Чтобы программировать на нём, нужно постоянно покупать новые книги и читать их;
10. Его фреймворки регулярно выкидывают на помойку, что опять ведёт к переписыванию всего и вся;
11. Большинство программистов на нём и слышать не желают про оптимизацию программ и культуру безопасного кодирования, как и про алгоритмы - обычно знания заканчиваются там, где заканчиваются руководства;
12. Его сложность и обилие классов заставляют задумываться над выбором средств реализации чаще, чем сосредотачиваться на алгоритме решения;
13. Для него мало бесплатных дополнений, большинство качественных сопутствующих средств - платны;
14. При постоянно растущей энтропии синтаксиса языка качественный код превращается в кашу;
15. Программисты, привыкшие к упрощениям, начинают бояться сложностей;
16. Обилие обёрток сводит на нет программирование на бумаге.
17. Абстрагированный от железа язык можно развивать до бесконечности.
18. И ещё эта Visual Studio - один сплошной баг с регулярным обновлением.