Мой личный бложек. Пишу о жизни в Чехии, программировании и просто свои мысли обо всём. Пишу не часто.

 
C# хороший или плохой язык?
Заметки не программиста
Минусы:
Не кроссплатформенный, только для Windows. Да и то, чтобы установить написанную на нём программу надо пользователю установить .net framework, нормально работает только в Win 10, в более старых версиях может стоять старая версия .net framework и придётся объяснять пользователю как всё настроить, либо придётся делать инсталлятор, который это исправит.
Но есть же .net core и он работает в linux. Таки да есть, но работают только консольные программы, и для запуска надо ставить .net core на компьютер. Да и для консольных приложений в linux есть свои языки программирования, которые с этой задачей справятся лучше.

Медленный, потому что специальный байт-код, а  не в двоичный код процессора, любой более-менее сложный алгоритм на том же C или D работает быстрее.

Объектно ориентированное программирование, со своим зоопарком, которое не во всех проектах то и нужно. Иногда для простого проекта разработчики делают интерфейсы, потом по ним классы, потом наследники классов, потом фабрику классов, когда на деле нужен всего 1 класс со статическими глобальными переменными. У меня был проект из 20 с лишним файлов, стал оптимизировать и всё уменьшилось до 2х небольших файлов, код стал проще и понятнее.

Конфиги на xml, нет ну серьёзно? В 21 веке использовать xml, когда все нормальные языки используют json.

WPF это просто ёбаный пиздец, сложный для понимания, логика работы оч странная. Простое приложение жрёт память и процессор. Хотя в целом выглядит красиво. Мне кажется лучше встроить CLSID_WebBrowser в окно WinForms и верстать внешний вид окна как html-страницу, в этом случае памяти расходуется меньше, работает быстрее и не нужен специально обученный разработчик. html знает любой разработчик.

Entity framework - задумка неплохая, но пользы от него мало.

Тотальное помешательство на Model-View-Controller. Который хорош только как сферический конь в вакууме, но на практике есть куча исключений. Моё мнение лучше на этом вообще не заморачиваться, а делать так как лучше для конкретной задачи.

Тотальный похуизм на оптимизацию кода. Главное навернуть посложнее чтобы солиднее выглядело а не работало быстро. Разработчики стесняются что-ли писать короткий код.

unittest'ы мягко говоря не оч. В том же D они гораздо гармоничнее вписываются в код.

Плюсы:
Удобнее чем Java, ну лично мне так кажется. Достаточно неплохой синтаксис, хотя и местами не идеальный.

Его изучают в университетах, поэтому найти разработчиков на C# не сложно.

WinForms программы прилично выглядят, и удобнее программировать чем на c + winapi. Есть редактор форм. Оконное приложение можно достаточно быстро сделать.

Удобное подключение внешних api, с автоматической генерацией классов для работы с ними. Но при этом в других языках с api не намного сложнее работать, так что это небольшой плюс.

Множество готовых пакетов и модулей под любые нужды.

Вывод:
Неплохо подходит для разработки Desktop-приложений не требующих большой скорости работы для использования в офисе. Также подходит для веб-приложений не работающих с большой нагрузкой, типа сайтов магазинов и фирм. Т.е. для тех случаев когда приложение устанавливает специально обученный админ, а пользователь просто пользуется. Для всего остального лучше использовать другие языки.
0