Java 于 25 年前(1995 年 12 月 4 日)首次向公众推出。Java 最初开发仅用了 10 天时间,便迅速成为最受欢迎的编程语言之一,如今全球有数百万的开发人员每天都在使用它。
2020 年是它的 25 周年纪念日——对于这个已经成为最受欢迎的编程语言之一,这无疑是一伟大里程碑。
Java 是前端开发的首选语言,后面并催生了微软的 Type,它是 Java 的超集,具有更强的可选类型系统,供开发人员在浏览器中运行时编译成 Java。
Java 对 Web 的影响是巨大的。科技巨头也已经拥抱了 JS。除了 Google 的 V8,还有很多开源项目,例如 Facebook 的 React 和 Google 的 Angular,他们有助于在智能手机和桌面上推广网络应用程序。
Cory House 是开发人员培训网站 Pluralsight 的一名 Java 教育工作者。他回忆说,早期的 Java很难确定是否能成功。
“Java 是几天内就完成了,最初只在一个浏览器中使用。微软的第一个浏览器附带了他们自己风格的 Java 叫 J。今天,Java 还被用于构建桌面应用、移动设备应用、健身追踪器、机器人和众多嵌入式系统。它甚至是詹姆斯·韦伯太空望远镜的一部分。这个望远镜使用 Nombas 的 ES1 级嵌入式 Java,应用于板载控制软件部分。”Cory House回忆道。
“我们可以用面向对象的或函数式的方式编写代码。由于 Java 有类似于 c 的语法,因此使用过其他类似 c 语言的人对它很熟悉。Java 通过不断接受其他语言的好点子而保持着“更新”。”
Pluralsight 的另一位作者 Jonathan Mills 指出,Java 已不再局限于浏览器。他说:“现在,Java 已经发展成为一个庞大的生态系统,对软件开发的每个领域都具有影响。”
微软的 Type 在 GitHub 上越来越受欢迎,这要归功于基于 Java 的大型项目的存在,但它也可能被 Web Assembly 带来的新兴技术所取代。
WebAssembly 是一个虚拟指令集架构,它支持 web 上的高性能应用程序,并为 web 上更多的 AI 搭建了平台,这些 AI 可以用于视频和音频编解码器、图形和加密计算。
Mills 说:“在构建 Java 应用程序时,Java 代码会按原样发送到浏览器,并在运行时在浏览器中进行编译和运行。WebAssembly 通过在部署之前编译代码来简化此过程,并有望在此过程中显着提高性能”。
“当构建图形或计算密集型的复杂 Web 应用程序时,这非常有用。然而,目前最主要的障碍是与 WebAssembly 相关的最杰出的语言是 Rust 和 C。Java 之所以快速发展,部分原因是因为易用性和快速开发风格,C 和 Rust 都没有这种品质。”
在 CERN 工作时,蒂姆·伯纳斯·李(Tim Berners-Lee)在一份名为“信息管理:提案”的文档中提出了他对网络的构想。
NCSA Mosaic,或简称 Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器。它是由伊利诺伊大学厄巴纳-香槟分校的 NCSA 组织在 1993 年所发布,并于 1997 年 1 月 7 日正式终止开发和支持。在当时大受欢迎。Mosaic 算是点燃了后期互联网热潮的火种之一。
后来网景导航者浏览器的开发工作,聘用了许多原有的 Mosaic 浏览器工程师,但是没有采用 Mosaic 网页浏览器的任何代码。传承网景浏览器代码的后裔为 Firefox 浏览器。
马克·安德森(Marc Andreessen)设想了一个更具动态性的 Web,并认为需要一种易于 Web 设计者使用的语言。他招募来了 Brendan Eich,并在 10 天之内于为 Netscape 浏览器编写了原型。该语言最初称为 Moca,后来称为 Live,最后重命名为 Java(作为 Java 的辅助语言)。Java 的正式发布日期是 1995 年 12 月 4 日。
Microsoft 对 Netscape 的 Java 进行了逆向工程,创建 J 并将其作为 Internet Explorer 3 的一部分。引入了不符合标准的专有扩展,使开发人员很难创建一个在所有浏览器中都能正常运行的网站。最终,Internet Explorer 成为浏览器大战中的主导软件。
1998 年 1 月 23 日,在浏览器市场份额急剧下降的情况下,Netscape 宣布它将发布 Netscape Communicator 5.0 的源代码,希望它将成为一个受欢迎的开源项目。Mozilla 项目就是这样诞生的。
该版本增加了正则表达式,更全的字符串处理,新的控制语句, try/catch 异常处理,更严格的错误定义,数字输出格式和其他增强功能。由于 ECMA 4 停滞,该版本盛行了十年。
Douglas Crockford 指定了 JSON(Java 对象表示法),这是一种基于 Java 子集的轻量级数据交换格式。JSON 数据在前端更易于加载和使用,并且到本世纪末将取代 XML,成为 Web 上的数据交换格式。
杰西·詹姆斯·加勒特(Jesse James Garrett)创造了 AJAX(异步 Java + XML)一词,用以描述新兴 Web 应用程序(如 GMail 和 Google Maps)背后的异步技术,该技术允许网页动态更改内容而无需重新加载。
Google 于 2008 年 12 月 11 日发布了 Chrome 浏览器,该浏览器使用了与 Safari 相同的 WebKit 渲染引擎和一个更快的 Java 引擎 V8。不久之后,针对 Windows,OS X 和 Linux 平台的开源版本以 Chromium 的名称发布。凭借快速的发布周期和对速度的关注,谷歌浏览器最终取代了所有其他浏览器。
Node.js 最初由 Ryan Dahl 于 2009 年 3 月基于 Google 的开源 V8 Java 引擎开发。它为在 Web 服务器上使用 Java 铺平了道路。Node.js 函数是非阻塞的,允许服务器处理大量并发连接。它代表了“ Java 无处不在”范例,统一了围绕一种编程语言的 Web 应用程序开发。
ECMA 5 是 ECMA 3 发布十多年后的 2009 年 12 月发布,是ECMA 3 的增量升级版。雄心勃勃的 ECMA 4 被正式放弃,代号为 Harmony,某些功能成为 ECMA6。原始 ECMA 4 计划的其他功能将被删除以在后续版本中采用。形成了一个新的决心,即在整个 TC39 的共识下开发任何新的想法,以防止将来发生分裂的可能性。
Type 是一种 Java 的超集,它将静态类型添加到语言中,经过微软两年的内部开发,于 2012 年 10 月首次发布(0.8版本)。
React 是一个 Java 库,用于构建可组合的用户界面,由 Jordan Walke 于 2013 年开发并开源。它由 Facebook 和一个由开发者和公司组成的社区共同维护。
由 Evan You 创建的 Vue 是一个开放源代码, 它是一个 model–view–viewmodel 的前端 Java 框架,用于构建的用户界面和单页应用程序。该项目的第一个源代码提交于 2013 年 7 月,Vue 于 2014 年 2 月首次发布。
Next.js 是由 Vercel 创建的开源 React 框架。它可以唯一满足静态和动态网站及应用程序的需求。Next.js 的增量静态再生为用户提供了静态站点生成器的所有功能,并且可以添加无限数量的页面并在以后更新它们-无需重建整个站点。
Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶段来处理。
与使用虚拟(virtual)DOM 差异对比不同。Svelte 编写的代码在应用程序的状态更改时就能像做外科手术一样更新 DOM。
WebAssembly(缩写为Wasm)是基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为可移植目标,用于编译高级语言(如 C/C++/Rust),从而可以在 Web 上为客户端和服务器应用程序进行部署,前驱技术是来自 Mozilla 和 Google Native Client 的 asm.js。
众所周知,Node.js 和 Java 有着千丝万缕的关系,也有着很多的合作,但他们属于不同的 fondation,办起事来非常不方便,所以有必要将这两个基金会合并以提高效率了。
对于 Java 的未来,有一件事很清楚:协作是关键。“浏览器大战”已经过去了,用户和开发人员都不想重温由于缺乏互操作性而带来的问题。
幸运的是,开源已经盛行,并代表着 Java 语言和社区的开发和治理的前进之路。返回搜狐,查看更多