互联网是有记忆的,而 Java 作为一种编程语言,在支撑这份记忆的过程中,立下了汗马之劳。
5 月 23 日,在这一天,Java 迎来了属于自己的 25 岁生日。
Java 的过去
25 年前的今天,Java 生逢其时。
在计算机革命开始之际,硬件资源的逐渐富余为 IT 工程师们提供了各个层面充足的创新与试错机会,当然这其中也包括了开发工具层。
无论是前期美国计算机科学学者与软件工程师 Ken Thompson 开发的 B 语言,还是后来 Dennis Ritchie 创造的 C 语言、继而 C 语言衍生出了 C++ 等等,当时的开发工具领域早已呈现出百花齐放百家争鸣的盛况。
不过,在彼时单片式计算机系统以其“低廉的价格、强大的功能”风靡互联网圈时,最被工程师们看好的工具备选 C++,因其过于复杂的特性,以及不具备跨平台等功能,让想要在嵌入式应用领域抢占先机的企业与工程师们头疼不已。
正所谓这个世界上「没有完美的软件,也没有完美的开发人员」,既然如此,“改”才是王道。因此,在一家名为 Sun 公司中,由一位 James Gosling 的工程师带领其团队基于 C++,大刀阔斧地进行了改造,他们去掉了 C++ 一些不实用的功能与特性,又结合了嵌入式系统的实时性要求,开发了一款面向对象的 Oak 语言。
经过近三年漫长迭代与辗转,在互联网崛起之际,Oak 在变身并更名为 Java 后,因其面向对象以及”写入一次,随处运行”的可移植性而声名大噪,Sun 公司也于 1995 年 5 月 23 日这一天在 Sun World 会议上正式向外界揭开了 Java 的面纱 。
自此后的多年间,Java 也按照自己的技术轨迹稳步发展:
-
1996 年,JDK 1.0 发布,标志着 Java 成为一种独立的开发工具;
-
1997 年,JavaOne 会议召开,参与者逾一万人,创当时全球同类会议规模之纪录;
-
1998 年,Java 2 企业平台 J2EE 发布;
-
1999 年,Sun 公司发布 Java 三大版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME);
-
2000 年,JDK 1.3 与 JDK 1.4 发布;
-
2001 年,J2EE 1.3 发布;
-
2002 年,J2SE 1.4 发布,自此 Java 的计算能力有了大幅提升;
-
2003 年,J2SEE 1.4.2 发布;
-
2004 年,J2SE 1.5 发布,彼时 Sun 公司为了凸显这个版本的重要性,将 J2SE 1.5 更名为 J2SE 5.0;
-
2005 年,Sun 公司公开 Java SE 6;
-
2006 年,Sun 公司宣布 Java 全线采纳 GNU General Public License Version 2,从而公开了 Java 的源代码;
-
2007 年,Sun Microsystems 公司放弃了对 Java™ 平台的统驭,将权力交给了 Java 开发人员社区;
-
2008 年,JavaFX1.0 发布;
-
2009 年,甲骨文宣布 74 亿美元收购 Sun 公司,。
-
2010 年,JavaEE 6 发布;
-
2011 年,Java 7 发布;
-
2014 年,Java 8 正式发布;
-
2017 年,甲骨文宣布 Java 发布频率改为每六个月一次;
-
2018 年,甲骨文宣布自 2019 年 1 月起,Java SE 8 公开更新将不向没有商用许可证的业务、商用或生产用途提供。
至今,Java 已渗透到了企业级应用、游戏、嵌入式设备、桌面级应用等各个场景中。
相关阅读:
历经波折
最初得益于 Java 虚拟机支持多个硬件平台和操作系统,Java 小程序可以从网页运行。当时如 IBM、Apple、Adobe、HP、Oracle、Netscape 和微软等各大科技巨头公司都纷纷停止了自己的相关开发项目,竞相购买了 Java 使用许可证,并为自己的产品开发了相应的 Java 平台。
不过也正因此,在过往 25 年间,围绕 Java 技术核心,有两大让业界颇为关注的诉讼案。
第一起是 Sun 和微软之间关于微软在 Windows 中使用 Java 的问题。
1997 年,Sun 公司一纸诉讼书将微软起诉至美国加州地方法院,原因是 Sun 公司认为,在微软使用 Java 技术签订的合同时,微软在自己的 Java 产品中做了“不恰当修改”违反了合同中承诺向用户提供 Java 兼容产品的条款。
经过漫长的调解,最终这一场官司于 2001 年,微软同意向 Sun 公司支付 2000 万美元和解才结束。自此,虽然微软也可以继续采用 Sun 公司开发的 Java 技术的现有产品,不过,将技术握在自己手中毕竟更为自由,于是 2001 年 7 月,微软推出了 .NET 平台,希望与 Java 有一战。
另外,还一起关于 Java 的知识产权纠纷,更为长久,至今仍未有定论,它就是后来收购了 Sun 公司的甲骨文和谷歌之间的 Java 知识产品纠纷案。
2009 年,甲骨文指控谷歌在 Android 开发中滥用了 Java API 版权,并直接复制了 11330 多行代码,侵犯了自己的知识产权。
经过近十年的激烈交锋,2018 年,联邦巡回上诉法院认定安卓侵权,Google 败诉并要进行 88 亿美金赔偿。
2019 年,Google 上诉,要求美国最高法院进行最终裁决,2019 年 11 月最高法院同意审理。而日前,Google、Oracle 均向美国最高法院提交了自己的陈述,不过因为今年以来全球受疫情的影响,该起案件最终定论如何尚未可知。
不过,现实来看,无论最终判罚的结果如何,终将在一定程度上影响移动开发中使用 Java,甚至还会影响所有软件开发。
Java 当下
刨除外在的商业利益关系,回归到 Java 编程语言本身,在 25 年后的今天,凭借着面向对象、跨平台、可移植、高性能等优势,Java 横扫各大编程语言榜单,期间虽经历了 Kotlin、Python、Go 等后起之秀扬言“取而代之”的挑战,却依旧被业界称之为编程语言界的常青藤,也成为企业应用开发主流的存在。
根据甲骨文的数据,2017 年全球估计有 900 万 Java 开发人员。与此同时,Java 也催生了一个巨大的工具生态系统,从 Spring 框架到应用程序服务器,从 IBM、红帽和甲骨文等公司到 JavaFX 富媒体平台,Java 身影无处不在。
在国内环境中,也有大量的企业采用 Java,以阿里巴巴为例,其不仅在生态上拥有 14000 开发者、90000 应用实例、内部有 1000000 JVM 实例等,在 Spring、Spark、HBASE 等技术栈中也均有 Java 应用。
Java 的未来
虽然目前 Java 的更新速度无人能及,开发者也叫苦不堪,直言“学不动”。不过 Java 基于自身的痛点仍在不断改进中,
在两个月前发布的 Java 14 中,提供了16个主要的改进和变更,包括两个孵化器模块、三个预览特性、两个弃用的功能以及两个删除的功能。
近日,Oracle Java 平台组首席架构师 Mark Reinhold 在 OpenJDK 社区中提出了一项建议,将解决长期 Java 的难题,包括启动时间慢、性能达到峰值的时间缓慢以及占用空间大等问题。
历经风霜,我们不能保证多年后,Java 仍是主流,但在当下,Java 仍是编程之王,Java,25 岁,生日快乐!
原创文章,作者:岳阳海纳,如若转载,请注明出处:http://news.yy-accp.com/archives/3321