Java или C# — какой языку учить бэкендеру
Обсуждаем плюсы и минусы обоих языков и выясняем, для каких задач лучше подходят Java и C#.
6К открытий21К показов
Недавно наткнулся на Reddit на очередную дискуссию на тему Java и C# — пользователь спрашивал, что учить ему как начинающему бэкендеру. Разумеется, в треде собралось много комментариев от любителей этих языков. Рассказываю, к чему в итоге пришло обсуждение. Возможно, это поможет вам, если вы тоже выбираете, какой язык учить.
Почему Java и C# сравнивают?
Java и C# — два объектно-ориентированных языка, на которые очень влияют Си и С++. Так что у них очень похожие подходы к проектированию и структурированию кода, схожий синтаксис. Более узкие примеры — схожие подходы к кодогенерации, управлению памятью (оба используют сборщик мусора). К тому же оба языка используются для разработки десктопных и мобильных приложений, веб-приложений.
Что советуют выбрать?
GeneratedUsername5
Java, без сомнения. С ним больше возможностей, и у джавистов выше зарплаты. Просто так работает рынок труда: работодатель не поднимет вашу зарплату, если понимает, что вам некуда идти, поэтому чем меньше на рынке вариантов, тем ниже вероятность того, что зарплата будет хорошей.
Rjs617
Java — это огромная экосистема, у джавистов больше возможностей для трудоустройства. Если хотите разрабатывать что-то для экосистемы Microsoft (Windows, SQL Server, IIS, Azure), выберите C#. Во всех остальных случаях — Java.
Кроме того, сообщество Java больше, и гораздо легче найти ответы на вопросы о самом языке и фреймворках.
Для джавистов также больше удобных и бесплатных инструментов.
rbuen4455
Java по-прежнему самый популярный язык для создания корпоративных и крупномасштабных бэкендов. У него больше инструментов для бэкендера. А C# по сей день очень завязан на Windows.
Тем не менее у C# впереди светлое будущее.
AltDisk288
Это очень похожие языки со зрелыми экосистемами, оба востребованы на рынке.
Я слышал, как люди говорят, что Java потеряет долю рынка в течение десяти лет, но он все еще до смешного популярен и. В ближайшие 20 лет это вряд ли изменится, так что не принимайте решения на основе подобных прогнозов. Не ведитесь на «эта технология, которая была в топе более 20 лет, выходит из моды, теперь популярна другая!». Это неправда в 99,9% случаев.
Тем не менее C#, [хотя и моложе и современнее], безусловно, останется очень востребован. Я бы предпочел его.
DeeElsieGame
Я считаю, C# более последовательный и продуманный. И .NET хорошая база для бэкенда.
Также язык куда больше нравится разработчикам, чем Java, согласно опросу разработчиков Stack Overflow.
xcwxinn
Я бы порекомендовал C# для начинающих программистов. Он хорошо, его нетрудно выучить и он похож на Java, так что если захотите перейти на второй язык, проблем не будет.
Zealousideal_Ice3743
C# моложе, поэтому некоторые идеи в нем лучше и новее. Мне особенно нравится, как в C# работают рефлексия и инкапсуляция (проще, чем в Java).
wayne0004
Если вы новичок в программировании, я рекомендую начать с других языков, может быть, Python или Javascript.
C# и Java являются объектно-ориентированными и классными языками, но если вы не знакомы с основами программирования, они могут показаться слишком сложными.
lionhart280
Я слышал кое-что от джавистов, которые перешли на C#, что вывело в мозг глазах C# в топ:
В C# async
и await
существенно чище и проще. И это важно, потому что большая часть коммерческих проектов завязана на асинхронности (все, что связано с вызовами веб-API и базами данных, например) <…>.
На .NET у меня нет проблем с параллельным кодом. Я не копал глубоко в Java, но когда смотрел в последний раз, увидел много странностей, сторонних библиотек (в C# все решается базовыми Task/await/async) <…>.
Еще одна фишка C# — IAsyncEnumerable, который позволяет совершать асинхронные вызовы во время получения результатов. <…> Не нужно писать код типа «проверь, могли ли я сделать А. Если могу, выполни А, если не могу — поспи немного».
Хороший пример можно увидеть в моей библиотеке Iot.Device.Subscriptions.
А как вы используете Java? Какие версии и фреймворки? Вклад каждого очень важен, чтобы развитие Java отвечало истинным потребностям разработчиков.
Поделитесь, можно отвечать анонимно. А в благодарность вам придет сертификат и фотоотчет о посадке персональной сосны в бору Java.
6К открытий21К показов