JAVA真要狗带了?我们进来一起聊聊吧

近日,Oracle和Google关于java的官司打的不可开交,除了指控后者侵犯知识产权之外,甲骨文还要求法院对其施以超过90亿美元的罚款。两个月前,法院认定Google只是“合理使用”了java编程语言,甲骨文表示不服裁定,本月向旧金山地方法院提交了又一份相同的赔偿请求。

随着两大巨头的官司之争愈演愈烈,Oracle放弃java ee的传闻也甚嚣尘上,在java行业引起不小的关注,很多正在学习java的猿(媛)们也有些迷茫和恐慌,难道辛辛苦苦学的语言就要白学了?以后还要不要学java?

下面,就来解答大家的疑惑

一、大家不用过分担心,oracle根本没有力量左右java发展

自从java发展壮大以来,无论是以前的sun公司,还是后来oracle公司,一直都无力左右java的发展:实际上java的规范制定,都需要通过jcp审核,一些新机制、新功能往往并不是oracle想加就加的,java是一个庞大的生态圈,由庞大的社区力量在推动java的发展。

java本身有太多的规范都是来自社区的。世界上大量开源组织和公司,为java贡献了非常多的专利和代码,每次javaone大会都是全世界java界的圣会,汇聚一堂讨论、决定java的走向和发展。

java世界,可以说正左右着全球的发展,全球所有顶级的、核心的项目,绝大部分都是基于java做的,即使不是完全基于java,也和java有千丝万缕的关系。深入最深的是美国。美国军方绝大部分的控制系统、甚至航天控制系统,都是基于java或者和java相关的。

除此之外,包括世界上所有的银行、通讯、航空、电力、交通、公共安全等领域的核心系统,也都是基于java的,如果完全放弃java,等同于把世界上所有的这些应用系统全部要替换掉,哪个公司、哪个团体有这个能力?如果这些系统全部不能运行,人类社会等同于重回到传统时代!

如果放弃java,你不能从银行取钱、不能在线买飞机票、火车票、不能在线购买商品、不能刷公交卡、不能打电话……甚至连你的身份证信息都不复存在!

有人说:java不赚钱,因为java规范是开放的,所以oracle才想要放弃。但如果真的不赚钱,那么oracle为何要和谷歌因为java的专利而打官司呢?

二、即使oracle放弃java,其他的公司会乐意继续扛起java的大旗

先说现在正在和oracle打官司的谷歌,正是因为java的各种专利纠纷,如果oracle真的愿意放弃java,那么谷歌将首先表示欢迎、并非常乐意继续领导java的发展。

即使谷歌不想要java,光是国内的那些巨头,个个都想要java,以便对自己的产品进行更深度的定制,现在因为要定制自己的产品。此外,能肩负扛起java大旗的风光,国内软件巨头都不差钱,他们绝对非常乐意去做这件事情。不过话说回来,美国政府应该不会允许java主导权落入中国,所以这一点我们只能是空想。

三、oracle可能放弃java ee,但不会放弃java

java刚开始的时候,因为各种应用和生态不成熟,很多东西需要有人牵头制定强制规范引导java的发展,于是java ee曾经引领了企业级应用的开发。

但随着时代的进步,以及越来越多的公司和组织参与到java世界,出现了各种各样的java ee组件的代替者,比如hibernate、spring就是其中两个典型。相反,java官方制定的各种java ee规范反而不太受欢迎,他们制定了jsf规范,但实际企业开发喜欢用struts 2、spring mvc;他们制定了ejb规范,但实际企业开发往往还是喜欢用spring;他们制定了jpa规范,但实际企业开发往往还是喜欢直接用hibernate、mybatis。

现代企业级应用常用的各种框架和工具,比如struts 2、spring、hibernate、jbpm、activiti、lucene、hadoop、drools、cxf等这些大家耳熟能详的组件,全部都不是来自oracle官方,但是却在企业应用中开发经常用到的。

现在企业里面,真正常用的java ee规范有什么?servlet、jsp、jms、jndi。这些技术都只是充当了一个程序的入口而已。

oracle之所以可能考虑放弃java ee,正体现了oracle对丧失java控制权的无奈。企业的本质是逐利,oracle每年为制定java ee规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,所以oracle可能放弃这种吃亏不讨好的事情。

但java不同,2016年6月,java在商业语言排行榜上的市场份额将近21%,庞大到恐怖的市场份额,背后隐藏着巨大各种专利使用费和盈利商机,任何一个理智的公司都不会放弃这个会下金蛋的母鸡。

四、从c的历史来看java,java绝不会过时

c语言是一个诞生于上个世纪70年代的编程语言,在at&t的贝尔实验室里面,由一个想玩游戏的老伙伴整出来的。

后来随着社区力量的介入,c形成了国际标准,参与其中的厂商、开发者不计其数。贝尔实验室早已不复存在,连at&t也早已解体,但c语言依然坚挺,偶尔还跑到java的前面,排名第一!

c发展到现在,已经形成了整个软件、硬件产业上下级纽带,绝大部分硬件设备的固件、驱动程序都是c语言写的。我所知道的操作系统的内核,也都是基于c语言。如果换掉c语言,现在电脑会变成裸机,可能还不如一堆废铁。

java现在的情形,和c非常相似:java已经深入到世界的骨髓。正如前文指出的:从美国的航空航天、军方控制系统,到日常生活的银行、通讯、电力、交通、公共安全等领域的核心系统,绝大部分都是基于java开发。正如世界无法淘汰c一样,世界也无法淘汰java。

五、java可能不是最好的语言,但java是最成熟的整体解决方案

经常有人会问我,java是最好的编程语言吗?我会告诉他:应该不是。我知道的很多语言,如果仅就语言功能来说确实优于java,就比如日趋没落的c#,由于很多特性都模仿了java,有在某些方面做出了改进,因此语言特性要优于java;再比如apple新推出的swift,编写起来简洁、优雅……然而并没有什么用,它们都无力、也不可能取代java。就像世界上比c优秀的语言多如牛毛,但c依然、也将一直坚挺。

java可能不是最好的语言,但java一定是最成熟的整体解决方案。举几个业内公开事实:taobao最初使用了php,发展、壮大起来不得不全部换成java实现;京东最初使用了dot net实现,发展起来之后整个后台不得不换成java实现;小米服务端的消息系统最初使用erlang开发,当时消息推送系统的第一版是基于erlang的,随着小米用户数量的增长,后来开发团队不得不选择使用java重新开发……还有无数中小型的企业“迷途知返”的案例,我就不想一一列举了。从这些事实可以发现,对于一个并发量小、稳定性要求不高的系统来说,可供选择的方案看似很多:php、dot net、erlang……,但公司发展壮大之后,最成熟的解决方案却只能是java。

java的成熟并非体现在java语言特性多么简介、优雅,而是来自它庞大的社区和开发者,以及各种各样框架、类库和工具。软件行业的各种新理论,新方法,几乎最先都是用java实现的。选择java作为企业级应用的解决方案,可以避免地“重复造轮子”,很多开发中面临的棘手难题,往往都有开源的解决方案;几乎所有行业,都有非常成熟的java应用案例,可供后来的开发者作为参考。选择java,并不是简单地选择了一门语言,而是选择了一个成熟、稳定的解决方案。

java的成熟更体现在包容气度上,有人说java语法臃肿、更喜欢ruby,ok,那就jruby吧;有人说我喜欢python,ok,那就groovy、jython吧;有人说我喜欢lisp,ok,那就clojure吧……各种语言的开发者都可在jvm上大展拳脚,java以海纳百川的方式包容、融汇着各种语言的特性,最终成就了java的“夫唯不争,故天下莫能与之争”。

Java工程化、高架构,高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty源码分析等知识点的学习资料与视屏。我们一起学习一起交流,群号:71859422

你可能感兴趣的:(JAVA真要狗带了?我们进来一起聊聊吧)