您的位置:首页 > 编程语言 > Java开发

一篇关于《JAVA未来和发展》 D 待续

2007-12-23 20:59 232 查看
3 . Java将越来越复杂
前面一直讲述Java的美好前景,但是这都是片面乐观的。一直以来Java只所以受到如此多开发者的青睐的一个重要原因是因为它学起来简单,这是相对传统流行的C/C++而言。基于目前的硬件水平,Java在以损失性能的代价下封装和代理了众多程序员本应该在C/C++中关注的细节,比如内存管理。这大大提高了Java的开发效率,为公司企业节约了成本,何况它又是跨平台。然而,一种事物的发展总是情不自禁的朝着复杂方向,比如windows 系列发展到Vista。Java也很难逃脱这个厄运。导致这种趋势的原因有:一,JDK开发者抵挡不住新特性的诱惑,当有一个非常好的想法,令人兴奋的功能被提出时,他们总是千方百计的想把它加入到新版本中。二,趋于对外部压力的妥协,比如一些脚本语言在某些方面的确具有Java所不能及的特性,而在这种“非友即敌”的竞争中,如果不能击败对方,那么就得兼容他,一切都和谐了。三,使用者期望导致复杂性越来越大,使用者们总是期望新的版本能够给他们带来惊喜,以让他们对这门语言永远保持热情和期待,至少我是这样的。
由此看来,未来的Java其学习成本并不会亚于C/C++。
4 . Java的抱怨
一直以来不少C++程序员都有不屑学习Java的情绪,原因是Java简单,不符合其高智商的身份。在以前乃至现在都是有一定的道理的,但是这种观点依然有所偏激,Java与C++比较,在语法使用方面的确较C++要简单的多,这也是Java设计的一个目标,但这并不意味着掌握好Java就是一件轻而易举的事情。这就好像学物理的人鄙视学计算机科学的人一样,你也会愤愤不平。事实上,Java更像是一个骗局,表面上告诉所有的初学者,来学我吧,看,我的语法多么的简单。当你轻松入门,逐渐走入到深处后,才发现自己被忽悠了,原来Java并不简单,只是它的复杂度换了一种形式存在,今天才学完JDBC,明天就说该用Hibernate了,刚了解完JDK5的特性,JDK7都快出了。更新快是一方面,多,则是另一方面,J2EE技术包括JSP,Servlet,EJB,JMX等等 而且每隔一段时间就会有各种各样的新框架出现。第三个方面,就是配置复杂。如果你是一个Java程序员,你一定深有体会:不是程序不会写,而是部署配置太复杂,总是出现这样或者那样的错误。比如现在流行的Struts,Spring,Hibernate它总会报一些让你匪夷所思的错误,直到你发现原来又少了哪个该死的jar包。从这个角度而言,掌握好Java一点都不容易,我一直认为没有正真的精通,且一点也不比C++容易学。C++难是难了点,但是它的发展是相对稳定的,C++标准不会修改个不停,学会了,就有一劳永逸的感觉,当然能学会就是件很不容易的事情,(这里的学会不是指会会使用他打印“Hello,world”);
尽管如此,Java还是深深的吸引着我,因为她是如此的优雅,而它的内在又是如此的神秘,我总有种将它的本质看个清楚的冲动。甚至面对25万行的JVM源代码(C/C++编写)面无惧色。我每天用Java写程序的时候,总有种如履薄冰的感觉,因为每当我使用某个API去实现某一目标时候,在不久之后总能在浩瀚的JDK API中找到另一种更美妙,更优雅的方法,有时候近乎神奇,拍案叫绝----原来程序可以这么写!所有的Java程序都是由类组成,一切皆为对象,这让人想起现实世界万物都由原子构成一样,更高的,可以上升到哲学的理论去探讨面向对象的本质。但是简单的东西经过组合之后就会变成一种绝妙的事物,不正是这个道理才有了今天的万千世界吗。精通语法的程序员是初级程序员,会在恰当场合运用恰当的API,将简单的API组合成看似简单却巧妙并能够体现自己思想的程序才算得上是得道程序员。可能你会认为正真的高手应该是写JDK API的人,我不以为然,API提供者可以比喻成造刀的铁匠,他非常厉害,造了一把宝刀,精通使用API的人则可以比喻成拥有宝刀的武林高手,试问武林人士与一个打铁技术高超的铁匠有何可比性?所以说:游戏规则的制定者不一定是游戏高手。
5 Java的发展主要动力是靠创新
初级Java程序员可能会抱怨:什么都封装了,没有了创新的用武之地。提出这种观点的人会被认为是“没有灵魂的程序员”。他们的将来会发展成一个合格的程序员,但很难成为一个优秀的程序员。Java封装了众多细节,这对程序员来说应该是件令人愉悦的事情。但Java并没有扼杀程序员的创新。只是换了一个游戏规则,你的创新无形当中已经被建立的JDK API之上。而且从某种程度上而言它更刺激了创新。因为创新的成本降低了。一个比方:你用C/C++花了绝大部分时间造了一个你自认为性能,架构各个方面非常好的零件,而这个时候一个Java程序员他所想的不是怎么去造一个零件,而是如何将现有的零件组合成一辆新的概念轿车。一言以蔽之,C/C++是制造零件的语言,Java是制造豪华轿车的语言,两者都需要创新,创新复杂度,技术含量高低都没有可比性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: