Прийшов час осідлати справжнього Буцефала🏇🏻Приборкай норовливого коня разом з Newxel🏇🏻Умови на сайті
×Закрыть

Куда лучше свичнуться: .NET Core (C#) или Java?

Здравствуйте, я разработчик на Python уже 4 года.Недавно поставил себе вопрос куда двигаться дальше и решил что хочу двигаться в сторону Technical Lead / Solution Architect / CTO. Бегло просмотрев вакансии я увидел что на топ позиции типа Solution Architect или CTO просят опыт в N-лет в построении архитектуры приложений, управления командами и опыта в C# или Java. Вот для себя решаю куда и как свичнуться со своей стороны на перспективу роста. Что подскажет community? Как двигаться к желаемой цели?

LinkedIn

Лучшие комментарии пропустить

Открою тебе секретик, что позиции

Technical Lead / Solution Architect / CTO

в общем случае не имеют ничего общего с джавой или дотнетом.

Как по мне, так в питоне сейчас самый движ. Если бы сейчас начинал с нуля, то выбрал бы именно его.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Whitespace покруче будет: upload.wikimedia.org/...​3c/Whitespace_in_vim2.png :-)
Хотя брейнфак тоже рулит))

Если брать синтаксис, то разница между ними небольшая. Но Java продвигает сообщество, а .NET — одна компания, которая может взять и прекратить ее поддержку. Кроме того, если сравнивать Java и .NET как платформы, то за 20 лет в мире Java придуманно бесчисленное количество фреймворков и библиотек (и почти все они open-source и бесплатны), в которых можно расти и развиваться. Поэтому я бы рекомендовал Java

Но Java продвигает сообщество

С каких это пор Oracle стал сообществом?

бесчисленное количество фреймворков и библиотек (и почти все они open-source и бесплатны), в которых можно расти и развиваться

Зоопарк, в котором легко затеряться. Многие из этих фреймворков сделаны на коленке и используются в 3,5 фирм. Иначе не было бы вопросов на тему, что сейчас из жавы больше всего востребовано на рынке.

Уважаемый, учите матчасть. JDK может быть не только от Oracle, более того, многие сейчас используют именно OpenJDK, она бесплатна и распространяется без каких-либо ограничений

.NET, сорсы гуглятся за 5 секунд, находятся на всем известном и понятном репозитории, последний коммит 1 час назад, контрибютить можно начать хоть сейчас:
github.com/dotnet

OpenJDK, гуглится какой-то сайт дизайном из 90х, на сайте есть ссылочка на умирающий Mercurial, открываем jdk10, последний коммит в мастер в 2017, как начать контрибутить — непонятно.
hg.openjdk.java.net/jdk10

Может я не туда смотрю так как я далек от java мира, поэтому поправьте пожалуйста.

А по поводу фреймворков — назовите мне хоть один, который сделан на коленке? Те, что используются в настоящий день (Spring, Hibernate, Hadoop и другие) разрабатываются солидными организациями 10 лет и более. Весь их код есть в открытом доступе, он хорошо задокументирован и оттестирован. Любой грамотный разработчик может присоединиться к этим проектам и приносить пользу. Это и называется open-source.

У вас какая-то неправильная информация. .NET разрабатывается под MIT и ему как раз не грозят никакие проблемы с лицензированием. В отличии от Java, где Oracle уже за сам факт установки платформы планирует брать деньги. Ну и .NET давно обошел Java по простоте и удобству разработки. Писать же что-то новое на Java — это со старта подписаться на нехилый такой технический долг, который с каждым годом будет стремительно расти.

Какой смысл использовать Oracle JDK, если есть абсолютно бесплатная OpenJDK c тем же наполнением?

Чисто показово, сайт openjdk.java.net виглядає застаріло, мобільної розмітки немає, перший же пункт «What is this ?» датований 2010 роком. Я розумію, це придірки, все таке, але... як алегорія де та джава.

То есть в Java все так плохо, что нужно использовать сторонние решения? Насколько я помню, раньше OpenJDK довольно сильно уступал про производительности Oracle JDK. Впрочем может сейчас как-то иначе. С Java пересекаюсь довольно редко и только по касательной.

В чем «плохость»? У кого есть финансы, использует Oracle JDK, платит за ее использование и получает от Oracle поддержку. А кто хочет, использует аналогичный продукт, только open-source — OpenJDK. Каждый сам выбирает, что будет использовать для проекта.

Так вопрос в том, зачем вообще завязываться на эту технологию, если есть более современные и удобные альтернативы, где не нужно мучаться выбором между «двумя стульями».

Насколько я помню, раньше OpenJDK довольно сильно уступал про производительности Oracle JDK. Впрочем может сейчас как-то иначе.

Судя по тому, что OpenJDK сейчас пилит тот же Oracle, разницы в производительности между обычной JDK и OpenJDK по-идее никакой не должно быть)
Насколько я понимаю, два основных отличия OracleJDK и OpenJDK:
1) платность OracleJDK (подписка, поддержка + возможно какие дополнительные плюшки, которые нужны только для «кровавого» энтерпрайза);
2) необходимость собирать OpenJDK из исходников (благо есть конторы, которые делают готовые сборки и предоставляют свою поддержку для них — Adopt, Azul Zulu, Amazon Corretto, Red Hat и нек. др.). Хотя и сам оракл вроде тоже делает билды OpenJDK (без предоставления поддержки), но это не точно.

Спільнота кого просуває джаву ? Корпоративних монстрів, типу IBMів ? Оракловая джава, з ліцензіями, в яких вже написано, що безкоштовно тільки останню версію, чи щось таке, і яка залишилась кривавим ентерпрайзом, і .net з MIT ліцензією, сорцами на гітхабі, який всіма силами намагається бути стильним, модним і молодійним.

Ну а какого ещё ответа можно было ожидать от юзера с припиской «Java evangelist»?

.NET Core (C#) или Java?

C# и Java — один хрен.

.net, очевидно, скоро жаваскриптеров потесним.
У тех есть и нода и реакт и реакт-нейтив — можно быть суперфулстеками
А там будет asp.netcore + blazor + может blazor на мобилы загонят и все это с крутым статическим языком C#, у js нет шансов))

чтото не верю в блазор
сделают пхп -> webasm, блазор станет ненужен

уже начали загонять на мобилы.
github.com/...​arin/MobileBlazorBindings

.NET Core (C#)

Да, ибо туда собираются подвозить тайпклассы

А вот и свидетели снежного-кома интерфейсов и тщедушных систем типов.

Залишайся з Python.

З твоїми бажаннями, немає ніякої різниці між Python, C# і Java. Якби хотілось якогось мовного челенджу то Erlang, Haskell, Rust. A для TechLead/Architect/CTO нікуди світчитись не треба.

Але якщо таки горить, то спробуй Apache Spark з пайтоном. Це найцікавіше, напевно, місце де JVM якось перетинається з Python. Мені вдалось майже два роки погратись з Python саме коли я переписував Spark ETL з Python на Scala.

Якби хотілось якогось мовного челенджу то Erlang, Haskell, Rust.

Можно еще лисп) Например — github.com/hylang/hy , docs.hylang.org/en/stable — лисп написанный на питоне, питонщику как раз может зайти, например, попробовать написать на этом лиспе приложуху под джанго или фласк — чем не челенж? :-).
Ну или Clojure/ClojureScript.

З твоїми бажаннями, немає ніякої різниці між Python, C# і Java

Таки э, бо C# і Java то таки ентерпрайз стеки і там на вищезгаданих персонажів суттєво вищий попит.

Technical Lead / Solution Architect / CTO

На условной Scala тоже много ентерпрайза, но не у нас)

1С уже предлагали?

Скільки зрозумів то ціль переходити далі в компанії де вже вибудувана якась структура, інакше імхо, в цілому згідний з людьми які кажуть, що можна личку отримати і на пітоні і на рубі і на ноді. Я сам пишу на PHP / Go і можливо перейшов би також на щось типу Java чи С#. За С# напевно те, що вони зараз дуже ломанулися вперед і куча хороших плюх добавляють. Хз як в них по вакансіям і які проекти є. Java — el classico в сфері програмування. Вагон сертифікацій якими можна підняти своє ЧСВ, вагон сервісів та проектів на ньому (той же AWS на Java), і як на мене простіше знайти щось (не шарю, просто так вважаю). По ЗП вони в паритеті + -. Тож вибір складний, але думаю ваша думка є правильною, якщо бажаєте рухатися ентерпрайз чи проектами де не просто потрібне АПІ аби на чому.

Все еще находятся люди, которые хотят лично проверить аксиому Эскобара.

Java однозначно, потому что куча опенсорса на ней или на JVM based, плюс количество продуктов на порядок больше в экосистеме

Это все хорошо, но что есть такого в джаве чего нет в .NET? По-моему сейчас практически все есть и для джавы и для .NET, практически все можно делать как на джаве так и на .NET. Вопрос лишь во вкусовщине.

Лично я отдаю предпочтение .NET, в частности .NET Core где убрали все лишнее, всякое легаси говно, ввели современные тенденции и подходы, нет того ощущения что ты разрабатываешь тяжеловесное энтерпрайзное говно. Да и развивается он намного быстрее джавы, C# намного приятнее как язык, прекрасный тулинг как от Майкрософта, так и от Джетбрейнс. Да и вообще доверия Майкрософту намного больше чем Ораклу, особенно при новом руководстве Майкрософта.

Это все хорошо, но что есть такого в джаве чего нет в .NET

lombok, build.gradle, ще якась херня стопудово є

Разве лобок и грабли — это не костыли, которые закрывают горы бойлерплейта и нехватку встроенной системы сборки?
Но вообще аналог Lombok есть на C# - Fody
gradle/maven в 90% случаев не нужны, тк msbuild + nuget отлично работают, но поверх них можно навернуть Nuke, Cake, Fake, PSake и прочие.

что есть такого в джаве чего нет в .NET?

Apache Camel, ну и вообще ESB / enterprise integration продукты не очень представлены в .NET стеке. Да, есть MassTransit, но это, всё-таки, не совсем то. Ну и монстроидальный BizTalk, о котором я уже даже не помню, когда в последний раз слышал.

У меня наоборот мысли свичнуться в пайтон, МЛ и дата сайенс. Джава = нудный энтерпрайз ☹️

свичнуться в пайтон, МЛ и дата сайенс

мл и дс это не про пайтон как бы

не всем дано создавать рокет сайнс и шедевры из битов, ктото должен выжигать горшки и подметать улицы

Если хотите самостоятельности, развивайте Data Science. Python для этого сейчас хорошо подходит. Зарплаты могут быть такие же, как и у архитектора. Ежедневно генерируются огромные количества данных. Анализировать их нужно будет все больше и больше. Будете сидеть в углу в ореоле таинственности, а РО будут скромно интересоваться, не обучилась ли достаточно сеть, чтобы ее можно было показать заказчикам.
Но если нет, то в Java мире будет имхо спокойнее. В С# каждый — синьер, которому не нужен ни архитект, ни ПМ.

Кстати, любопытно, мовносрачи (в частности C# vs. Java) уже несколько лет не взлетают. Аудитория взрослеет?

Самі ці платформи подорослішали. 10 років назад ще були аргументи типу «а ось цього там нема», а зараз все вже кругом є.

Аудитория взрослеет?

Нет.
Просто становится очевидно, что M$-Java это эволюционный тупик :-З

Просто в последних версиях Джавы и Шарпа отличия надо искать с лупой. Раньше джависты кричали о кросплатформенности, а шарписты о функциональщине, а сейчас везде всё есть.

Я думаю основной плюс джавы — больше возможностей для тракторизации.

Такое, Java в этом плане сильно отстает, хотя прогресс, безусловно, есть.

Ну если сильно номинально то да. Но еще пара LTS-версий и все. А что такое для джависта подождать 6 годков? Пфффф, пыль!

Потому что другие темы для выпуска пара есть. Все неадекваты там тусят.

Хрен редьки не слаще. Профессионалу все равно на чем программировать . Если б начинал с нуля я бы выбирал какая бизнес-область интереснее с точки зрения задач.

Кстати, если решишь свичится в .NET Core, то стоит поторопиться, скоро он превратится в тыкву (.NET 5).

Це і буде готовий .net core. Для всіх і даром.

Очень интересная тыква:
> .NET 5 = .NET Core vNext
По факту это «обычный» .NET Framework заканчивает свой жизненный путь и замещается .NET Core

По факту это «обычный» .NET Framework 4.x заканчивает свой жизненный путь и замещается .NET Core5

Поправил.

Выше все верно написали, .net 5 это и будет кор по факту ну может с какими-то фишками моно.
„.NET 5 builds on this work, taking .NET Core and the best of Mono to create a single platform that you can use for all your modern .NET code.”

Да, понял, я, что игру слов распознали не только лишь все. Там просто Core из названия убирают, потому что считают .NET 5 feature complete по отношению к .NET 4.x и двигают версию дальше.

Как двигаться к желаемой цели?

Верной дорогой, товарищ.

Не вміє в нас люд відпочивати і насолоджуватись життям — тільки й роблять, що закривають свої гештальти...;))

Как по мне, так в питоне сейчас самый движ. Если бы сейчас начинал с нуля, то выбрал бы именно его.

раньше писал на питоне (джанго), он вроде как динамический. а java и .net core компилируемые. Сейчас перешел на asp.net core. В самом начале думал что будет трудно, на питоне все делал легко. но сейчас уже привык. Теперь нет желании писать на php, python. все проекты php, python переписал на C# asp.net core, код стал чище, быстрее, понятнее. проекты на продакшене крутится на centos

Если что так Питон тоже уже в топе

Та давно уже. То последние пару лет как-то ажиотаж с ним прошел, но сейчас вот, вроде как опять взлетает.

Открою тебе секретик, что позиции

Technical Lead / Solution Architect / CTO

в общем случае не имеют ничего общего с джавой или дотнетом.

Не совсем, дело в том что большие проекты у нас таки или на джаве или на дотнете, на питоне обычно уеб-девелопмент, а те крутые вещи, что сейчас на питоне делают типа ML и прочие, то архитекторы таких проектов сидят в америке или где-то в европе, скинуть такой менеджмент и уровень решений сюда мало кто решается.

Поэтому, с точки зрения «хочу быть архитектором» и никуда не переезжать,то конечно лучше идти сразу в кровавый энтерпрайз, а это джава или дотнет.

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

А почему нужно говорить только про большие проекты и только про аутсорс? А СТО вообще бывает в аутсорсе?
Техлиды, солющн архитекты и СТО есть на проектах любого размера. Можно быть каждым из них на проекте на пхп, го, РоР, том же питоне, с++, всяких прочих нодах и так далее.

А я и не говорил что только так и не иначе. На небольших проектах часто вообще лычками не раскидываются, просто синьор и все.

Техлиды, солющн архитекты и СТО есть на проектах любого размера.

Солюшен Архитекты? На проектах любого размера? Рыли?
Техлиды да, где угодно.
СТО — ну смотря на какой масштаб метить. Мне тут предлагали роль СТО + support engineer не так давно.

Зависит от того как мы на это смотрим, компании разные бывают, да и не всегда речь про официальный тайтл, бывает это просто роль, которую в себе совмещает тот же дев.

Ну а смысл быть солюшен архитектом на проекте на одного дева? Ни тебе релевантного опыта ни тебе релевантного бабла ни тебе тайтла даже.

На проекте из одного дева ты и сто и техлид и юный подаван одновременно :)))

Ну давай возьмём размеры команды 10+ человек. Это очень далеко от больших проектов с большими командами.

Смотря каких человек, смотря что делают. Я вот был в своей жизни «Архитектом» в компании на 10 человек и проектами по 5 человек на пол-года, потом свичнулся в мидлы в «кровавом аутсорсе».

А вот в моей текущей команде из 7 человек с двумя техлидами и ведущей штук 5 проектов одновременно вроде бы и почетно было бы быть «техлидом-архитектом».

Это всегда так. Синьоры же тоже бывают разные, а ТимЛиды так ваще.

Это глупо отрицать, но стремиться та надо к лучшему. Как минимум к совместимому со «средним по рынку»

Знаю архітекта в одній з наших топ-галер, то команда з ним на чолі за півтора року встигла пописати на .NET, Java, Python, JS. Тому так, погоджуюсь з вами, що в загальному не треба знати щось одне, але так як в нас багато вакансії дотнет/джава, то це найс ту хев скоріше

Та много чего «найс ту хев», но человек не в состоянии обьять все необьятное айти.
И секрет работы в айти в том, что нужно уметь сделать выбор и на какое-то время сфокусироваться на нем.
Начнем с того, что позиции TeachLead, Solution Architect и CTO — довольно разные позиции с разными компетенциями, хотя часто в некоторых компаниях под ними понимается что-то свое. В небольших компаниях, щедрых на раздачу тайтлов СТО может ничем не отличаться от техлида. А в некоторых де-факто техлид называться солюшн архитектом. И наоборот.

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

Но смысл в том, что имея 4 года опыта работы с питоном гораздо вероятнее продвинуться на позицию Техлида на проекте с питоном,

Ну насколько оно рационально переходить с питона куда-то это отдельный вопрос.
Класический совет по построеню карьеры звучал как «развивайся т-образно».. вроде оно, нет?

Ну насколько оно рационально переходить с питона куда-то это отдельный вопрос.

Так ото ж бо и воно :)

Класический совет по построеню карьеры звучал как «развивайся т-образно».. вроде оно, нет?

Я скорее про то, что позиции разные, и для них требуются разный набор опыт и скиллов.
Устроиться на работу техлидом проекта на джаве, при том что ты ее только вчера выучил звучит довольно странно, даже если ты уже 10+ лет в айти и был техлидом на других проектах.
А вот для позиций SA, CTO вполне можно такое себе представить, правда же?

Подписаться на комментарии