Java:持续革新的 20 年

oschina
 oschina
发布于 2015年05月21日
收藏 32

编者警告:此贴可能引发又一波的喷喷喷,请文明有序的喷!

今年的5月23日是Java第一版正式推出20周年的日子。它的推出伴随和促进了Web的发展,提升了生产力,为公司与消费者之间的互动带来了全新方式。作为一种被广泛采用的编程语言,Java为技术的推广与普及起到了不可忽视的作用。例如,大数据革命就是由Java引发的。


对于企业界来说,很多服务器都部署着Java应用程序,许多物联网设备也都是基于Java技术开发。

20年前,Java为人们带来前所未有的科技理念:一次编写,到处运行。

在此之前,编程语言的种类寥寥无几,而且大多针对固定用途:Fortran用作科学计算,COBOL是针对商业方面,C以及逐渐兴起的C++则用于商业编程。

除此之外,还有一些非主流语言。例如,用于国防项目的Ada,在爱好者以及中小企业顾问间流行的Pascal,在学术界流传甚广的Smalltalk以及Lisp,深受系统管理员喜爱的Perl等等。但是,前文所述的3大语言在当时占据着主导地位。

疲惫不堪的C语言

人们日渐对C语言感到厌烦,其具备2个不利因素:首先,C过于针对底层需求,仅仅执行简单任务就需要大量指令。其次,可移植性差,这意味着针对PC撰写的代码无法便捷地移植到小型设备或大型主机中去运行。

当然,如果针对底层应用开发,C的性能相当强大,可以让开发者随心所欲地发挥自己的创造力。然而,针对大型软件项目而言,C会给相关实施人员带来不可想象的痛苦。

尽管到了1995年的时候,许多C语言厂商纷纷推出符合1989 ISO标准的工具,但随之而来的众多扩展功能让跨平台移植成为不可能的任务。

C语言的种种弊端最终催生出新一代编程语言。光是在1995年,就出现了Ruby、PHP、Java以及JavaScript。

由于Java拥有强大的可移植性以及丰富的功能库,其迅速变得流行起来。“一次编写,到处运行”的口号在严格意义上无法实现,但较以前的语言已经大幅提高。

其后,IBM对Java的认可奠定了其在商业编程领域的重要地位。

一旦一门语言成为主流,其生命周期会变得格外长久。

Java引入的虚拟机技术是其最为独特的理念之一,该技术让可移植性植根于项目的最初阶段。然而,高度可移植性带来的弊端就是启动和运行速度缓慢。

持续完善

今天,Java的运行效率已经非常之高,同时还具备巨大的吞吐能力,这一点已经在各种大数据项目上得到了证实。现在的Java已经变得可以胜任各种任务。

随着Java 8的出现,该语言已经具备了各种流行的编程理念,代码更短小、更可靠且表达能力更强。

Java的历史为我们所熟知。然而,我们很容易忽视掉一点,那就是:Java的成功来自持续大规模的技术投入,没有多少语言可以获得厂商的青睐从而进行各种完善。除了Java之外,恐怕只有微软的C#受到这种待遇。

20岁的Java已经步入成熟期,让我们期待它的未来变得更加辉煌。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Java:持续革新的 20 年
资讯来源:网易科技
加载中

最新评论(122

zigzagroad
zigzagroad
没记错的话,当年在中央某台的栏目中看到播报过关于Java语言的新闻。<br/>
N年后走上了Java开发之路。4
保证听你的
保证听你的
哈哈 和java同岁
Shmiluyuu
Shmiluyuu

引用来自“wangell”的评论

c++支持封装,同样也可以写独立地函数,完全的以偏概全,一个优秀的项目如果仅仅以语言来判断,那世界上就不会有如此之多的计算机语言了。
.
开源中国总书记陈独秀
开源中国总书记陈独秀

引用来自“jackchanxj”的评论

不喜欢java,因为太繁琐,而且对于它人为的面向对象已经到了偏执的地步.但市场占有率摆在那,类库摆在那,工具摆在那,让人不能说放弃就放弃

引用来自“南湖船老大”的评论

Java的面向对象怎么偏执了,Java不算完全面向对象的了,还是做了妥协的,不是很死板也不是太灵活混乱

引用来自“eechen”的评论

王垠看待面向对象编程:
http://www.yinwang.org/blog-cn/2015/04/03/paradigms/
把所有函数放进方法的做法是本末倒置的,因为函数本身并不属于对象,它们只是对象上面的变换操作。绝大部分函数是独立于对象的,它们不能被叫做“方法”。强制把所有函数放进它们本来不属于的对象里面,把它们全都作为“方法”,导致了面向对象代码逻辑过度复杂。很简单的想法,非得绕好多道弯子才能表达清楚。很多人至今不知道自己所用的“面向对象语言”里面的很多优点,都是从过程式语言继承来的。

编程最重要的事情,其实是让写出来的符号,能够简单地对实际或者想象出来的“世界”进行建模。一个程序员最重要的能力,是直觉地看见符号和现实物体之间的对应关系。不管看起来多么酷的语言或者范式,如果必须绕着弯子才能表达程序员心目中的模型,那么它就不是一个很好的语言或者范式。

PHP既支持过程化,又支持面向对象,通过PHP内置的关联数组,非常容易就能对现实世界进行数据建模.按王垠的看法,PHP才是世界上最好的语言,没有之一!

引用来自“ZXEOC”的评论

某种程度上来说,王垠也只是一个比你有名的喷子
应该说是其中一个
五杀联盟
五杀联盟

引用来自“极寒冰霜”的评论

PHP的模版引擎语法改简短点,那就真符合那句话了
"php是世界上最好的语言,没有之一"
现在做web依然最强大的还是HTML+JS+AJAX(服务端就随意了,反正就返回几个字符串)
呵呵?
c
coolcao

引用来自“迷雾”的评论

一个用C编写的语言还好意思和C比。
一个随处运行随处安装虚拟机还好意思说一处编译随处运行
哪一门语言不需要执行环境呢?
极寒冰霜
极寒冰霜
PHP的模版引擎语法改简短点,那就真符合那句话了
"php是世界上最好的语言,没有之一"
现在做web依然最强大的还是HTML+JS+AJAX(服务端就随意了,反正就返回几个字符串)
_Oak_
_Oak_

引用来自“jackchanxj”的评论

不喜欢java,因为太繁琐,而且对于它人为的面向对象已经到了偏执的地步.但市场占有率摆在那,类库摆在那,工具摆在那,让人不能说放弃就放弃

引用来自“南湖船老大”的评论

Java的面向对象怎么偏执了,Java不算完全面向对象的了,还是做了妥协的,不是很死板也不是太灵活混乱

引用来自“eechen”的评论

王垠看待面向对象编程:
http://www.yinwang.org/blog-cn/2015/04/03/paradigms/
把所有函数放进方法的做法是本末倒置的,因为函数本身并不属于对象,它们只是对象上面的变换操作。绝大部分函数是独立于对象的,它们不能被叫做“方法”。强制把所有函数放进它们本来不属于的对象里面,把它们全都作为“方法”,导致了面向对象代码逻辑过度复杂。很简单的想法,非得绕好多道弯子才能表达清楚。很多人至今不知道自己所用的“面向对象语言”里面的很多优点,都是从过程式语言继承来的。

编程最重要的事情,其实是让写出来的符号,能够简单地对实际或者想象出来的“世界”进行建模。一个程序员最重要的能力,是直觉地看见符号和现实物体之间的对应关系。不管看起来多么酷的语言或者范式,如果必须绕着弯子才能表达程序员心目中的模型,那么它就不是一个很好的语言或者范式。

PHP既支持过程化,又支持面向对象,通过PHP内置的关联数组,非常容易就能对现实世界进行数据建模.按王垠的看法,PHP才是世界上最好的语言,没有之一!
你把怎么大的帽子,扣给王垠,问过他的想法吗
FalconChen
FalconChen

引用来自“falconchen”的评论

java没有跨平台,它就是个平台

引用来自“wangell”的评论

平台是c/c++,谢谢
呵呵,你没看懂
返回顶部
顶部