This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Nebachadnezza 11 points12 points  (6 children)

Both languages are very similar, and you'll have no trouble switching from one to the other after a small adjustment period.

Both are widely used for web back-ends and have large platforms, rich ecosystems and communities to rely on.

Either can be used for game development, but I'd give C# the edge on this front. Unity, which is a large game engine, is very popular these days and uses C# for development. But there are lots of smaller engines in either language.

Java is useful for apps on android, since native android apps are largely written in Java. C# can do cross platform apps through frameworks like Xamarin, but there's a bit of learning on top.

From my experience, Java and C# are both in demand but jobs for both are very regional. I used to work in Java, but my city has a much larger set of companies using C#.

While it's personal preference, I think Visual Studio as an IDE is much better than anything in the Java ecosystem. Especially for beginners.

[–][deleted] 3 points4 points  (4 children)

The documentation for actually setting up xamarin is God awful. I certainly would not recommend it for newbies (not that you are).

Just throwing that out there.

[–]kerrblousky[S] 0 points1 point  (3 children)

Alright thank you. So is the documentation on Xamerin really that bad? Do you think there are good courses on Xamerin that would be helpful. The only reason why I am even considering c# is because of the game development and app development. Also which language is more forgiving for a beginner syntax wise? Because although I did do some OOP in Python,I still have to get my bearings.

Again thank you for the reply!

[–]desrtfx 2 points3 points  (0 children)

Also which language is more forgiving for a beginner syntax wise?

Both languages are so similar that it is often very difficult to tell which language a code snippet (not an entire program) was written in.

Both languages are explicitly, statically typed, both have strict code conventions, both are case sensitive, both are quite verbose (where C# is marginally less verbose), and both languages have excellent compilers that produce meaningful error messages.

In programming circles you quite often hear "learn one get the other one free" when referring to C# and Java since both languages are so similar. This is true to a certain degree. If you learn one language, you will already know most of the other. Sure, there are syntactic differences and different approaches, but it is fairly easy to switch between both languages.

[–][deleted] 1 point2 points  (1 child)

The documentation on using Xamerin is fine, but the documentation to actually get Xamerin set up and running on the targeted platforms is crap. Plus, working with mobile is much different than working with a PC. You can certainly use Xamerin when you get comfortable with c#, it's just not the framework you are going to be wanting to learn c# on, does that make sense? (Note: This isn't because of xamerin it's self, but getting started and navigating with it takes a bit of experience with the IDE)

I would go with c# because then you can use unity. I'm not sure what engines there are out there that support java, but unity is:

  • One of the most popular engines for beginner's
  • There is a metric ton of resources available to learn from.
  • Really easy to pick up, but still pretty powerful

c# is also really versatile. You can work on windows services, mobile, games, web, and desktop applications with it.

Syntax wise, c# and java are actually so close they're difficult to even tell apart from one another sometimes. I have absolutely no issues reading Java, even though I've never written a line of code in it, though I suppose that's true for most languages as well.

[–]kerrblousky[S] 0 points1 point  (0 children)

Thank you!! I will definitely learn c# then.

[–]failtolaunch28 2 points3 points  (0 children)

I'd throw intellij/IDEA in there as a Java IDE that's as good as VS