Написать пост

Java или C# — какой языку учить бэкендеру

Обсуждаем плюсы и минусы обоих языков и выясняем, для каких задач лучше подходят Java и C#.

Недавно наткнулся на Reddit на очередную дискуссию на тему Java и C# — пользователь спрашивал, что учить ему как начинающему бэкендеру. Разумеется, в треде собралось много комментариев от любителей этих языков. Рассказываю, к чему в итоге пришло обсуждение. Возможно, это поможет вам, если вы тоже выбираете, какой язык учить.

Почему Java и C# сравнивают?

Java и C# — два объектно-ориентированных языка, на которые очень влияют Си и С++. Так что у них очень похожие подходы к проектированию и структурированию кода, схожий синтаксис. Более узкие примеры — схожие подходы к кодогенерации, управлению памятью (оба используют сборщик мусора). К тому же оба языка используются для разработки десктопных и мобильных приложений, веб-приложений.

Что советуют выбрать?

GeneratedUsername5

Курс по JavaScript-разработке от Kata Academy
  • бесплатно
  • набор еще идет
  • онлайн
tproger.ru

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

Курс по Java-разработке от Kata Academy
  • бесплатно
  • набор еще идет
  • онлайн
tproger.ru

Я считаю, 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) <…>.

tproger.ru

Еще одна фишка C# — IAsyncEnumerable, который позволяет совершать асинхронные вызовы во время получения результатов. <…> Не нужно писать код типа «проверь, могли ли я сделать А. Если могу, выполни А, если не могу — поспи немного».

Хороший пример можно увидеть в моей библиотеке Iot.Device.Subscriptions.

А как вы используете Java? Какие версии и фреймворки? Вклад каждого очень важен, чтобы развитие Java отвечало истинным потребностям разработчиков.

Поделитесь, можно отвечать анонимно. А в благодарность вам придет сертификат и фотоотчет о посадке персональной сосны в бору Java.

Следите за новыми постами
Следите за новыми постами по любимым темам
3К открытий10К показов