oracle如何把java“玩死”?java程序员该何去何从?

ForDream


Java是Sun公司最优质的资产之一,在Oracle收购Sun之后一直在谋求Java的盈利路线,相比于Sun公司来说,Oracle可能对Java并没有那么多的情怀,能否形成一个稳定的盈利应该是Oracle最为关注的事情之一,所以Oracle不断地“折腾”在某种程度上来说就是一件合情合理的事情了。

随着JDK11发布之后,Oracle也制定了Java的“收费计划”,对于广大企业和Java程序员来说,可能未来免费使用Java的时代结束了。相比于早期Oracle对Java的“不管不顾”,以及剥离Java EE等动作来说,现在的Java似乎进入了一个快速发展的通道,Oracle承诺每隔6个月为Java更新一次,这样的节奏显然不是免费产品的更新节奏了。因此,Oracle计划针对Java的收费策略就不难理解了。

相比于此前Oracle的消极态度来说,目前的收费策略也许对Java来说并不是一件坏事,但是收费的结果必然会导致一部分中小微软件企业逐渐开始使用新的编程语言,对于Java语言的生态来说,收费绝对不是一件好事,但是对于Oracle来说,不能盈利可能是最糟糕的事情。

对于Java程序员来说,需要做好两手准备,一方面目前Java有一个庞大的生态和大量的用户,在未来较长一段时间内Java的应用应该不会有明显的影响,所以还是应该及时更新自己的Java知识结构。另一方面应该有一个自主学习计划,以应对未来可能出现的新趋势,目前Go语言就是一个比较不错的选择,另外也可以考虑学习一下kotlin,虽然kotlin是基于JVM的,但是JVM也不是唯一的选择,相信随着Android支持kotlin之后,kotlin未来的发展前景还是非常值得期待的。

我从事软件开发工作多年,目前主要的研究方向集中在大数据和人工智能领域,也在指导相关方向的研究生,我会陆续在头条写一些关于大数据方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

我使用Java语言多年,也出版过Java编程书籍,如果有Java开发方面的问题,也可以咨询我,谢谢!


IT人刘俊明


Oracle说的很清楚了,是Oracle JDK收费,而不是Java收费。

Oracle收了Mysql之后,现在也是两个版本,一个收费一个不收费,收费的做的更牛一些,你们可以花钱用;免费的稍微差点儿,很大大厂有研发能力,直接在免费的Mysql上改,也可以做到非常牛;而比较大众的我们,直接用免费版就行了,也够用。

这个要收费的Oracle JDK,也就是做的更牛一些,不差钱的公司可以考虑使用;比较大众的我们,直接用免费的Open JDK就行了。


补充一下常见的JVM:

Hotspot,官网上下的基本都是这个,免费的。

J9,IBM的,商用的需要和IBM的其他软件绑定,比如weblogic。

Zing,这也是收费的,而且很高,垃圾回收做的很牛,很变态。


上面几个是主流,还有几个顺便提提:

JRockit,老人们应该比较熟悉。

Microsoft JVM,这个没有了,你懂的。


软件生态

关于软件的生态,可以这么理解:

如果一个软件做出来,用的人多,社区活跃,别的框架都会主动向你靠拢,主动的“迎合”你,那么这个软件的生态是非常好的。

如果真的有一天,Java完全收费了,用的人少了,基于Java的各种开源框架也少了,其他软件也不在出Java的驱动,如果到了这个地步,那么Java才真的是被“玩死了”。


希望我的回答,能够帮助到你!

我会持续分享Java程序开发、架构设计、职业发展等方面的知识和见解,希望能得到你的关注。


会点代码的大叔


如同天要下雨、娘要嫁人一般,对于我们java程序员而言,这事儿谁都无法把控,又何必现在自寻烦恼,恐慌担心并不能解决问题。我来说说自己的看法吧,以下权当个人已见,不代表任何方面观点,不喜勿喷,想喷请前往评论区。

一、 2018年度Oracle 和 Java 事件回顾

1. Oracle 以 Java 侵权案从 Google 处获取高达 88 亿美元的赔偿款,这个行为让不少用户认为 Oracle 已然将 Java 用作挣钱的工具;

2. Oracle宣布Java 8 将停止维护,取消 JavaOne 会议(专属 Java 的开发者大会)。

上图为Oracle 官网提示的 JDK8 终止更新公告。原文翻译:2019年1月之后,Oracle将不会在其网站上发布Java SE 8商业使用的进一步更新下载。需要持续获取安全的bug修复和安全补丁以及Java SE 8或以前版本的稳定性支持,可以通过Oracle Java SE高级版、Oracle Java SE高级桌面或Oracle Java SE套件。有关更多信息以及如何获得Oracle JDK 8长期支持的详细信息,请参阅Oracle支持路线图。

简言之,即:Java 8 在 2019 年 1 月之后不再免费向企业提供更新,想要更新就得付钱或者升级到 Java 9 之上,这让不少程序员认为 Oracle 已然将 Java 用作挣钱的工具。现在要么赶紧熟悉 Java 9,不然就付费吧,很多连java8都还没用熟的程序员表示一脸懵逼。

二、Oracle与java的前世今生

java是编程语言,oracle是数据库,同时,oracle也是一家生产oracle数据库的公司,oracle于2009年以74亿美元收购了生产java语言的公司sun,现在oracle是java的老板。

试想,一个老板会轻易放弃重金得到的产品吗?

三、程序员们何去何从

java使用占有率最高,oracle当初花了74亿美元真金白银收购sun,仅凭这两点,oracle都没有放弃java的理由,猜测这只是oracle为盈利而进行的一系列改革与计划,我们都知道,开发和维护一款产品或工具,需要持续投入资源,考虑到Oracle在收购、开发、维护Java方面投入了大量资金,合理费用还是可以支付的,毕竟他们确实提供了免费的替代品。

个人愚见,java收费意味着企业成本增加,对程序员影响并不大,另外,同为java程序员,希望这顿午餐一直免费下去。



优知学院


大概在两年前,当Oralce输掉了和Google在Android上的Java官司后,Oracle的Java开发努力便开始逐步减慢,而在Java EE方面则是处于完全停止的状态。Java社区的大客户们不仅吐槽Oracle正在放弃已经有20年的Java平台兼容性,更有人形容这是一场危险的游戏。

的确Java8还没用熟就停止更新了, Oracle又把一年一度JavaOne取消了,以及Java付费时代的恐慌……这些种种都让人们不禁发出“Oracle把Java玩死”的调侃。不过好在Oracle前不久官方声明对Java SE 8的更新支持已经延展到了2019年1月,这对于广泛部署Java的企业来说,Java8免费支持时间的扩展的确是一个好消息。

现在大家最紧张的就是如果未来Java失宠于Oracle,那么Java程序员将何去何从?真的如我们想象中的那么糟糕吗?

选择Java平台意味着获得健康广阔的生态系统,以及丰富的知识、劳动力与相关产品。作为交换,由此带来的技术债务在于,该平台也许无法适应未来的技术演进,因为其所有者不打算继续开发它。现在,你或许可以开发出健康的产品,尽管未来会的开发成本会越来越高,甚至牺牲未来的业务敏捷度。 其他的平台选择都有各自的技术债务。但简而言之,各有各的不同。比如:

  • 选择 Node.js 平台意味着缺少丰富的稳定生态系统。但该平台非常活跃,欣欣向荣,可能会持续发展很长时间,而且 Node.js 人才也越来越多。

  • 选择 Ruby(很可能与 Rails 一起)平台意味着能以合算的成本快速建立起工作系统的基础架构,但坏处是扩展性不佳。

  • 你也可以选择 Microsoft/.NET 生态系统,该系统拥有一些与 Java 平台相似的优点,但缺点是你的公司命运会与另一个企业软件巨头的选择绑定。

当然还会有许多其他选择,其实每个选择归根结底都是利弊权衡的问题。 简而言之,是否选用Java平台作为新项目的基础平台很大程度上是个人决策,Oracle可能厌倦了 Java,但这是否应该影响这个决策呢?当然应该。但是,这绝对不是唯一的考虑因素。

个人认为,将全部职业生涯都赌在Java这一种平台的程序员,也不用过度焦虑和担心,毕竟围绕Java生态系统的技能与知识需求不会在短时间内消失。


从不加班的程序猿


个人认为Java生态过于松散是Oracle缺乏战略掌控的错。

  • Java生态中大量的开源框架无序竞争,让开发人员无所是从,经常为了寻找一个技术解决方案不得不在一大堆类似的框架中比选;Oracle并没有主导生态中强势的技术,而是听之仍之,自生自灭


    ——一门语言被生态所累是可悲的!

  • Java语言自身的面条式风格越来越严重,匪夷所思的各种代码范式让程序员疲于记忆大量的跟具体框架相关的书写规则
    例如:Object.GetValue().ConfigThis().ConfigThat().ConfigOther() ...这样的拉面语法被各种框架过度使用
    ——一门语言被第三方框架绑架也是可悲的!(类似的其他语言的例子诸如Angular.js对于Javascript)

  • Java的开发环境并没有做到极致,主要依赖Eclipse作为IDE,开发效率受到开发环境的制约太严重,例如Eclipse就有Maven,Gradle,Ant等编译环境的配置管理,导致不同的开源工程使用
    不同的配置体系,每个程序员需要花大量的时间来了解这些配置的差异和修改方法,今天要学点Maven的XML配置,明天又要搞定Gradle的Groove语法……
    ——一门语言被开发环境绑架更是可悲的。

Java程序员最佳去处——转型为C#程序员,原因如下:

  • Java和C#语法非常类似,转到C#非常顺当;例如:包引用改import 为using ,类继承改extends 为implement,多写一点代码就搞定了,大部分知识都可以共享,而且未来需要的时候要返回java也是容易的;
  • C#有Linq——一种Java没有的语法特性,这是C#官方定义的一种极为便捷的非传统语法特性,它主导了对集合的全面操作,把程序开发中最乏味的部分解决了。虽然Linq也会导致类似Java那种面条式语句,但是这是一套放之四海而皆准的面条,在所有程序中都可以用。例如:Collection.ToEnumerable().OfType().Select(i=> i.a=conditionA).ToList(),这些方法来自官方框架,在所有程序中都是通用的,长一点问题不大,反而作为一种固定的通用范式。Java有一点理想主义的倾向,导致有时候语法就是一种形式上的桎梏;而C#则要实用主义许多,Linq就是这种突破的表现,为了开发习惯上的实用,不一定要延续一致性的语法原则。除此之外的例子还有扩展方法(向现有类型追加任何方法)等等。
  • 使用C#则可以利用所有.net的生态,而且.net生态几乎由微软主导,尤其在微软收购了Github之后,在开源界C#的生态也将受到微软的管理(有时候选择太多不是好事)。

  • C#拥有目前世界上最好的代码开发环境Visual Studio。VS的各方面功能都是极佳的,对于程序员开发调试都是一大福音,用了VS你会恨死Eclipse。

  • 随着.net core的流行,C#同样具备了跨平台的能力,而且微软还在积极开发.net native编译器,今后用C#开发本地代码程序或许会非常便捷。

总结一下,C#既没有被语法、也没有被第三方框架或者开发环境所绑架,解决方案出来的时候你非常清晰你的路径,而不会被犹豫的选择、晦涩的语法和经常崩溃而且还找不到统一支持的开发环境所困扰。


小宇堂


说点自己的想法。

这件事看起来是oracle对自己推出的jdk版本进行收费,影响面很大,毕竟这么些年下来,使用oracle jdk的企业非常多。像我们公司,rhel里即便自带openjdk,我们也会装一个oracle的版本。

但请注意,oracle只是针对企业收费,对个人并不收费。而且据我所知,oracle收费策略很灵活,不但可以谈价格,还不收开发、测试环境的费用,并且对装了weblogic这类自带jdk中间件的服务器也不收费,所以这个费用远没有想象中那么夸张。加之oracle承诺从11起对openjdk完全兼容,所以各个企业也并非没有选择。我就向公司推荐了zulu。

既然如此,oracle为何还要对自己的jdk版本收费呢?我觉得赚钱是其次,关键是推销云战略,让更多用户选择成本相对较低的oracle云数据中心。虽然jdk收费没那么夸张,但多掏钱了谁也不乐意不是?

所以那些对Java产生的困惑,我觉得完全没必要,oracle至少不会把自己玩死。搞不好oracle哪天看风头不对,又取消收费了呢。

倒是我们这些在底层做技术的小白,真的要coding一辈子吗?


zmd77354349085


一棒子人长篇大论的都是外行。。。

只要spring不收费,apache不收费。java会死?

他们才是java的支柱。至于jdk也就是有的没得而已。


chandler605


有SQL MySQL access 你在怕什么


莫丷雨阑


个人觉得oracle是玩不死java的,java已经很成熟,社区很活跃。就算oracle现在不更新java了也阻碍不了java继续流行下去,因为java一开始设计就很优秀。

java程序员继续玩下去,完全不用担心,可以慢慢往深入方向走:如大数据、机器学习。有些理论是永远不会过时的。

欢迎关注我,小编在java web开发、大数据、知识图谱、机器学习有一些经验,欢迎多多交流~

k6k4


open jdk和oracle jdk都是oracle的,类似mysql一样一个社区版,一个商业版。

大多linux上用的都是openjdk。oracle自己一堆东西都是java写的,那么精明的公司不会把手好牌打烂的。


分享到:


相關文章: