那个都可以.
不过看起来Sun这个公司该倒闭了,只有他倒闭了,Java才有发展前途(交给IBM).

解决方案 »

  1.   

    sun一时半会不会倒的,他的硬件还可以撑下去。
    我的预测是都会是主流,长期并存下去,到2010。
      

  2.   

    C#的综合执行效率据说比JAVA快339%
      

  3.   

    自C#诞生之日起,关于C#与Java之间的论战便此起彼伏,至今不辍。抛却Microsoft与Sun之间的恩怨与口角,客观地从技术上讲,C#与Java都是对传统面向对象程序设计在组件化软件时代的革新之果,可谓殊途同归。虽说两个语言有着"90%的重叠",但那另外"10%的较量"也往往能够左右一个天平的方向。本文将携90%之共,论10%之异,对两个语言做纯技术品评。文章不涉及两个语言的公司,市场等台面后的事情--虽然这往往也会影响人们对编程语言的选择。也不预备得出谁是谁的Killer,读者应该选择谁的问题。"语言选择乃艺术而非技术问题",业界早有定论,无需多言。  C#和Java都提出了对传统C++艰深,晦涩的语法语义的现代改良。在语法方面,两者都摈弃了C++中函数及其参数的const修饰,宏代换,全局变量和全局函数等许多华而不实的地方。在继承方面,两者都采用了更易于理解和建构的单根继承和多接口实现的方案。在源代码组织方面,都提出了声明与实现于一体的更好的逻辑封装。在类型系统方面,两个语言都在中间语言IL或字节代码的基础上提出了映射(Reflection)这样的概念,彻底革新了传统C++运行时类型鉴别的问题。但在大刀阔斧地对C++进行改革的同时,C#显得更为保守,它对很多原来C++中很好的性质予以了保留,如基于栈分配的轻量级的结构类型,枚举类型,引用(ref),输出(out),数组(params)修饰的参数传递方式等,这些在Java中都被很可惜地丢掉了。在基本类型和单根继承的对象之间的类型统一方面C#提出的box/unbox要比Java的包装类显得高明,效率也要好。  对C++不安全的指针及内存分配方式,C#和Java都提出了托管执行环境。效率问题是托管执行环境一直以来令人诟病的地方,Java虚拟机(JVM)的解释执行方式曾经让很多开发者"慢的不可忍受"。C#的JIT编译方式为C#在这块战场上赢得赞声一片,某些C#托管代码甚至比传统C++代码都快。虽然现在各厂商实现的Java平台也都一致地采取了JIT编译方式,但C#在这方面的比较优势非常明显--C#的目标编译语言IL从设计初始就把效率摆在了重要的地位,而Java的字节代码的设计却有些鲁莽。托管执行环境经过几年的实践,在现代软件界已经达成了共识,效率的牺牲换来的是高度安全的代码--当然前提是牺牲的效率必须足够的小,至少可以忍受。值得指出的是在这里C#同样"念念不忘老一辈C++程序员",C#允许我们在unsafe上下文中进行指针操作。数组的索引越界检查,类型安全在C#和Java中都被提到了相当的高度。在异常处理方面,不管从内置支持,还是从执行效率来讲,C#都较Java略胜一筹。   "一次编程,多处执行"是程序设计一直以来的一个诉求,尤其是在现代互联网络时代。在跨平台方面,Java的支持和实现都是为人称道的,虽然JVM的速度仍然让人备感头疼。而C#虽然在底层构造方面对移植性进行了充分的考虑,但至少目前还没有成熟的,经过检验的产品。C#在跨平台方面似乎更热衷于XML Web Services互操作,而不是跨平台编程。但C#通过其基础语言构造(CLI)对二十多种主流语言的对象级的互操作支持,又极大地提升了C#的技术地位。和COM组件廉价地互操作也为C#挣到不少分数--保持一个兼容的体系对现代软件工业非常重要,也是对广大开发人员负责任的表现。  面向组件无疑是当代软件开发的主流。C#对组件编程甚至到了"迷恋"的地步,这与6年前就出道的Java不可同日而语--当然这是时代问题。C#通过属性,索引器,委派,事件,操作符重载,特征,版本等实现了其对组件编程的第一手的支持。虽然这些在Java中都可以通过方法,接口或者适配器来间接地实现,但软件业的历史告诉我们这无论对编程效率或者逻辑设计都是一种极大的损伤--高级语言首先面对的是人,而不是机器。除去这些语言层面的组件支持机制,.NET平台也为组件的配置,运行,管理等提供了一揽子解决方案,而为组件开发量身定做的Visual Studio.NET更是令人兴奋,这都为C#的组件编程开辟了广阔的天地。在其他技术方面Java的微弱劣势尚且可以忽略不计,但在组件编程方面Java相较于C#却有着不可治愈的硬伤。尤其对于从C++和Visual Basic背景过来的开发人员,C#在这方面有着不可抵挡的魅力和诱惑。  鉴于XML Web Services在下一代企业分布式计算中的地位,我们有必要在这方面对两个语言有一个简单的交代。在XML Web Services的操作方面,.NET平台直接在IL中间语言中的内置XML支持使得C#与生俱来地成为下一代Web服务的首选,这是通过API集来支持Web服务的Java所不能比的。在C#中,XML,SOAP,UDDI,WSDL等底层协议被构建成了面向开发人员的组件,而Java中这些仍然是JAX(Java XML API)等底层协议的操作函数。当然这种局面可能仅仅是时间问题,一个强大的高效的Web Services组件模型对Java来说并不是不可逾越的鸿沟。  在语言标准化方面,微软也史无前例地做出了令人赞赏的动作。目前C#及.NET平台基础构造已递交欧洲计算机制造商协会ECMA,经过标准化后的C#将可由任何厂商在任何平台上实现其开发工具及其支持软件,这为C#的发展提供了强大的驱动力。而Java在这方面虽有动作--JCP(Java Community Process),但无疑只能是准标准化。在组件化软件时代拥有一门像C++一样的标准化语言,对软件界尤其是广大开发人员非常重要。
    当然两个语言的全面的技术品评绝非仅仅上述几点简单的罗列比较,其后端平台(C# for .NET, Java for J2EE),及其编程框架的支持,各语言相关工具的实现,现有的系统基础等等都对程序设计语言的发展产生相当的影响。从纯技术角度来讲,C#无疑较Java更具竞争力。争吵谁抄袭谁也没有意义--技术的发展本来就是一个相互借鉴的过程。纯技术较量也并不能决定这场论战的胜负--如果非要一决雌雄的话。软件界倒乐见竞争,经过市场锤炼的技术才能更好地为我们服务,让我们拭目以待!                                          摘自天极网<C#与Java述评>
      

  4.   

    以我看来
    你是初学者
    那就最好去学java吧。
    至于C#吗?
    你用VB.net去实现吧。一样的。
      

  5.   

    我同意TheAres(班门斧)说的话,至于学C#或是Java都是罗卜白菜各有所爱啦,不要太过计较C#好,还是Java好。只要学好一样,你肯定就好。
      

  6.   

    你仇恨MS,选择JAVA
    你鄙视SUN,选择C#
      

  7.   

    我还没有听过JAVA需要哪个人倒下了,另外一个人拿来用之后才能发展起来的。好笑!!
      

  8.   

    c#是很优秀的语言,java也不差。但是java还是有一定距离的
      

  9.   

    主要看.net和java平台的斗争至少10年之内,两者会并存
      

  10.   

    c#其实就是java的克隆,微软其实没有创造性,不过整天拿着别人的东西集成罢了,我想这两种语言会长期并存下去!
      

  11.   

    楼上有句话说的对:“争吵谁抄袭谁也没有意义--技术的发展本来就是一个相互借鉴的过程”。楼上说谁抄抄的各位同行,你们的软件都是自己想出来创作出来的?不是也是看这个软件这方面好学一点儿,看这个软件好,学一些,拼出来的吗。
    软件就是一个互相学习的过程,不过如果要我说,我觉得C#比JAVA好在与平台的集成方面好。JAVA则是广泛更加广泛,这个与历史有关。
    共同发展吧,有竞争才有进步。
      

  12.   

    我选择C#是因为他能使我从编程中解脱出来,是我专心用于程序的功能设计。我已开始用VC编程序的时候一个简单的问题有时就可能要我花一两天的时间去解决它,我不愿用VB和Delphi是因为我已经习惯了C语言的语系,对其他的有点排斥(VB、Delphi还是不错的,也个用过一个月),我来我用java(两个月左右),感觉java的类设计的真好,特别包的概念把类的层次分的很清楚。当它的界面部分和运行效率让我忍受不了,特别还不能生成EXE文件(据说在JBuild7)中可以。我从C#的beta2中已知我会选择C#,虽然我们这基本用VC,VC我也用了大半年,可我还觉得我是个入门级人物,我都怀疑自己的能力了。
    不过从赚钱的角度,哪一门语言学好了都可以赚大钱。赚钱的多少跟你的付出多少直接相关,与语言无关。
      

  13.   

    所以我认为.NET很快会成为中小型企业的选择,至于如银行、电信等大型公司和企业是不敢轻易选择一个还没用成熟的技术的,毕竟java和VC已经出来好多年了,特别java的稳定性已得到了充分的验证。当我相信.NET经过三四年的检验和进步会后来居上,他克服了java一些天生的缺点。做人要能看到未来。
      

  14.   

    C#,到最后应该会胜出(因为有钱,因为操作系统垄断),不过中国人太多的骂人者(丝毫不懂程序设计的人)会骂!(他们其实也弄不懂JAVA是什么)中国的懂那么一点技术的人只会看外国什么热,外国的热的他们说好,外国不热的他们说不好!中国懂技术的人都出国了!哈哈!
      

  15.   

    这里说完了,请楼主把帖子转到JAVA版面上,看看他们如何评价,呵呵。
      

  16.   

    巨人之间的对话:Sun VS Microsoft  
            软件开发论坛(SDForum)是硅谷最大的非赢利性软件组织。这次两大巨头Microsoft和Sun公司在这里共同讨论今后Web服务发展的问题。对Web服务方面都提出了自己的技术优势和特点。      Microsoft和Sun是Web服务技术上两个领先的公司,它们各具有自己的技术特点和优势(.Net vs. J2EE)。如果您还不是十分清楚当今Web服务情况,那么本文会让您具体了解这两个巨人之间的对话.Net
          近20年,微软公司在桌面操作系统和软件市场上取得了巨大的成功,但是微软公司并不满足于此,它们希望把成功扩充到任何方面,当然包括Intenet网络。.Net就是微软公司基于网络,为今后发展所提出的一种新型的平台。微软不仅仅希望这个平台能够满足各种Internet的服务,更希望它是人们今后生活的一种方式。无论是手提电脑,PDA或者普通的台式机,.Net会向您提供一个崭新的数字生活。无论将来情况如何,微软公司在这方面信心十足。但是关键的的问题在于.NET至今还是Beta测试版本,还需要一些大的Internet站点(如CNET)来测试网络服务性能。J2EE
        J2EE (Java 2 Enterprise Edition)是Sun公司现今和将来Web服务发展的方向。Sun公司已经在此技术上投入了上亿美元。在当今的Internet网络上,已有大约400万网络服务开发商向客户提供Java相关的Web服务。 这些服务商共同来定义Java语言的服务标准(其中55%和Sun公司没有直接关系),Sun公司同时也致力无线网络的开发。基于无线网络的J2ME,现在基本上占领了大部分市场,而微软在无线Web服务方面还没有起步(.Net 不包括无线网络)。     微软和Sun公司在和平的气氛中进行会谈,每一方都尽力表明自己的技术是最领先的,提供的服务是最好的。当然SDForum会谈的结果并不会表明谁会是胜者。J2EE .Net 您选择谁?     在了解Sun公司和微软公司在网络服务这方面情况后,我们就可以对它们今后的发展方向做出相应的评论。     Sun公司建立在1996年,同年首先推出了1.0版本的Java。在那时,微软公司在软件和操作系统方面获得了巨大的成功,获得了巨额的经济收入。但是这并不意味着.Net一定会战胜J2EE。1996年后,Java技术在软件各个方面获得了好评,尤其在网页技术上,拥有了大部分的市场(90%网页使用相关Java技术)。     那么,将来的市场何去何从?在Sun提供免费软件的今天,.Net没有这样做。至少现在没有这样做。.NET预期在明年4月上市。    Sun在Web服务上始终处在技术前列;从90年代开始,Java的技术获得了Internet市场的好评,所以它如今的无线网络市场每年几乎呈现指数的增长。而微软在无线网络服务方面至今还无所作为。趋势:J2EE·Web服务      J2EE 不仅开发友好,而且开发标准基于开发者。J2EE的标准不断的在改进。正是开发者的共同参与使得Sun公司提供的Web服务技术处于世界领先水平。
          .Net同样开发友好,但最大不同是它的开发标准不是基于开发者。你也许知道,微软是世界上最大的软件企业。.Net也是个软件。它的架构(C#),同其他计算机语言一样,也是完全自由的。但是微软提供的Web服务却是要收费的,Visual Studio.Net,Asp.Net都需要高额的费用。       Sun公司把微软公司描绘为使用.Net来获取更多的利润,而不着重关心客户的感觉和最终产品的质量的公司(Sun公司把MS写作M$,^_^)。但是微软公司却认为自己在注重客户的同时,不断的进行技术上的改革,为客户提供更好的服务。
    趋势:难以做出定论,让市场来决定一切·速度和性能      Internet变得越来越流行,如今我们每个人的生活都已经离不开它。单在美国已经拥有了1亿用户。当然Internet网也有很多问题,如延时等。       Sun 公司在各场合多次强调,eBay网站的服务器使用J2EE技术。每天会有大量的用户访问这网站,J2EE能确保提供稳定的性能。但是J2EE是否能同步处理过重的负载,如今还没有一个明确的测试结果。     同样,微软也到处宣称它们在Merrill Lynch网站上使用.Net beta ,而且每秒钟能够处理21000次交易数。每天可以处理7500万个交易。这些数量是惊人的,但是还是没有超过J2EE在eBay每天处理的数量。优胜者: 目前J2EE.·安全性      Sun 提供的Java语言就提供很好的安全性,在程序的编译过程中就会对那些潜在的问题提出警告,而不是在开发完毕后,加上相应的安全机制。在过去的2年中,微软开发的MIIS(微软网络信息服务)服务器,就受到许多病毒和蠕虫程序的入侵,这给使用的企业带来了几千亿的损失。     但是现在的事实是MIIS占有了大部分市场。您的企业就可能使用的MIIS服务器,而不是Sun,IBM或者其他服务器。因为MIIS服务器便宜,而且微软的标牌(Dell公司)使得这些服务器更容易销售。如果你认为MIIS会常常受到攻击,可能会带来巨大经济损失,那么你就可以选择使用昂贵Sun公司得服务器。     我们也不能说J2EE非常安全,非常健壮;但是至少比微软做的好。你应该不会忘记,比尔盖茨在做展示时,系统突然死机的事情吧。    优胜者:Sun。如果考虑安全/价格比,微软略占优势。·费用
          Sun公司的软件都是免费的。甚至使用在Sun服务器上的Sun One都是免费的(原先1999$)。Struts, Apache, Jakarta, 在J2EE平台上的关键软件都是免费的。那么你会问Sun公司如何来赚钱呢?Sun公司的一个四CPU服务器就要10万美元,在今后调试,维护,升级也需要一笔巨额的费用。
         如上文所说,微软公司主要是销售软件来赚钱。如全套的在线MSDN.NET就要2499$,但一个4CPU的处理器只是Sun公司10%的价格。去年Sun公司的股票指数曾经一度下滑,因为Dell和Intel公司联手,把极为低价的服务器推入原先Sun公司占有的市场。许多原先Sun公司的长期客户就因此转向使用Dell服务器,因为它的价格极其便宜,所以万一出现故障,只需重新再买一台就可以了。    优胜者:微软性能测试     微软和Sun公司都使用自己的软件来测试性能。自己的测试结果都表明了不错的性能。许多第三方软件测试结果表明,Sun和微软各有所长,而且在不同的领域,不同的市场,两家公司都有自己独特的技术特点。所以在.net和J2EE还没有全面铺开时,我们也很难下定论。      微软和Sun公司的竞争还是刚刚开始,最终谁是胜者,让我们拭目以待。    优胜者:拭目以待总评
         无论您是站在Net一边还是J2EE一边,有一点要记住。只有竞争才会带来新的技术。就如同美国和原苏联在太空技术上竞争一样,Sun公司和微软公司在当今都是Web服务技术的领先者,只有相互竞争,才能开发出更好的平台,提供更好的服务,带来更高的技术。    微软和Sun公司的两个平台都有不错的性能,但是将来如何我们都说不准。但是有一点可以确信,Sun公司不会成为另一个 Netscape失败者。因为Sun公司牢牢掌握了工业技术,而且已拥有越来越多的支持者。Sun公司在技术研究和开发方面花了大量的精力和金钱;在2004年,它会推出更好更价廉的服务器。    虽然微软公司在Web服务起步较晚,而且Net的正式版还没有上市,但这并不意味着微软会是在这方面的失败者。也没有多少人会相信,Sun公司最终会取代微软公司。微软公司有句名言:不是不会做,而是不想做。许多事实表明,微软公司一旦进入某个领域之后,没有人会是它的对手。    也许是我们消费者习惯了微软,所以我们更加希望,在此时出现一个强者敢于和微软挑战。不论是竞争带来的高端的技术,良好的服务,人性化的设计,还是高效的性价比,至少“两虎相争”比“一虎称霸”好看多了。
      

  17.   

    如果微软的.Net可移植那就……
      

  18.   

    两收都要抓,工作用。net,自己玩用java