Как стать автором
Обновить

Комментарии 62

Русский язык глаза болеть, Розенталь читать много-много.
Розенталь с вами да пребудет.
Думаю дело в геймдеве, на шарпе большой кластер инди разработчиков и всякие стартапы, которые портят статистику. В корпоративной разработке/бэкэнде думаю зп примерно равны другим языкам.
Почему сразу инди то? Unity разработчикам в принципе мало платят даже в крупных компаниях.
ИМХО средняя сложность задач решаемых на c# на данный момент ниже. По большей части стек .net ограничивается декстопными win приложениями. Да, я знаю, можно и сервера, и веб и даже базы. Но по факту 99% это пользовательские win приложения.
Тут нет ничего нового с низкой предсказуемостью, не нужна сильная оптимизация, да и вообще не модно и даже не достаточно «энтерпрайзово»(по сравнению с java ).
Возможно у MS получится это изменить, большим шагом в этом направлении стала совместимость .net и nix. Это действительно очень хорошо для бизнеса, можно и сервер и клиент писать на одном стэке( gui на java это....), осталось сделать нормальный веб. Но пока все это обрастет компонентами и вытеснить кучу легаси на java( и сами java спецов вместе с ним ) пройдет очень много времени, если это вообще произойдет, плюс есть вопросы по мобильным приложениям.
Вот и тянут вниз ЗП программисты с малым опытом. А в java в 3 года опыта только все начинается. Плюс работодатель держит в голове( хотя это не совсем так или даже совсем не так ), что java разработчки сможет и в android и если надо в kotlin или scala.
Сделать нормальный веб и всё? Веб от MS имеет давнюю историю (и инструменты — VS, vscode и сервисы (IIS уже какой версии) и технологии от самых первых ASP до core/blazor) и достаточно зрел. А вот те же мобильные платформы… ( Начинаешь на ксамарине писать что-то — вроде норм, но чуть копнёшь глубже — надо идти изучать нативные штуки.
Мобильные приложения я отдельно указал
", плюс есть вопросы по мобильным приложениям."
IIS конечно замечательно, но доминирующим в вебе он явно не является и как результат .net там тоже не очень кому нужен.
>>> достаточно зрел…
была у MS программа bizspark в которой мне посчастливилось поучаствовать. Так вот, дали ключи для VS всех версий, в то время я занимался разработкой десктопных приложений под Windows. Потихоньку переползая на WEB, потому что тогда и еще больше чем тогда считаю что почти все можно сделать в Web версии. т.е. 90% приложений можно запускать в браузере и это будет даже лучше, потому что не надо будет доставлять, обновлять и т.п. ну в общем, переполз на Web, разумеется это IIS+Asp.Net я же C# разработчик. А что еще? В ранних версиях не было Null-безопасных типов, было сильно сложнее, все чаще падало. Но не смертельно. Больше всего проблем доставлял именно IIS, настройка. т.е. вот в блокноте открываешь, XML редактируешь, вот все тоже самое, нет, не запускается. проверяешь все до символа тоже самое. Нет где то тут ошибка. Решалось обычным копированием из одного файла в другое, видимо может с какими то невидимыми символами проблемы были, не знаю. Шло время, я старел, росло нервное напряжение, в итоге через пару лет после окончания программы bizspark количество вот таких моментов превысило какой то предел, я наплевав на все лояльности, сказал себе здоровье дороже. И перешел на стек Linux+nginx+PHP и счастлив. Поэтому нет, не зрел, и вряд ли будет, хотя сейчас может быть. Но сильно сомневаюсь.
Ну про десктоп вы сильно загрули. Есть огромный пласт всяких корпоративных ASP.NET (Webforms / MVC) сайтов. Да сейчас новый проект быстрее на каком реакте начнут, но вот бекэнд — та дотнете хорош. Уж на ноде уважающих себя дотнетчик бекенд делать не будет.
Не такой он уже и огромный по отношению к общему объему трудозатрат в области разработки раз не может разогреть рынок.

Как-то у Вас всё наоборот получается. Сразу видно, что человек не особо знаком с. NET, его рынком труда и трендами. Мне нравится десктоп разработка, но более 90% попадающихся мне вакансий — это вэб. Про зрелость веб стека и количество компонентов слышать просто смешно — всё уже много лет как написано. С выходом core ситуация стала ещё лучше. В плане развития, ближайшие изменения как раз должны коснуться десктопа, а точнее принести его в .NET Core на Windows.

Мне кажется, у вас не совсем правильное представление о С# разработчиках.
По запросу «С#» на hh.ru находится 1227 вакансии в Москве.
По запросу «WinForms or Windows Forms or WPF or Windows Presentation Foundation» находится 161 вакансия.
По запросу «ASP.NET» — 437 вакансий.
Думаю, большинсво С# разработчиков — это бэкенд и веб-разработчики.
И что вы понимаете под «осталось сделать нормальный веб»?
Чем ASP.NET Core не устраивает?
никому не нужен код, который работает только на вин. В то же время разработчики приходят туда с десктопа в большом количестве, а язык приятный.

Много денег платят за говноработу — Яву и 1С

.NET уже года как два зашел на Linux и очень уверенно себя там чувствует.

Ну mono далеко не два года существует.
Возможно новый не крупный проект кто-нибудь и рискнет писать под nix на .net.
Но переписывать тонны java кода с аргументацией «года два как зашел» никто не будет.
Это очень хорошо, что теперь есть возможность, правда весьма ограниченная поскольку явно будут проблемы в компонентами, хостить .net приложения на nix системах, но до реального выхлопа от этого пройдет весьма не мало лет.

Пример реального выхлопа
https://devblogs.microsoft.com/dotnet/bing-com-runs-on-net-core-2-1/


Переписывать тонны именно Ява кода да, бессмысленно, тем более если это тонны хорошо протестированного, отлаженного, оптимизированного кода


А вот переходить с полной версии на кор вполне норм, особенно с выходом третьей версии


Как минимум сэкономить на лицензии винды можно будет ;)

Каким образом здесь усматривается экономия на лицензиях винды?
BING это хороший пример, но явно не достаточный. Было бы удивительно если бы они сами его не продвинули.
Бэк на .NET Framework Full запускаться должен под виндой.
Перейдя на .net core вам не нужно платить за серверную ос,.т к. появляется возможность запускаться, допустим, на Debian
Так же была идея не зависеть от обновлений фреймворка, потому что есть вероятность что программа поведет себя иначе после обновления.
Там стоимость лицензии ниже месячной ЗП разработчика. На фоне общих затрат это можно сказать погрешность.

Одной лицензии? Ну может быть. А если у вас приложение реплицировано, шардировано, отдельный уровень логического кеша и приложение по факту не одно, а их с десяток и требуется сотка виртуалок для sla хотя бы 99%, то… Даже если не так – а зачем платить больше? )

Я вообще-то про .NET Core, а не про Mono. Как раз сейчас работаю над хайлоад проектом, который крутится исключительно на Linux и полностью написан на C#/.NET Core.
Про "переписывание с Java" я ничего не говорил, но вот очень много новых проектов стартуют именно на коре.

Много новых проектов это сильно не достаточно, чтобы быстро поднять вилку ЗП выше.
Много относительно чего, относительно того, что их раньше вообще не было или того сколько новых проектов стартует не на .net core?
Их должно быть не много, их должно быть больше чем на java. Все таки именно java основной идеологический конкурент C#.

По поводу статистики ЗП я чуть ниже написал. А вот что касается


java основной идеологический конкурент C#.

то с выходом .NET Core ситуация несколько изменилась. Кор успел еще зайти на ту территорию, где раньше были в основном только Node.js, Python и иногда даже Go.

Да. Но этот даст эффект не мгновенно. Сколько описанные вами технологии создавали себе поляну под солнцем? .net на nix системах это очень хороший ход, но ход на перспективу, а не на прямо вот сейчас. Вероятно это поднимет ЗП .net разработчиков в некоторой перспективе, но не прямой сейчас и даже не завтра.
Зря — .net core на linux — очень даже отлично и стабильно работает. Как раз занимаемся переносом старого legacy-проекта с .Net Framework на .Net Core — вообще красота. Сами работаем в Ubuntu + VS Code.
Ну ты дружище даёшь — сравнил Яву и 1С :)

.NET покрывает очень широкий спектр задач: от машинного обучения, высоконагруженных систем и IoT до веб-разарботки и CRUD-приложения. Поэтому и статистика такая. Если брать статистику по отдельным сегментам — то цифры могут отличаться на порядки.

Да я сам зарабатываю больше чем по этой статистике.

>550к/мес. в России, вы сама скромность однако.
НЛО прилетело и опубликовало эту надпись здесь
Я знаю, поэтому и поделил, посчитайте сами.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

вот поэтому в статистике есть не только среднее арифметическое, но и всякие средневзвешенные, дисперсии и прочие умные метрики, которые многое могут объяснить и отсечь, например, студентов за 3 копейки, которых у .Net как раз из-за её зрелости, обилия примеров на все случаи жизни и легкого порога вхождения может быть огромное количество. Естественно, что на Скале, F# и прочей специфике пишут только уже состоявшиеся программисты, понимая что это и куда это, тем самым поднимая среднюю температуру по больнице.

Go, Erlang, Elixir — в топе, потому что это как правило highload и там большие деньги
Swift, Objective-C, Kotlin — mobile-разработка, там фаза активного роста с финансовой поддержкой
Scala, Clojure, F# — похоже, что специфические задачи, где требуются навыки функционального программирования.
Assembly, С и С++ — думаю рынок делят и накручивают олдовые парни, пока молодежь осваивает другие языки.
Ruby — не могу объяснить
Java тянет вверх и mobile и высококритичные системы (по историческим причинам)
Python — похоже, что из-за спроса на нейронные сети
Остальное в пределах погрешности

Готов послушать другие версии, т.к. не претендую на объективность
Почему же имеется такая большая разница между Obj-C & Swift?
ребята, которые работают на Obj-c, обычно имеют больше продуктового опыта.
Как предположение, Новые проекты для IOS создаются на Swift и молодёжь учит его и демпингует соответственно (насколько это вообще возможно с учетом спроса на мобайл). Но старые проекты на objective-c никуда не испарились, также и разрабы, что их делали явно успели накрутить зарплату.
Тут есть очень простое объяснение:

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 платят меньше, и работодатели не шибко хотят поднимать эту планку.
специфика рынка использования .net

Можно, наверное, сказать так: технологии .net слишком легкие для входа (для работников), но слишком дорогие для работодателей? Поэтому много желающих на C# кодить, но мало желающих (работодателей) покупать лицензии .net, а значит мало вакансий на .net?
НЛО прилетело и опубликовало эту надпись здесь
Все намного проще — их просто на порядок больше и решают они разного рода задачи. Поэтому планка может быть от 60к до 200к и больше. Те компании, которые выбирают скалу, clojure, эрланг и другую экзотику, знают для чего их берут и нанимают соответствующих специалистов. Там джуниоров обычно не бывает.

Короче, в абсолютном количестве, специалистов на java/C# зарабатывающих 150к будет не меньше (я бы сказал в разы больше), чем оных скажем на скале. Найти работу на 150к .NETчику будет не тяжелее, чем скалисту.

Но по максималке экзотика думаю все же выше будет, и скала-звезда будет зарабатывать чуть больше чем .NET-звезда, но не на столько больше, как в статье.
ради интереса глянул hh на предмет вакансий, если брать мидлов, то не заметил большой разницы в зп. У синьоров/лидов большой разброс, потому сложно оценить в среднем.
Однако навскидку вакансий по Java например больше чем по С#, С++ меньше, Swift/ObjectiveC/Ios еще меньше. Scala — вакансий мало, но ценник там 200к -300к.

Поэтому утверждение что С# программисты дешевые — довольно спорное. Ну это касательно России, на стаковерфлоу наверное США имеется ввиду, а там нет популярной базы вакансий насколько я знаю, и сложно проверить количество вакансий/заработки
ценник там 200к -300к

Как видно из приведённых в статье цифр, по американским меркам такие зп — это вообще работа за еду.

ну у нас это чистые деньги(на руки), а в США обычно говорят до налогов. Там в целом может до половины зп уйти на всякие налоги. Стоимость жилья/еды выше. Я думаю в сухом остатке у хорошего программиста в Москве получается немногим меньше чем у программиста в США.

Другой вопрос что там рынок/спрос выше.
Стоимость жилья/еды выше

Жилье выше, еда в пределах московских цен, и там и тут — остается от средних зп (всего рынка зп) примерно половина, за эту половину там можно позволить себе больше, чем за оставшуюся половину тут.
Мне сложно поддерживать разговор, так как в США знакомых программистов нет, в Канаде есть, мы считали что у них примерно такая же зп выходит. Про США только знаю про налоги и тд, и что там не всё так красиво как сумма годовой зарплаты.
> еда в пределах московских цен

Не знаю как там в Арканзасе, а в более-менее цивилизованных местах еда безумно дорогая. $15-20 баксов за тарелочку и ещё не меньше $5 чаевых. Меньше чем на 25 баксов итого не поесть. В Москве гораздо дешевле
НЛО прилетело и опубликовало эту надпись здесь
Возможно, не все еще успели переквалифицироваться на C#? Он же относительно молод.
Предположу, что причина в большей изолированности C# как платформы из-за сильной связи с Windows. Таким образом при малых зарплатах переход на другую технологию становится сложнее, что порождает меньший отток специалистов, и в результате меньшие зарплаты. Поясню на примере: когда программиста на Java перестает устраивать зарплата, он может за N месяцев выучить Scala, Go, Python или любой другой язык и продолжать работать с Linux-стеком, поскольку bash, набор баз данных и общие паттерны работы приложений в сервис-ориентированной инфраструктуре остается прежним. У программиста на C# нет такой альтернативы, при переходе на другой язык ему придется полностью менять стек Windows-C#-TransactSQL. Если я прав, то переход на .Net Core и Linux должен это исправить в долгосрочной перспективе.
Есть тесная связь между квалификацией программиста и тем, на каких языках он любит работать. Как правило, если программист хорошо владеет только одним языком, это хреновый программист. Если же программист владеет несколькими языками, то среди этих языков C# окажется, скорее всего, не лучшим. Нет, он неплох, но при выборе между C# и F#, или C# или Clojure, или C# или Rust и т.д. C# займет второе место. Соответственно, причин выбрать именно C# обычно бывают две: программист не владеет лучшим языком или менеджер не позволяет выбирать язык. В обеих ситуациях речь идет не о программисте высшей квалификации.

Веские причины хорошему программисту писать на C# или любом другом не лучшем языке: пишется плагин к чужой системе, подчиненные программиста в масштабном проекте не знают других языков. Оба случая в статистике незаметны.
Да все просто, потому что C# и Java по большому это языки созданные для одних и тех же задач, энтерпрайз, десктоп, ну а позже еще и мобилки добавились остальное уже по мелочи. Да C#лучше Java как язык (так как он создан намного позже и взял все лучшее из Java). Но по причине того что изначально шел только под Винду и опять же то что позже появился, возможно еще цена экосистемы, сыграло свою роль, не в пользу C#. А так как в основном большие деньги как раз на энтерпрайзе (а там правит балом Java) вот и разница в зп. И ксожалению core не исправит уже ситуацию, уже поздно…
К сожалению скорее всего правы именно вы. Core нужен был лет 10 назад. У C# будут отъедать нишу новые языки вроде Kotlin, TypeScript, Rust, Swift (У него сервер сайд только развиваться но в целом язык хорош, очень хорош) да даже Go и поэтому скорее всего стагнация в будущем а не рост. Не говоря уже о функциональных Clojure, F# и другие. Хотя, может быть просто я пессимист. Время покажет.
Тут проблема не тольок в том, что .net был нужен 10 лет тому назад, но еще в том, как это все делается.

Выпустив бы Майкрософт .Net Core, который работает точно также, как .Net Framework с теме же инструментами, все бы на него радостно пересели и работали.

Майкрософт же — сделали релиз .net Core сырым, без кучи АПИ классического .net фреймворка. Т.е. людям либо юзать классику, либо изобретать велосипед. Разбили платформу фактически на две (под винду, под линукс). Для каждой версии придумали свои версии инструментов. Плюс еще релизят версии, которые ломают совместимость с более ранними версиями. Т.е. Бардак полнейший.

В итоге, те кто уже работает на .net Framework могут как-то в этом разбираться и что-то переписывать частично. А люди с других технологий смотрят на это, и просто отказываются от греха подальше.

Т.е. нужна стабильность и адекватность развития.

P.s. Естественно Майки не могли поступать так, как я указал, ибо, тогда люди бы перестали покупать их сервера.
НЛО прилетело и опубликовало эту надпись здесь
Да оно как как-то случайно получилось. Таки да. Тут вообще то и раньше был Фреймворк под Моно чтобы писать десктоп под Linux, MacOS и Windows www.mono-project.com/docs/gui/winforms т. е. давно можно было на шарпе кросплатформенное пилить. Просто мало кто об это знает. Тут есть одно НО — WinForms это не WPF. Особенно красиво не получиться. Если вам просто нужно приложение и просто чтобы оно работала то вообще ОК. Если нужно чтобы оно было еще и красивое то не особо то и ОК.
ИМХО на каждом рынке решают свои факторы. Например по яндексу можно судить о рынке труда СНГ, в основной своей массе это аутсорс т.е. влияние накопленной кодовой база на единицу разработчика т.е. спрос на разработчиков которые будут поддерживать существующий код.
По стэковерфло это западный рынок, здесь как мне кажется удельный вес легаси снижается и начинают все больше влиять продуктовые и стартаповские темы и как мы видим ситуация по стэковерфло я бы сказал почти ровная. Так что не все так плохо.

По-моему, такие рейтинги — это средняя температура по больнице и могут влиять очень много факторов.


Мне кажется, что человек решающий задачу для одного и того же сектора, с равной квалификацией получит одну и ту же ЗП с поправкой на то, на сколько просто найти такого человека (если людей не хватает, они дороже).


Отсюда разница больше будет вылазить от сферы применения, чем от языка.

НЛО прилетело и опубликовало эту надпись здесь
Средняя зарплата на основании 36 анкет, за 1-ое пол. 2019 года

Это несерьезно!
Шито поделать. Такие данные нашел там. Других у меня нет. Ну вон есть от Яндекса и они как-то очень сильно похожи на эти. Хотя там с HH данные так что выборка будет по больше.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории