早在2000年(当我们在IIRC上发布.NET时)它就是一种创新的尖端语言(上次我用它是2003年).
从我读到的内容来看,Sun只是将语言进化得非常缓慢.我甚至已经读过语言发展的地方,比如增加了泛型,开发人员抱怨实施不好.
这些准确的看法,如果有的话,是否有任何想法,特别是与C#看似明显的竞争?
从企业的角度来看,发展一种语言并不是一件好事,实际上它非常糟糕.
这就是为什么你会听到像cobol,fortran甚至C这样的老年语言之后用年份编写的语言 - 很多企业都坚持这一年.
最重要的是,较大的团队意味着团队中的某个人更有可能做其他人不理解的事情,因此在保持语言简洁和清洁方面存在重要但评价不足的价值.这意味着不要添加太多替代方法来做事.
我和Ruby一起工作并且使用了这种语言,但从企业的角度来看,这是一种绝对可怕的语言.我无法计算一个糟糕的程序员会弄乱大型团队的方式,迫使他们花几天时间来解决几分钟内创建的混乱局面.
由于泛型的复杂性,有些公司拒绝使用java 5.0.(我们仍然在研究1.3倍,但这是另一个原因).
老实说,大多数"改进"给你的收入很少.一些语法更改,删除几个级别的大括号的能力.
我想不出Java强迫我重复业务逻辑的一个案例(当我试图让我的代码"DRY"时,这就是我担心的问题) - 这是一个足够干净的语言,如果完全干,如果你是一个优秀的程序员.
例如,你可以用一个子类做的任何事情你可以用子类做而不重复业务逻辑 - 你最终看起来更糟糕因为括号/额外的类定义层,但通常更可重用(你可以扩展类你用来实现你的回调,但你不能扩展一个闭包方法,你必须重写它.)
在我职业生涯的最初几十年里,我对代码的感觉并不是这样(我喜欢语言技巧,越搞笑越好),但是现在我已经很久了 - 这可能是我的晚年偷偷摸摸的或者它可能是经验,但现在我看到简单,明确,稳定的代码(由一种不会让你玩耍的语言提供)的巨大好处,并且无法真正找到许多替代方法的单一优势,即使他们节省了一两行打字.
但是,如果您正在寻找Java升级,请查看Scala.它非常惊人,仍然在JVM上运行,与Java交互等.
大多数语言都有一个强大的手,涉及它们的起源和演变.想想:Larry Wall/Perl,Guido/Python,Matz/Ruby,Odersky/Scala,Hickey/Clojure等等.这些家伙都是出色的语言家伙.我会让我的左臂比其中任何一个聪明一半.
Java实际上有一个区别,不仅有一个,而是一系列令人惊叹的语言人员 - 从Gosling开始,但我也想到了Guy Steele,Bill Joy,Gilad Bracha,Neal Gafter等等 - 所有人都很棒.这实际上是一件好事(我想).它使语言变得更好但却阻止了停滞.
但在过去的几年里,语言领导真的很真实.目前,没有人在盯着商店.没有人做出关于什么适合Java模具的艰难决定,并且有意义添加(或更重要的是不添加).我不知道这意味着什么.我希望Java的巨大受欢迎程度和JVM的强大基础意味着这种真空吸引力太大而不能被填充并在某些方面给予指导.但我只是小心翼翼地充满希望,因为我不知道那是谁.
约翰罗斯是JVM方面的那个家伙.虽然如果我只能在一个或另一个中获得创新,我现在就采用JVM.:)
Java的发展速度肯定非常缓慢 - 特别是如果你将它与C#和VB进行比较.我个人觉得他们在保持向后兼容性方面做出了错误的决定,以执行时安全性和效率为代价.IMO 几乎在所有方面都可以更好地运行.NET方法.
Java 7有很多潜在的功能 - 无论是语言还是平台 - 但它的制作时间非常长,而且许多功能仍然存在重大问题.
但是,我不想对此为何发生任何"责备".
Java语言的发展一直很缓慢,但故意如此.
泛型提供了一个很好的例子.需要与先前版本的Java兼容.鉴于项目的目标,泛型实现完全按照设计执行非常有用的功能.但是,它并不符合许多开发人员的预期,这些开发人员期望具体化的泛型行为.
另一方面,JVM的创新非常迅速,通常为其他虚拟机引领潮流,并促进竞争领域的竞争.
在我看来,Java语言应该尽可能稳定.我喜欢闭包的想法,但我不相信Java是他们的语言.(如果必须采取措施,我更喜欢保守的FCM.)我与需要培训的开发团队合作,构建和维护复杂的生产应用程序.Java语言为我们提供了很好的功能和结构组合.
其他语言,如Scala和Groovy,以及JVM(如Ruby和Python)的端口,将继续为Java平台赋予生命力,即使在Java语言本身已经过了COBOL之后.