Мое личное мнение в том что С# больше чем надо ибо в сфере где он в основном используется нужны Java. К тому же возможно дело в том что большой пласт C# задействован в геймдеве, где зарплаты в целом ниже чем в остальных областях. Велком. Мне важно ваше мнение по этому поводу. Серьезно. В целом C# язык (на мой вкус конечно) довольно хорош. А языков я знаю много. Да ИМХО Haskell и Rust получше будут. Да что там, родной брат F# тоже. Но на фоне Java, C++, PHP и JavaScript и тем более, прости господи, Go, ИМХО он прекрасен. Платформа .NET зрелая чуть более чем полностью. Фреймворков и Библиотек хватает за глаза и на все. + Еще куча крутых проприетарных есть. Это не Rust где если что — то тебе нужно специфическое, то его скорее всего нет или какая нибудь библиотека серая в глубокой альфе. Да даже для чего нибудь обыденного. Возможно дело в том что ASP.NET последние годы был не шибко постоянен. Вот надежда что с .net Core 3.0 версией все устаканиться. Хотя мне то как раз эти частые изменения нравятся, а вот бизнесу поди больше по душе что-то постоянное и неизменное






Ссылки на источники данных
yandex.ru/company/researches/2019/it-jobs#cards
insights.stackoverflow.com/survey/2019#top-paying-technologies
moikrug.ru/salaries
UPD
Хорощие новости товарищи — opennet.ru/opennews/art.shtml?num=50641
+ Blazor скоро впилят по дефолту и можно будет и фронт пилить на C# да еще и от Teleric www.telerik.com/blazor-ui уже есть готовые виджеты вроде Таблицы, календаря и прочего т. е. продавшен реди замена фронту на JS Это таки радует.
Комментарии (60)
Brightori
05.05.2019 21:38+2Думаю дело в геймдеве, на шарпе большой кластер инди разработчиков и всякие стартапы, которые портят статистику. В корпоративной разработке/бэкэнде думаю зп примерно равны другим языкам.
Suvitruf
05.05.2019 22:26Почему сразу инди то? Unity разработчикам в принципе мало платят даже в крупных компаниях.
nApoBo3
05.05.2019 21:43-6ИМХО средняя сложность задач решаемых на c# на данный момент ниже. По большей части стек .net ограничивается декстопными win приложениями. Да, я знаю, можно и сервера, и веб и даже базы. Но по факту 99% это пользовательские win приложения.
Тут нет ничего нового с низкой предсказуемостью, не нужна сильная оптимизация, да и вообще не модно и даже не достаточно «энтерпрайзово»(по сравнению с java ).
Возможно у MS получится это изменить, большим шагом в этом направлении стала совместимость .net и nix. Это действительно очень хорошо для бизнеса, можно и сервер и клиент писать на одном стэке( gui на java это....), осталось сделать нормальный веб. Но пока все это обрастет компонентами и вытеснить кучу легаси на java( и сами java спецов вместе с ним ) пройдет очень много времени, если это вообще произойдет, плюс есть вопросы по мобильным приложениям.
Вот и тянут вниз ЗП программисты с малым опытом. А в java в 3 года опыта только все начинается. Плюс работодатель держит в голове( хотя это не совсем так или даже совсем не так ), что java разработчки сможет и в android и если надо в kotlin или scala.questor
05.05.2019 22:09+4Сделать нормальный веб и всё? Веб от MS имеет давнюю историю (и инструменты — VS, vscode и сервисы (IIS уже какой версии) и технологии от самых первых ASP до core/blazor) и достаточно зрел. А вот те же мобильные платформы… ( Начинаешь на ксамарине писать что-то — вроде норм, но чуть копнёшь глубже — надо идти изучать нативные штуки.
nApoBo3
05.05.2019 22:21Мобильные приложения я отдельно указал
", плюс есть вопросы по мобильным приложениям."
IIS конечно замечательно, но доминирующим в вебе он явно не является и как результат .net там тоже не очень кому нужен.
rudinandrey
06.05.2019 09:57>>> достаточно зрел…
была у MS программа bizspark в которой мне посчастливилось поучаствовать. Так вот, дали ключи для VS всех версий, в то время я занимался разработкой десктопных приложений под Windows. Потихоньку переползая на WEB, потому что тогда и еще больше чем тогда считаю что почти все можно сделать в Web версии. т.е. 90% приложений можно запускать в браузере и это будет даже лучше, потому что не надо будет доставлять, обновлять и т.п. ну в общем, переполз на Web, разумеется это IIS+Asp.Net я же C# разработчик. А что еще? В ранних версиях не было Null-безопасных типов, было сильно сложнее, все чаще падало. Но не смертельно. Больше всего проблем доставлял именно IIS, настройка. т.е. вот в блокноте открываешь, XML редактируешь, вот все тоже самое, нет, не запускается. проверяешь все до символа тоже самое. Нет где то тут ошибка. Решалось обычным копированием из одного файла в другое, видимо может с какими то невидимыми символами проблемы были, не знаю. Шло время, я старел, росло нервное напряжение, в итоге через пару лет после окончания программы bizspark количество вот таких моментов превысило какой то предел, я наплевав на все лояльности, сказал себе здоровье дороже. И перешел на стек Linux+nginx+PHP и счастлив. Поэтому нет, не зрел, и вряд ли будет, хотя сейчас может быть. Но сильно сомневаюсь.
usego
05.05.2019 22:38+2Ну про десктоп вы сильно загрули. Есть огромный пласт всяких корпоративных ASP.NET (Webforms / MVC) сайтов. Да сейчас новый проект быстрее на каком реакте начнут, но вот бекэнд — та дотнете хорош. Уж на ноде уважающих себя дотнетчик бекенд делать не будет.
nApoBo3
05.05.2019 23:00-3Не такой он уже и огромный по отношению к общему объему трудозатрат в области разработки раз не может разогреть рынок.
MrDaedra
06.05.2019 08:39Как-то у Вас всё наоборот получается. Сразу видно, что человек не особо знаком с. NET, его рынком труда и трендами. Мне нравится десктоп разработка, но более 90% попадающихся мне вакансий — это вэб. Про зрелость веб стека и количество компонентов слышать просто смешно — всё уже много лет как написано. С выходом core ситуация стала ещё лучше. В плане развития, ближайшие изменения как раз должны коснуться десктопа, а точнее принести его в .NET Core на Windows.
Vadem
06.05.2019 21:34Мне кажется, у вас не совсем правильное представление о С# разработчиках.
По запросу «С#» на hh.ru находится 1227 вакансии в Москве.
По запросу «WinForms or Windows Forms or WPF or Windows Presentation Foundation» находится 161 вакансия.
По запросу «ASP.NET» — 437 вакансий.
Думаю, большинсво С# разработчиков — это бэкенд и веб-разработчики.
И что вы понимаете под «осталось сделать нормальный веб»?
Чем ASP.NET Core не устраивает?
vladvul
05.05.2019 22:06-4никому не нужен код, который работает только на вин. В то же время разработчики приходят туда с десктопа в большом количестве, а язык приятный.
Много денег платят за говноработу — Яву и 1СErnado
05.05.2019 22:08+2.NET уже года как два зашел на Linux и очень уверенно себя там чувствует.
nApoBo3
05.05.2019 22:25+3Ну mono далеко не два года существует.
Возможно новый не крупный проект кто-нибудь и рискнет писать под nix на .net.
Но переписывать тонны java кода с аргументацией «года два как зашел» никто не будет.
Это очень хорошо, что теперь есть возможность, правда весьма ограниченная поскольку явно будут проблемы в компонентами, хостить .net приложения на nix системах, но до реального выхлопа от этого пройдет весьма не мало лет.SanSYS
05.05.2019 22:41+2Пример реального выхлопа
https://devblogs.microsoft.com/dotnet/bing-com-runs-on-net-core-2-1/
Переписывать тонны именно Ява кода да, бессмысленно, тем более если это тонны хорошо протестированного, отлаженного, оптимизированного кода
А вот переходить с полной версии на кор вполне норм, особенно с выходом третьей версии
Как минимум сэкономить на лицензии винды можно будет ;)
nApoBo3
05.05.2019 22:58-3Каким образом здесь усматривается экономия на лицензиях винды?
BING это хороший пример, но явно не достаточный. Было бы удивительно если бы они сами его не продвинули.SanSYS
05.05.2019 23:03+1Бэк на .NET Framework Full запускаться должен под виндой.
Перейдя на .net core вам не нужно платить за серверную ос,.т к. появляется возможность запускаться, допустим, на DebianAscar
05.05.2019 23:06+2Так же была идея не зависеть от обновлений фреймворка, потому что есть вероятность что программа поведет себя иначе после обновления.
nApoBo3
05.05.2019 23:13-2Там стоимость лицензии ниже месячной ЗП разработчика. На фоне общих затрат это можно сказать погрешность.
SanSYS
05.05.2019 23:31+1Одной лицензии? Ну может быть. А если у вас приложение реплицировано, шардировано, отдельный уровень логического кеша и приложение по факту не одно, а их с десяток и требуется сотка виртуалок для sla хотя бы 99%, то… Даже если не так – а зачем платить больше? )
Ernado
05.05.2019 22:45Я вообще-то про .NET Core, а не про Mono. Как раз сейчас работаю над хайлоад проектом, который крутится исключительно на Linux и полностью написан на C#/.NET Core.
Про "переписывание с Java" я ничего не говорил, но вот очень много новых проектов стартуют именно на коре.nApoBo3
05.05.2019 22:57Много новых проектов это сильно не достаточно, чтобы быстро поднять вилку ЗП выше.
Много относительно чего, относительно того, что их раньше вообще не было или того сколько новых проектов стартует не на .net core?
Их должно быть не много, их должно быть больше чем на java. Все таки именно java основной идеологический конкурент C#.Ernado
05.05.2019 23:05По поводу статистики ЗП я чуть ниже написал. А вот что касается
java основной идеологический конкурент C#.
то с выходом .NET Core ситуация несколько изменилась. Кор успел еще зайти на ту территорию, где раньше были в основном только Node.js, Python и иногда даже Go.
nApoBo3
05.05.2019 23:17Да. Но этот даст эффект не мгновенно. Сколько описанные вами технологии создавали себе поляну под солнцем? .net на nix системах это очень хороший ход, но ход на перспективу, а не на прямо вот сейчас. Вероятно это поднимет ЗП .net разработчиков в некоторой перспективе, но не прямой сейчас и даже не завтра.
alex1t
06.05.2019 12:19Зря — .net core на linux — очень даже отлично и стабильно работает. Как раз занимаемся переносом старого legacy-проекта с .Net Framework на .Net Core — вообще красота. Сами работаем в Ubuntu + VS Code.
Ernado
05.05.2019 22:07+2.NET покрывает очень широкий спектр задач: от машинного обучения, высоконагруженных систем и IoT до веб-разарботки и CRUD-приложения. Поэтому и статистика такая. Если брать статистику по отдельным сегментам — то цифры могут отличаться на порядки.
Marwin
05.05.2019 23:18вот поэтому в статистике есть не только среднее арифметическое, но и всякие средневзвешенные, дисперсии и прочие умные метрики, которые многое могут объяснить и отсечь, например, студентов за 3 копейки, которых у .Net как раз из-за её зрелости, обилия примеров на все случаи жизни и легкого порога вхождения может быть огромное количество. Естественно, что на Скале, F# и прочей специфике пишут только уже состоявшиеся программисты, понимая что это и куда это, тем самым поднимая среднюю температуру по больнице.
wrmax
06.05.2019 00:01+1Go, Erlang, Elixir — в топе, потому что это как правило highload и там большие деньги
Swift, Objective-C, Kotlin — mobile-разработка, там фаза активного роста с финансовой поддержкой
Scala, Clojure, F# — похоже, что специфические задачи, где требуются навыки функционального программирования.
Assembly, С и С++ — думаю рынок делят и накручивают олдовые парни, пока молодежь осваивает другие языки.
Ruby — не могу объяснить
Java тянет вверх и mobile и высококритичные системы (по историческим причинам)
Python — похоже, что из-за спроса на нейронные сети
Остальное в пределах погрешности
Готов послушать другие версии, т.к. не претендую на объективностьargamidon
06.05.2019 01:40Почему же имеется такая большая разница между Obj-C & Swift?
alexwillrock
06.05.2019 07:18ребята, которые работают на Obj-c, обычно имеют больше продуктового опыта.
wrmax
06.05.2019 07:52Как предположение, Новые проекты для IOS создаются на Swift и молодёжь учит его и демпингует соответственно (насколько это вообще возможно с учетом спроса на мобайл). Но старые проекты на objective-c никуда не испарились, также и разрабы, что их делали явно успели накрутить зарплату.
Terras
06.05.2019 01:39Тут есть очень простое объяснение:
1) Это Unity, которая сильно снижает планку зп по рынку.
2) Студенты. Майкрософт хорошо лоббирует .net в универах, поэтому большая часть студентов (которые готовы работать за еду), идут со знанием .net
3) В США большая часть .net работы — это компании в области гос/финтех-сектора. У нас же по историческим причинам, в этом секторе основной игрок Java. Следовательно и деньги в .net не идут.
4) .Net — дорогой стек, поэтому все стартапы, которые вынуждены большой зп конкурировать с более «стабильными» компаниями за разработчиков, выбирают python/java/php, а не .net. Хостинг на .net — крайне разорителен (сейчас, конечно, появился .net core — но он еще слишком молод, чтобы поменять ситуацию).
5) .net часто используется во всяких тендерных проектах, где руководство использует принцип «совка». Разработчик должен быть голодным и «уставшим».
___
Другими словами — специфика рынка использования .net (весьма ограниченный сектор использования в реальных проектах), плюс большой поток желающих, кто готов работать за еду.
Реально открываешь вакансии, там middle .net разраб — 90-120к тысяч. Хотя проекты такой же сложности на Java — идут уже 120-150к. В общем, так сложилось, что .net платят меньше, и работодатели не шибко хотят поднимать эту планку.Accounter
06.05.2019 15:13специфика рынка использования .net
Можно, наверное, сказать так: технологии .net слишком легкие для входа (для работников), но слишком дорогие для работодателей? Поэтому много желающих на C# кодить, но мало желающих (работодателей) покупать лицензии .net, а значит мало вакансий на .net?
lostmsu
06.05.2019 21:41+2> Хостинг на .net — крайне разорителен
Аzure под низкую нагрузку вообще бесплатный.
NIKOSV
06.05.2019 01:57Все намного проще — их просто на порядок больше и решают они разного рода задачи. Поэтому планка может быть от 60к до 200к и больше. Те компании, которые выбирают скалу, clojure, эрланг и другую экзотику, знают для чего их берут и нанимают соответствующих специалистов. Там джуниоров обычно не бывает.
Короче, в абсолютном количестве, специалистов на java/C# зарабатывающих 150к будет не меньше (я бы сказал в разы больше), чем оных скажем на скале. Найти работу на 150к .NETчику будет не тяжелее, чем скалисту.
Но по максималке экзотика думаю все же выше будет, и скала-звезда будет зарабатывать чуть больше чем .NET-звезда, но не на столько больше, как в статье.
Brightori
06.05.2019 08:26ради интереса глянул hh на предмет вакансий, если брать мидлов, то не заметил большой разницы в зп. У синьоров/лидов большой разброс, потому сложно оценить в среднем.
Однако навскидку вакансий по Java например больше чем по С#, С++ меньше, Swift/ObjectiveC/Ios еще меньше. Scala — вакансий мало, но ценник там 200к -300к.
Поэтому утверждение что С# программисты дешевые — довольно спорное. Ну это касательно России, на стаковерфлоу наверное США имеется ввиду, а там нет популярной базы вакансий насколько я знаю, и сложно проверить количество вакансий/заработкиyarric
06.05.2019 09:53ценник там 200к -300к
Как видно из приведённых в статье цифр, по американским меркам такие зп — это вообще работа за еду.
Brightori
06.05.2019 10:10+1ну у нас это чистые деньги(на руки), а в США обычно говорят до налогов. Там в целом может до половины зп уйти на всякие налоги. Стоимость жилья/еды выше. Я думаю в сухом остатке у хорошего программиста в Москве получается немногим меньше чем у программиста в США.
Другой вопрос что там рынок/спрос выше.Maksclub
06.05.2019 12:37Стоимость жилья/еды выше
Жилье выше, еда в пределах московских цен, и там и тут — остается от средних зп (всего рынка зп) примерно половина, за эту половину там можно позволить себе больше, чем за оставшуюся половину тут.Brightori
06.05.2019 12:50Мне сложно поддерживать разговор, так как в США знакомых программистов нет, в Канаде есть, мы считали что у них примерно такая же зп выходит. Про США только знаю про налоги и тд, и что там не всё так красиво как сумма годовой зарплаты.
erty
06.05.2019 15:17> еда в пределах московских цен
Не знаю как там в Арканзасе, а в более-менее цивилизованных местах еда безумно дорогая. $15-20 баксов за тарелочку и ещё не меньше $5 чаевых. Меньше чем на 25 баксов итого не поесть. В Москве гораздо дешевле
samhuawey
06.05.2019 10:52Кроме вышеперечисленного есть ещё одна причина. Java более менее стабильна, кто инвестирует в неё — может быть уверен что условно говоря прога запиленная 10 лет назад продожит работать ещё 10 лет пока наконец начальство не сподобится выделить средства на миграцию на актуальную версию рантайма. Опять же множество проблем прекрасно описано в интернетах и сравнительно легко решаются.
ДотНет только только зашёл в современные платформы на базе Линукса и грубо говоря пока ещё не набралась критическая масса чтобы менеджеры начали задумываться о переводе кодинга на новую технологию.
Ну и опять же, несмотря на опенсорс кора, недоверие к Microsoft остаётся. В своё время они боролись не совсем честными способами с Java и Javascript, потом нагибали бизнес чтобы ослик стал единственным браузером, что ещё взбредёт в голову менеджерам майкрософта — одному Гейтсу известно. Так что сейчас вроде бы всё хорошо, но осадочек остался.
Думаю, на десктопах в ближайшее время останется винда и макось (примерно пополам), а в серверах, мобилках и в облаках винде делать нечего, ибо дорого. Вот и получается, что разработчиков дотнета требуется мало, а в корпоративе где основные бабки крутятся и того меньше.
Оракул по идее может помочь делам майкрософта платной джавой, но он поздно этим занялся, опенсорсная рантайм работает не хуже.
Konstalom
06.05.2019 16:07Возможно, не все еще успели переквалифицироваться на C#? Он же относительно молод.
kirillsulim
06.05.2019 16:07Предположу, что причина в большей изолированности C# как платформы из-за сильной связи с Windows. Таким образом при малых зарплатах переход на другую технологию становится сложнее, что порождает меньший отток специалистов, и в результате меньшие зарплаты. Поясню на примере: когда программиста на Java перестает устраивать зарплата, он может за N месяцев выучить Scala, Go, Python или любой другой язык и продолжать работать с Linux-стеком, поскольку bash, набор баз данных и общие паттерны работы приложений в сервис-ориентированной инфраструктуре остается прежним. У программиста на C# нет такой альтернативы, при переходе на другой язык ему придется полностью менять стек Windows-C#-TransactSQL. Если я прав, то переход на .Net Core и Linux должен это исправить в долгосрочной перспективе.
agalakhov
06.05.2019 16:07Есть тесная связь между квалификацией программиста и тем, на каких языках он любит работать. Как правило, если программист хорошо владеет только одним языком, это хреновый программист. Если же программист владеет несколькими языками, то среди этих языков C# окажется, скорее всего, не лучшим. Нет, он неплох, но при выборе между C# и F#, или C# или Clojure, или C# или Rust и т.д. C# займет второе место. Соответственно, причин выбрать именно C# обычно бывают две: программист не владеет лучшим языком или менеджер не позволяет выбирать язык. В обеих ситуациях речь идет не о программисте высшей квалификации.
Веские причины хорошему программисту писать на C# или любом другом не лучшем языке: пишется плагин к чужой системе, подчиненные программиста в масштабном проекте не знают других языков. Оба случая в статистике незаметны.
Seva1986
06.05.2019 16:07Да все просто, потому что C# и Java по большому это языки созданные для одних и тех же задач, энтерпрайз, десктоп, ну а позже еще и мобилки добавились остальное уже по мелочи. Да C#лучше Java как язык (так как он создан намного позже и взял все лучшее из Java). Но по причине того что изначально шел только под Винду и опять же то что позже появился, возможно еще цена экосистемы, сыграло свою роль, не в пользу C#. А так как в основном большие деньги как раз на энтерпрайзе (а там правит балом Java) вот и разница в зп. И ксожалению core не исправит уже ситуацию, уже поздно…
VanquisherWinbringer Автор
06.05.2019 16:17К сожалению скорее всего правы именно вы. Core нужен был лет 10 назад. У C# будут отъедать нишу новые языки вроде Kotlin, TypeScript, Rust, Swift (У него сервер сайд только развиваться но в целом язык хорош, очень хорош) да даже Go и поэтому скорее всего стагнация в будущем а не рост. Не говоря уже о функциональных Clojure, F# и другие. Хотя, может быть просто я пессимист. Время покажет.
Terras
06.05.2019 16:26Тут проблема не тольок в том, что .net был нужен 10 лет тому назад, но еще в том, как это все делается.
Выпустив бы Майкрософт .Net Core, который работает точно также, как .Net Framework с теме же инструментами, все бы на него радостно пересели и работали.
Майкрософт же — сделали релиз .net Core сырым, без кучи АПИ классического .net фреймворка. Т.е. людям либо юзать классику, либо изобретать велосипед. Разбили платформу фактически на две (под винду, под линукс). Для каждой версии придумали свои версии инструментов. Плюс еще релизят версии, которые ломают совместимость с более ранними версиями. Т.е. Бардак полнейший.
В итоге, те кто уже работает на .net Framework могут как-то в этом разбираться и что-то переписывать частично. А люди с других технологий смотрят на это, и просто отказываются от греха подальше.
Т.е. нужна стабильность и адекватность развития.
P.s. Естественно Майки не могли поступать так, как я указал, ибо, тогда люди бы перестали покупать их сервера.
megazoid007
06.05.2019 16:07ИМХО на каждом рынке решают свои факторы. Например по яндексу можно судить о рынке труда СНГ, в основной своей массе это аутсорс т.е. влияние накопленной кодовой база на единицу разработчика т.е. спрос на разработчиков которые будут поддерживать существующий код.
По стэковерфло это западный рынок, здесь как мне кажется удельный вес легаси снижается и начинают все больше влиять продуктовые и стартаповские темы и как мы видим ситуация по стэковерфло я бы сказал почти ровная. Так что не все так плохо.
kuftachev
07.05.2019 08:26По-моему, такие рейтинги — это средняя температура по больнице и могут влиять очень много факторов.
Мне кажется, что человек решающий задачу для одного и того же сектора, с равной квалификацией получит одну и ту же ЗП с поправкой на то, на сколько просто найти такого человека (если людей не хватает, они дороже).
Отсюда разница больше будет вылазить от сферы применения, чем от языка.
samhuawey
07.05.2019 10:49Это не так. Если людей не хватает, будут писать проект на другом языке или отдадут в Индию.
По своему опыту сужу — при мне пытались набрать команду на C# проект в энтерпрайзе, не смогли — не набралось достаточно кандидатов. Джуниоры были, сеньёров не хватило.
Всё же джава хороша ещё и тем, что платформа давным давно открыта, на выбор десятки рантаймов, информации много, программистов тоже. Короче говоря зрелая технология. А если проблемы возникнут в рантайме майкрософта, решать их придётся самому. Или через саппорт майкрософта, о котором у меня грустные воспоминания.
medvedevia
08.05.2019 23:39Средняя зарплата на основании 36 анкет, за 1-ое пол. 2019 года
Это несерьезно!VanquisherWinbringer Автор
08.05.2019 23:42Шито поделать. Такие данные нашел там. Других у меня нет. Ну вон есть от Яндекса и они как-то очень сильно похожи на эти. Хотя там с HH данные так что выборка будет по больше.
kinall
Русский язык глаза болеть, Розенталь читать много-много.
MechanicZelenyy
Розенталь с вами да пребудет.