当前位置:  开发笔记 > 编程语言 > 正文

Java还没有跟上吗?

如何解决《Java还没有跟上吗?》经验,为你挑选了5个好方法。

我整天都在编写C#,但是最近为了爱好的东西跳转到Java,比如为BlackBerry和Android平台编写代码.这段时间我一直认为,就语言特征而言,Java和C#是彼此的双胞胎.

无论如何,我发现Java相当于C#1.1或类似的东西.在Java中,我必须编写两次我在C#中编写的代码.像对象初始化器,lambda,属性为上帝的缘故,是否会出现在Java中?我试图浏览JSR的东西,但找不到任何东西.

Java根本没有跟上吗?或者我只是不按照预期使用它?



1> Andy White..:

我认为你是对的,Java没有很多C#引入的方便的新功能.许多新的C#特性只是编译器技巧(属性,对象初始化器,扩展方法),您可以在C#或Java中手动完成.

Java人员可能还没有引入这些新功能,因为他们可能更喜欢保持语言尽可能简单和向后兼容.

我不得不说这些天我更喜欢写C#.



2> Thomas..:

我会说,是的,Java没有跟上.微软长期以来一直在努力研究Java(和C++),并弄清楚他们有什么烦恼,缺少哪些功能,并修复了C#后续版本中的许多功能.

此外,Java设计者似乎尽量保持他们的语言和解析器尽可能简单,而C#设计者不必担心语法糖:属性,委托,lambdas和LINQ都是这样的例子.正如你已经注意到的那样,一勺语法糖使语言更容易下降.



3> Jon Skeet..:

Java肯定落后了,虽然我说它比C#1.1更接近C#2.0--例如,它有泛型,尽管它们与C#中的有些不同.

我很失望地听到许多提议的语言功能已被删除用于Java 7(特别是关闭),但随后Project Coin出现了 - 所以至少我们可能会有一些小功能值得期待.

我很快就看不到Java在语言方面赶上C#了 - 他们有更多的语言包袱,这使得更难以改变语言.尽管听起来有些微不足道,但是检查异常会给方法签名增加一个额外的"轴",这使得某些东西(比如闭包)比其他东西更棘手.

(当然C#4.0也可以看到......)



4> Alex B..:

流行语言越老,其代码库就越大,语言的更改就会以更保守的方式进行,以免破坏现有的代码库,修复起来会很昂贵.

Java是较旧的语言之一.C#相对较新,可以更加彻底地改变.与C和C++相比,C和C++十年来没有变化.

如果您真的想要新代码的新语言功能,请尝试另一种与Java(Groovy,Scala,Clojure)互操作的基于JVM的语言.



5> duffymo..:

我认为问题的一部分是经济问题.当Sun成为市场领先者时,Java出现并不是偶然的.他们的股票在2000年3月创下历史新高,受到互联网公司购买的所有服务器的推动.

当泡沫破裂,所有这些服务器都进入市场时,需要花费很长时间才能解决过剩问题.Sun还没有从中恢复过来.商用服务器功耗的增加削弱了专业RISC芯片和Solaris曾经拥有的优势.除非你是一个经济大国,否则你不可能成为一个伟大的军事大国; 作为这种规模的创新者也需要现金.

他们失去了许多曾经为公司提供动力的人才(比如Bill Joy).

Sun的底层是一家硬件公司.Java的策略,特别是在服务器端,是它有助于推动硬件销售.

我认为Java的变化速度因此而受到影响.

微软继续开发C#,因为收入继续涌入,Anders仍然与他们合作,他们是一家最终通过该产品赚钱的软件公司.这就是他们现在领先的原因.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有