Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialLuke Glazebrook
13,564 PointsLimitations of MonoDevelop
Hey guys!
I have recently started with C# using MonoDevelop and I am enjoying it so far. However, I have some concerns about C# and MonoDevelop on OS X.
Would it be worth my time to learn C# on a Mac or should I go for Java which is, syntactically, similar enough. I already know a bit of Java and C# so I would be starting at about the same level in both languages.
I have looked this up online but I can't really find a definitive answer and when I do find a valuable answer they all seem to be fairly vague so it would be great if I could get you guys' opinions.
Another thing that is making me unsure is the cross-platforming and open sourcing of .NET. At this point I am presuming it will become a lot more popular to learn C# and Visual Basic on OS X but I don't know when that will be as I have not heard anything about it in a while.
What do you guys think I should do? I was originally stuck between C#, C++ and Java and I thought I had come to a decision with C# but after looking up some information online about C# on MonoDevelop for Mac I am not so sure anymore.
Any advice would be greatly appreciated, thank you guys!
-Luke
1 Answer
Oron Ben Zvi
14,041 PointsFirst of all, C#, Java and Visual Basic are all means to an end, a tool, not the target nor the mission.
It all depends on what you want to create, a mobile game? desktop software? what platform interests you?
Why not learning a bit of every language and see what's inspiring you the most. But always think about what you want to create first, and then how you want to create it.
Having said that, MonoDevelop or the fact that .NET is going open source is just good news for people who already know C#/Visual Basic.
If I develop out of Microsoft operating system (Windows, XBOX, Windows Phone) I won't rush to use C#/Visual Basic, even if I have tools like MonoDevelop/Xamarin, and not because of performance, but because of the community and support.
You'll always have much more community knowledge and production proven ready code, libraries and framework to use if you choose more popular choices for your chosen platform, so if I develop for cross platform i'll go for Java.
Luke Glazebrook
13,564 PointsLuke Glazebrook
13,564 PointsHi Oron!
Thank you ever so much for your reply!
I am interested in creating games, mobile apps and desktop software! I don't feel I am at a position yet to limit myself to one strand of development so I would like to experiment with it all in much greater detail.
So your advice, for me, would be to pursue Java as oppose to C# or C++?
Oron Ben Zvi
14,041 PointsOron Ben Zvi
14,041 PointsJava will definitely give you the most coverage, you can create android apps and games with Java, and cross platform desktop apps with Java
though you will find yourself struggling with the platform (mobile apps, games, desktop) most of the time and not with the language (:
Luke Glazebrook
13,564 PointsLuke Glazebrook
13,564 PointsI have created some Android apps with Java before but I never really got onto making games with it.
One of the reasons I went over to C# is because currently you can develop cross-platform mobile apps in it using Xamarin and I think Microsoft announced that they are also going to allow people to write cross-platform mobile apps using C#. I also, initially, started writing in C# because it works nicely with Unity and that seems to be an awesome tool to make games.
Do you think these are good enough reasons to use C# or would you still recommend Java?
Thank you for all the help so far and I hope you are having a fantastic day!
-Luke
Oron Ben Zvi
14,041 PointsOron Ben Zvi
14,041 PointsDon't get me wrong I use C# almost everyday in my workplace, I'm very fond of C# and I think it is a very robust and solid language which leaves small room for mistakes.
Unity does supports C# and since C# is object oriented and most of the time it's much easier to implement a game design with object oriented language than Unity alternative, javascript.
So if you want to dive into Unity and don't know javascript already, C# is preferred here in my opinion.
Regarding Xamarin, it does have a solid foundation of community already, and does claim to support every new feature of the mobile os's as soon as they come out. Although, you will never have the same native support, feel and community than developing with their native languages (Objective C/Swift for iOS and Java for Android). Moreover, Xamarin costs money per year, and a lot of it, so it may be a factor on your final decision.
My opinion regarding Xamarin, is that if you already have lot of business logic of code in C# and want to reuse it in your mobile apps, or you're really attached to C# and don't want to learn other languages, go for Xamarin. Otherwise, I'll try the native alternatives for mobile development.
Luke Glazebrook
13,564 PointsLuke Glazebrook
13,564 PointsI am also quite fond of C# so far, I find it to be quite a nice language to write in.
It does indeed and I seen that you could write Unity scripts in JS, which I already know, but people seem to prefer C# for Unity so I thought 'why not!' and decided to learn it.
That is a very good point actually. I feel like you are sort of stuck in the middle of two communities when you develop with Xamarin. I am not too bothered about the cost as I have a Xamarin package already!
I am not really attached to any particular language and I think that is the problem. C++, C#, Java and JavaScript are all options for me but I just can't decide which one to stick out and go for!
Oron Ben Zvi
14,041 PointsOron Ben Zvi
14,041 PointsI never said you should attach to one particular language, I also develop android with java ios with objective c, web with js, server side with c# and and js (nodejs). There's no need to attach to one (:
I'd appreciate marking this thread as answered if you feel this way.
Luke Glazebrook
13,564 PointsLuke Glazebrook
13,564 PointsI know you didn't explicitly say that but, I feel like, you implied it. It is quite hard to juggle languages when you are just learning them so I thought it would be better to stick to one.
So for everything I am wanting to do: Software, Apps, Games and more you would recommend Java?
Oron Ben Zvi
14,041 PointsOron Ben Zvi
14,041 PointsIf those apps and games are for android than yes (:
Luke Glazebrook
13,564 PointsLuke Glazebrook
13,564 PointsAs of right now I don't know whether they are or not and that is my main issue. I am juggling wanting to do lots of different things and develop for lots of different platforms.