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
1  
"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
add comment

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
add comment

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
4  
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
add comment

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  
+1 For "languages are just tools" –  Anto Mar 6 '11 at 17:48
add comment

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
add comment

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
add comment

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
add comment

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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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