4个理由告诉你Java为何排行第一

Java已经有20年的历史了,甚至更久,而这取决于你所询问的人和你的计算方式。忽略它的年龄不看,Java依然排行第一。它的实用性、性能和向后兼容性都彰显其价值所在。
2016年伊始,标志着我们已经走过了Java的20年历程。事实上,虽然Java宣称是于1995年5月23日公开发行(HotJava 浏览器却并没有获得同样的成功),但第一版官方JDK是在1996年的1月23日才正式发行,因此Java可以称得上是刚满20岁。Java身上有很多值得回顾的东西,但我想更加令人感兴趣的是Java在20年之后依然能够成功的原因。

准确测量程序设计语言的受欢迎程度是很困难的,但众多调研统计中的一个普遍接受的指标是 TIOBE指数。它能够通过各种搜索引擎以及谷歌博客、维基百科甚至YouTube进行语言跟踪。(在写这篇文章的时候,我学到了一些新东西,那就是,TIOBE其实是“The Importance Of Being Ernest”的缩写,它是奥斯卡·王尔德的一部剧作,虽然我不清楚这跟程序设计语言有什么关系)。
回顾过去十五年的成果,Java一直是数一数二的。Java已经占据了曾经C语言所拥有的地位,而C语言在Java开始流行之前一直是最受关注的语言。(事情变化多快啊!早在1986年Lisp语言还是排名第二的语言而Ada排名第三)。TIOBE指数也刚刚宣布2015年是Java语言年,而十年之前,Java就已然获此殊荣。
作为普及率的另外一个体现,甲骨文经常喜欢引用的统计,即世界上有九百万的java开发者。如果你想要找点乐子,那么请查看这篇文章,它提供了一些关于开发者数量如何达到这一数目的细节。忽略这些细节不看,我认为大家都同意全球的确有数以百万的Java开发者。
那么,为什么Java能够持续的受到欢迎呢? 我认为还是有一些原因的,这里我们列举四条:

1、实用性

James Gosling将Java描述为“蓝领”的程序设计语言。它能使开发者花最小的代价完成工作,同时还能使得开发者在一段时间之后,还能继续完成别人的(甚至自己的)代码并且明白其中的意思。当然,你也可以编写可读性差的代码,就像你在其他语言中能做的一样,但是使用良好的编码风格能够让它比其他许多语言都有更好的可读性。

2. 向下兼容

Sun公司和之后的Oracle(甲骨文)公司在确保一个版本的Java代码能够正常地在新的版本运行上做出了很多努力。虽然事情并不总是这样(如JavaSE1.4中的断言和JavaSE5中的枚举)并且有时不向下兼容的做法能够获得更好的实现(如:泛型),但向下兼容对开发者来说依然是一个引人注目的特性。没有比为了能在新版本的平台上运行代码而修改旧版本中的正常代码更糟糕的事情了。这简直是浪费时间。

3. 可扩展性/性能/可靠性

在超过20年和每年数以千计的开发者的推动和发展,Java已经成为了一个坚实的平台,可以赶上甚至超过本地代码的水准(多亏了JVM使用了动态而非静态代码解析的一些优化)。当谈及可扩展性,看看使用Java语言的一些大型企业:Twitter(抛弃了JVM的Ruby-on-Rails,因为它不再能够扩展),Spotify,Facebook,Scalesforce,eBay,当然还有Oracle。Hadoop,Cassandra和Spark,大数据工程的基础框架,无不使用Java或者Scala并且在JVM虚拟机上运行的。如果你想要良好的拓展性和性能,Java和JVM是最好的选择。

4. 保鲜度

对我来说这是最重要的一条。查看TIOBE统计图能够发现,2014年10月份开始,Java的受欢迎程度有了显著的提升,这刚好是在JDK8发行之后。JDK8对Java开发者来来说有了显著的变化,它引入了Lambda表达式和Stream API。突然间Java开发者能够在不用学习一整套新语言(如Scala)的情况下以一个更加有效的方式进行开发。这些特点也使它有可能更简单地利用多核/多处理器的机器,而不必写很多复杂的和潜在的容易出错的多线程代码。随着Jigsaw工程在为JDK 9的发布而启动, 我们会看到模块化使大企业应用程序更容易建立、部署和维护。同时在JDK10中,对于发展新的语言特性的计划已经在进行中了,比如值的类型等等。

我非常期待Java能够获得另一个十年当中的年度最佳编程语言。

译文链接:http://www.codeceo.com/article/4-reason-java-no1.html
英文原文:4 Reasons Why Java is Still #1
翻译作者:码农网 – 单劼

?

时间: 2024-08-24 19:52:59

4个理由告诉你Java为何排行第一的相关文章

4 Reasons why SharePoint is Dying 四个理由告诉你,为什么SharePoint即将死去

4 Reasons why SharePoint is Dying 四个理由告诉你,为什么SharePoint即将死去 我害怕不得不谈到这个,SharePoint即将死去.它过去是拥有多么炫酷功能的伟大平台,现在,它开始按部就班,准备不可避免的结局了. 在这里我告诉你原因,而且,很难受地告诉你,你我都不能改变什么.是时候收拾行装,继续前行了.因为迎来的是最后的喘息,并且,几乎不能是美好的体验了. 1. APP模型 所以,我们从APP模型开始.因为某些显而易见的原因,从来没有真正做到. 最近,我看

8 Reasons why SharePoint is Bad for Your Business 8个理由告诉你,为什么SharePoint对你的业务有害

8 Reasons why SharePoint is Bad for Your Business 8个理由告诉你,为什么SharePoint对你的业务有害 SharePoint近期已经获得了非常多天花乱坠的广告宣传,似乎全部人都跳入协作的浪潮中. 我说你们都疯了,所以这里总结一下,为什么SharePoint对你的业务有害. 1. 假设98年能够使用.那么现在应该也能使用 总是学习新东西花费大量精力.训练员工以不同方式工作很费钱的. 为什么不只学习现有的技术呢?ASP不错.CGI还没有消失.停止

好程序员告诉你Java架构师学习路线

好程序员告诉你Java架构师学习路线,从初级Java工程师成长为Java架构师,你需要走很长的路,很多有计划的人在学习之初就在做准备.你知道Java架构师学习路线该怎么走吗?成为一个优秀的Java架构师究竟需要学什么?接下来就跟小编一起揭晓答案. 架构师是一个充满挑战的职业,知识面的宽窄往往决定着一个架构师的架构能力.架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化. 想要成为Java架构师,你首先要是一个高级Java工程师,可以熟练使用各种框架,并知道

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

20145224-陈颢文 《Java程序设计》第一周学习总结

20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大平台,其中Java SE是基础.Java的一大特点是它可以跨平台,而JVM对Java的跨平台提供了支持,它就类似于一个虚拟机,只要在当前平台安装了相应的JVM,Java程序就有了可以在此平台上运行的基础啦.JRE是Java的执行环境,在安装了JRE的计算机上就可以运行Java的程序了,当然光是可以跑代码对于程

达拉草201771010105《面向对象程序设计(java)》第一周学习总结

达拉草201771010105<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com DLC 程序设计评测:https://pintia.cn/ [email protected] 代码托管平台:https://github.com/ dalacao 中国大学MOOC:https://www.icourse163.org/ 2665087485 以下回答是或否 是否加入课程班级博客群 是

焦旭超201771010109《面向对象程序设计(java)》第一周学习总结

本人学号<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com jccljj 程序设计评测:https://pintia.cn/ [email protected] 代码托管平台:https://github.com/ Jcczits 中国大学MOOC:https://www.icourse163.org/ Jcczits 以下回答是或否 是否加入课程班级博客群 是 是否加入课程QQ讨论群

王燕 201771010126《面向对象程序设计(java)》第一周学习总结

王燕 201771010126<面向对象程序设计(java)>第一周学习总结 王燕 201771010126<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com https://www.cnblogs.com/wy201771010126/ 程序设计评测:https://pintia.cn/ a的n次幂 代码托管平台:https://github.com/ wy2017710

201772020113李清华《面向对象程序设计(java)》第一周学习总结

201772020113<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com bmwb 程序设计评测:https://pintia.cn/ bmwb 代码托管平台:https://github.com/ 登陆不上 中国大学MOOC: https://www.icourse163.org/ 白漫卫兵 以下回答是或否 是否加入课程班级博客群 是 是否加入课程QQ讨论群 是 第二部分:理论知识