views:

84

answers:

5

I am a computer Engineering student and i want to choose my path as soon as possible. Will I be able to develop anything using C#?

+3  A: 

Windows Phone 7's entire development platform is built on .NET and C#, so yes you can but that would be essentially your target mobile OS. Java will get you Android, and iPhone more or less requires Objective-C. Of course, you can get around each of these to some extent but by and large if you choose to learn C# you'll be targeting Windows Phone 7.

Daniel DiPaolo
You forgot to add BlackBerry and nokia (symbian) beside Android for Java.
Shawn Mclean
MonoTouch provides a C# option for iPhone and iPad, not free but it is an option. http://monotouch.net/
Chris Taylor
Ditto MonoDroid for Android
Marc Gravell
A: 

If you want to become directly valuable to a company as a mobile developer, learn Java or Objective-C. C# is fine, but Android and iOS have a much bigger market share than Windows Mobile 7.

Becoming an expert in any of those languages will be a good long-term career move.

WardB
"Android and iOS have a much bigger market share than Windows Mobile 7" - yes, but that's not saying much when Windows Phone 7 has only been launched for 2 days. While I don't expect WP7 to take over any day soon, it could easily be a very significant player in a year's time.
Jon Skeet
A: 

No. You can use C# only for Windows Mobile. Java only works in the form of the Android API (which is somewhat similar to J2SE) on Android, and in the form of J2ME on Blackberry, Windows Mobile, and Android.

If you want to write mobile applications, you'll need to decide what platforms to write for, and learn the languages and APIs of each one of them. There are a few high-level languages that run on most mobile platforms (like Adobe AIR), but depending on your app, that's not an appropriate option.

EboMike
Sorry, I have to point out that this is factually incorrect on c# being windows mobile only.
Marc Gravell
A: 

Different mobile platforms require different languages, and future platforms will most likely require languages that don't even exist yet.

Your best bet is to pick one language / platform to focus on now, and expect to have to learn other languages / platforms throughout your career. Indeed, the chances are that you'll do other kinds of development, in addition to mobile computing development.

(For the record, I've been in IT for 30+ years, and so far I've used over 20 programming languages ... and encountered many others. You just deal with it.)

Stephen C
+2  A: 

A lot of answers here indicate that c# is windows mobile / CE only; that is incorrect. In addition to targetting windows mobile and phone 7, c# can be uses to target iPhone via MonoTouch, and Android via MonoDroid. So that is the main contenders really.

Marc Gravell
Thanks for the soothing explanation. I want to learn c# soon. Are MonoTouch and MonoDroid difficult[i mean time consuming] to learn?
Alexander Suraphel
@Alex - no more than any other framework
Marc Gravell