Слабо разбираюсь в этом вопросе, из-за этого могу неверно трактовать некоторые понятия, прошу прощения.
Имеет ли весомым аргументом разрабатывать приложения (в т.ч. игры на том же самом unity) именно на C#, а не на Java.
Есть ли какие-нибудь весомые преимущества и недостатки перед Java.
если вы отлично знаете C# + отлично знаете Xamarin = это очень весомый аргумент
но если планируете начать... - в java вы будете собирать грабли java и android... а в xamarin ++ грабли xamarin
ps
Unity сам по себе, и сам в себе C#
вы уж определитесь сами... есть люди пишущие на многих языках.. можно оба языка осваивать, можно и один. но в любом случае, разработка для андроида - это кросс-разработка. легко не будет. и как всегда, что бы начать - надо начать
Хуже всего в Java под андроид то что нет возможности использовать Java 8, а только с этой версии на ней стало более-менее комфортно писать. Ну точнее можно юзать Java 8 начиная с какого-то API, кажется Android Nougat, но это значит - терять большую часть аудитории, ведь многие сидят еще на Android 4-6.
В плане котлина кстати не в курсе, на нем можно под андроид ниже нуги писать? Или там не будет большей части функциональности введенной в Java 8? Ведь он зависит от нее. Ну там стримы, optional и т.д.
Frip, C# в принципе более вменяемый язык, это его конкретный "+"
но в случае с андроидом все туманнее:
- см камент выше про
Java 8
я не знал подробностей, но в целом это скорее "-" для Java
- и Xamarin, и Unity - имеют собственные базовые библиотеки, и, в действительности, не предоставляют все богатство .Net Framework, и не предоставляют самые последние фишки языка C#.. то что они основаны на C#, вселяет ни чем не обоснованную иллюзию, что все будет так же легко и весело, как в первых уроках по WinForms.. увы, это не так.. освоение обоих сред требует усилий и несет свои подводные камни
- кроме всего прочего, если цель именно андроид - я бы посоветовал копнуть в сторону Kotlin, язык над jvm - то есть практичеки не менее родной для андроида, чем ява. более того, где то проскакивали новости, что гугл будет/или уже, его рекомендовать как стандарт для разработки для андроид.. вряд ли вместо явы, но по меньшей мере на равне с ней .. а смысл пункта в том, что все кто пробовал Kotlin после явы, если пишут об этом, то с восторгом ;))
- ну и повторюсь - учить несколько языков тяжелее, но очень полезно. с другой стороны, C# интересен тем что уже достаточно многоцелевой, но для винды, и для UWP особенно - как раз C# роднее явы.. => то есть окончательный выбор все рано надо делать самому ;)))
Если вы конкретно хотите разрабатывать приложения а не игры, то все же рекомендую сделать выбор в сторону java или kotlin по следующим причинам:
1) java является родным языком для андроид
2) примеры, уроки все на java
3) в целом сообщество использует java
4) студия заточена под java
Если вы хотите разрабатывать игры на юнити то у вас нет выбора между java и c# так как юнити не поддерживает java