学好哪一种都一样。
目前。NET也能跨平台和智能设备应用了
不过我感觉C#入门容易些,特别是对有C、C++语言基础的人
JAVA相对来说不容易掌握。个人意见。
微软现在的.net平台只能运行在windows32平台,似乎没有实现跨平台。微软目前也多专注于windows平台上的.net平台开发,不过微软也提供了FREEBSD上面的共享源代码CLI实现。c#是微软用来对抗java的一种面向对象的语言。c#(C sharp)已经被提交为ECMA-334标准,CLI(ECMA--335),看过ANDERS HEJLSBERG的访谈就能知道,在设计CLR之初,.net小组确实是考虑过让.net跨平台的,否则完全没有必要提供一个WINDOWS之上的中间平台(虚拟机)。微软对.net的定位是“不是COM,但是却是更好的COM”,意思是.net并不依赖COM技术。
net跟MS其它的产品不同,自从它被提交成为标准后,.net就不完全是属于MS的世界了,而且LINUX的世界和JAVA的世界也不同,SUN对JAVA的影响程度甚至比MS对.net的影响程度还要大,毕竟SUN还牢牢的把握着JAVA的标准. 现在的移植Microsoft .NET Framework到Linux平台的一个Open Source项目mono项目(http://www.go-mono.org/)。在沉默了很久以后,MONO终于又释出了一个新版本0.29,这个版本有很多重大的改进,包括我最希望看到的ASP.NET,希望明年第一季度推出MONO 1.0的时候,能让.NET实现真正意义上的跨平台。MONO也发展了自己独特之处,也有自己的NAMESPACE,按照他们的说法,MONO可能会成为区别于.net和J2EE平台之外第三种选择,他的优势也很明显,在一定程度上可以和.net保持兼容性(至少可以完全兼容.net 1.0),但是又不排斥来自第三方的技术(比如CORBA),将来一定会有自己的生存空间。
微软推出CLR的用意就是实现跨平台,虽然以前推出过,但不太成功,而且目前也没有风声,但并不代表MS目前没有在幕后加紧研制,展望未来,以MS的实力,实现成熟的跨平台和可移植性不是梦想。