Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been browsing through several websites and several topics on this website.

Now I'm just a starting programmer and I want to make a good decision.

From what I understand is that Java is used alot for server stuff, and web applets but not really for computer applications running on a client, it's also used for Android programming and several other mobiles.

I'm really interested in Android programming, I really love to program for mobile devices, in this case Android because I really think it has a lot of potential and I don't like the iPhone.

If I want to program on Android I have to learn Java (aside from Mono). but if my decision changes over the next couple of years I don't think Java is the right language to get a job that programs computer applications.

I think I get a job where I have to program server stuff, rather than computer applications.

That's why I think C# is a good choice. I can program for Windows Phone 7 (I hope that will get big). and I have the feeling C# is more widely used for computer applications. so I think C# is more versatile looking at Mobile programming and computer programming.

Or am I totally wrong thinking this?

share|improve this question

closed as off-topic by MichaelT, Bart van Ingen Schenau, Kilian Foth, GlenH7, gnat Dec 4 at 19:59

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Kilian Foth, gnat
  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – MichaelT, Bart van Ingen Schenau, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

"Not liking iPhone"? Well, that is where the App money is right now. Food is nice. –  user1249 Mar 6 '11 at 15:50
I just don't like the phone itself at all, too much controlled by Apple and I don't think I'll buy one. and besides that, I don't have a C or C++ background and I find Objective-C such a messy and unreadable language (That is just my opinion after reading through snippets) –  SterAllures Mar 7 '11 at 14:26
Maybe the dev did not know how to write clean code. –  c_maker Mar 8 '11 at 12:37

7 Answers 7

up vote 11 down vote accepted

Or am I totally wrong thinking this?

Yes, you're totally wrong thinking this. Java is used in far more places than you've been led to believe. For example, Eclipse, the IDE used for developing Android apps, is written in Java. Apache Derby, a relational database, is written in Java. Jython, a version of Python, is written in Java.

I suggest that you take the time to install and configure the needed software to develop for both Android & Windows Phone 7. Then try making a sample application. By that time, you'll have developed a preference, and you should focus your efforts in that direction.

share|improve this answer
Thanks for the examples of programs created by Java, I think I'll go for Java now and as already said in some comments along the way I'll learn different languages and try different languages will only make me a better programmer, my main focus will now be Java :) –  SterAllures Mar 6 '11 at 20:51

You learn Java now, and then in a couple of years you learn C#. Learning these two languages is not mutually exclusive, in fact there are a lot of similarities between the two.

It will only make you a better developer to know both and to be able to compare the two.

share|improve this answer
Transitioning from Java to C# and back is pretty easy. I did it nine years ago in about a week, and shifted back to Java for Android programming a month ago with no problem. Honestly, once you know enough about programming in general transitioning between languages isn't all that difficult. And each time you do, you'll become a better programmer in both languages. –  E.Z. Hart Mar 6 '11 at 18:47

Languages are just tools. Some stay, some evolve, some die. The important think is to learn to think right. Think like good developers do (not coders, but the ones that build).

In my opinion in the current market you need to have capabilities to build apps (for example iPhone/Android) and server side functionality (for example Ruby on Rails). Both areas are not hard to learn and will keep you occupied for a couple of years.

share|improve this answer
+1 For "languages are just tools" –  Anto Mar 6 '11 at 17:48

I would approach this question totally differently. Which platform has the widest adoption? Obviously, iPhone, but since you have a prejudice against that platform, the next one would be Android, which is written in Java. Presumably you want to get a job once you have these new skills under your belt, so there is far more opportunity out there for Android developers than for Windows Phone 7 developers. Speaking of which, if you're banking on Windows Phone 7 getting big, I'm relatively certain this is a losing bet.

share|improve this answer

With Java, you can write your own websites using GWT, and host them on Google's infrastructure using GAE.

Java is way broader than just web and mobile applications, you can do all sorts of things with the language, those you mentioned are just the most popular.

share|improve this answer

Learning a language is a fairly long-term commitment, but it's hardly irrevocable. If you make a career of programming, it's a near certainty that you'll learn and use several different languages during that time.

As such, I'd advise against getting too wrapped up in the choice you make right now. I've learned several languages that I've never used to write any code that I released, but I think learning them was entirely worthwhile nonetheless. If you end up learning a language, using it for a few years, and then move on to something else, it's hardly a loss. Most of what you learn from using one language will apply elsewhere, to at least some degree.

share|improve this answer

Usually you'd let your requirements drive your choice in development environment. If you had a software idea already in mind, and some analysis told you that android users was the growing segment, then that would tell you what you needed to learn.

Sounds like you don't really have a specific idea in mind so you're just going to have to make a choice. Once choice doesn't exclude the other and the general things you learn in one environment will be very transferable to another. I am super interested in Windows Phone 7, but one thing I can say - you can learn to develop for Android, aqcuire the software you need, do all the development, deploy to a real phone all for no cost other than time. If you want to switch midway through to another environment, you've lost no investment other than time and the concepts you've already learned are completely transferable.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.