专栏首页cwl_Java速读原著-Java核心技术(Java 发展简史)

速读原著-Java核心技术(Java 发展简史)

1.4 Java 发展简史

本节将介绍 Java 的发展简史。这些内容来自很多出版资料(最重要的是 SunWorld 的在线杂志 1995 年 7月刊上对 Java 创建者的专访。)

Java 的历史要追溯到 1991 年,由 Patrick Naughton 和 James Gosling (一个全能的计算机奇才)带领的 Sun 公司的工程师小组想要设计一种小型的计算机语言, 主要用于像有线电视转换盒这类的消费设备。由于这些消费设备的处理能力和内存都很有限, 所以语言必须非常小且能够生成非常紧凑的代码。另外, 由于不同的厂商会选择不同的中央处理器( CPU), 因此这种语言的关键是不与任何特定的体系结构捆绑在一起。这个项目被命名为“ Green”。

代码短小、 紧凑且与平台无关, 这些要求促使开发团队设计一个可移植的语言, 可以为虚拟机生成中间代码。

不过, Sun 公司的人都有 UNIX 的应用背景。因此, 所开发的语言以 C++ 为基础, 而不是 Lisp、 Smalltalk 或 Pascal。不过, 就像 Gosling 在专访中谈到的:“ 毕竟,语言只是实现目标的工具,而不是目标本身”。Gosling 把这种语言称为“ Oak ”(这么起名的原因大概是因为他非常喜欢自己办公室外的橡树)。Sun 公司的人后来发现 Oak 是一种已有的计算机语言的名字,于是, 将其改名为 Java。 事实证明这是一个很有灵感的选择。

1992 年, Green 项目发布了它的第一个产品,称之为“ *7”。这个产品具有非常智能的远程控制。遗憾的是, Sun 公司对生产这个产品并不感兴趣, Green 项目组的人员必须找出其他的方法来将他们的技术推向市场。然而, 没有一个标准消费品电子公司对此感兴趣。于 是,Green 项目组竞标了一个提供视频点播等新型服务的有线电视盒的项目,但没有成功(有趣的是,得到这个项目的公司的领导恰恰是开创 Netscape 公司的 Jim Clark。Netscape 公司后来对 Java 的成功给予了很大的帮助)。

Green 项目(这时换了一个新名字—“ First Person 公司”) 花费了 1993 年一整年以及 1994 年的上半年, 一直在苦苦寻求其技术的买家。然而,一个也没有找到( Patrick Naughton, 项目组的创立人之一,也是完成此项目大多数市场工作的人,声称为了销售这项技术, 累计飞行了 300 000 英里)。1994 年 First Person 公司解散了。

当这一切在 Sun 公司发生的时候, Internet 的万维网也在日渐发展壮大。万维网的关键是把超文本页面转换到屏幕上的浏览器。1994 年大多数人都在使用 Mosaic, 这是一个 1993年出自伊利诺斯大学超级计算中心的非商业化的 Web 浏览器( Mosaic 的一部分是由 Marc Andreessen 编写的。当时, 他作为一名参加半工半读项目的本科生, 编写了这个软件, 每小时的薪水只有 6.85 美元。他后来成了 Netscape 公司的创始人之一和技术总监, 可谓名利双收。)

在接受 SunWorld 采访的时候,Gosling 说在 1994 年中期, Java 语言的开发者意识到: “ 我们能够建立一个相当酷的浏览器。我们已经拥有在客户机 / 服务器主流模型中所需要的体系结构中立、实时、 可靠、 安全—这些在工作站环境并不太重要, 所以, 我们决定开发浏览器 实际的浏览器是由 Patrick Naughton 和 Jonathan Payne 开发的, 并演变为 HoUava 浏览器。 为了炫耀 Java 语言超强的能力, HoUava 浏览器采用 Java 编写。设计者让 HoUava 浏览器具有在网页中执行内嵌代码的能力。 这一“ 技术印证” 在 1995 年 5 月 23 日的 SunWorld上得到展示, 同时引发了人们延续至今的对 Java 的狂热追逐。

1996 年年初,Sun 发布了 Java 的第 1 个版本: 人们很快地意识到 Java1.0 不能用来进行真正的应用开发。的确, 可以使用 Java 1.0 来实现在画布上随机跳动的神经质的文本 applet,但它却没有提供打印功能。 坦率地说, Java 1.0 的确没有为其黄金时期的到来做好准备。后来的 Java 1丨弥补了其中的大多明显的缺陷 . , 大大改进了反射能力,并为 GUI 编程增加了新 的事件处理模型:不过它仍然具有很大的局限性。

1998 年 JavaOne 会议的头号新闻是即将发布 Java 1.2 版。这个版本取代了早期玩具式的GUI, 并且它的图形T.具箱更加精细而具有可伸缩性,更加接近“ 一次编写, 随处运行” 的承诺, 在 1998 年 12 月 Java 1.2 发布 7天之后, Sun 公司市场部将其名称改为更加吸引人的“ Java 2 标准版软件开发工具箱丨.2 版”。

除了‘ 标准版’ 之外,Sun 还推出了两个其他的版本:一个是用于手机等嵌人式设备的‘ 微型版”;另一个是用于服务器端处理的“ 企业版”。 本书主要讲述标准版。

标准版的 1.3 和 1.4 版本对最初的 Java 2 版本做出了某些改进, 扩展了标准类库,提高系统性能。 当然,还修正了一些 bug。在此期间, Java applet 采用低调姿态,并淡化了客户端的应用,但 Java 却成为服务器端应用的首选平台。

5.0 版是自 1.1 版以来第一个对 Java 语言做出重大改进的版本(这一版本原来被命名为1.5 版,在 2004 年的 JavaOne 会议之后,版本数字升至 5.0 )。经历了多年的研究,这个版本添加了泛型类型(generic type )(类似于 C++ 的模板,) 其挑战性在于添加这一特性并没有对虚拟机做出任何修改。 另外, 还有几个受 C# 启发的很有用的语言特性:“ for each” 循环、 自动装箱和注解。

版本 6 ( 没有后缀 .0 ) 于 2006 年年末发布。 同样,这个版本没有对语言方面再进行改进。但是,改进了其他性能,并增强了类库。随着数据中心越来越依赖于商业硬件而不是专用服务器,Sun Microsystems 终于沦陷, 于 2009 年被 Oracle 收购 _ Java 的开发停滞了很长一段时间。直到 201丨年 Oracle 发布了 Java的一个新版本,Java ?, 其中只做了一些简单的改进。 2014 年 ,Java 8终于发布,在近 20 年中这个版本有了最大的改变。Java 8 提供了一种“ 函数式” 编程方式,可以很容易地表述并发执行的计算。 所有编程语言都必须与时俱进,Java在这方面显示出非凡的能力。 表 1-1 展示了 Java 语言以及类库的发展状况。可以看到,应用程序编程接口(API) 的规模发生了惊人的变化。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java基础-初识Java

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • Java基础-Java的特点

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • Java基础-开发前言

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明...

    cwl_java
  • Java 开发者不容错过的 12 种高效工具 转

    Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中...

    斯文的程序
  • Java程序员必读的9本书

    本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明...

    技术小黑屋
  • 如何识别不同的编程语言(上)

    漫谈编程语言:数量 这又是一个有趣的话题~~,要知道编程语言有那么的多。引自Quora上一个相关问题的答案,从ABC到Z Shell就有256个。 但是这并不是...

    Phodal
  • 学编程的起点——高级语言大锅烩

    学知识前总想说点鸡汤,想喝的朋友就看看,不想喝的就直接看干货吧,就当鸡汤是给我自己喝的。

    泰斗贤若如
  • 新痛点:APT组织PawnStorm 0Day如何绕过Java点击播放保护

    几个月以前,趋势科技发现了APT组织Pawn Storm利用之前未经披露的Java漏洞(CVE-2015-2590)进行攻击。在那之后,我们注意到一个被用于染过...

    FB客服
  • javaSE基础——常见的dos命令即其他

        常用的DOS命令    dir(directory) :    列出当前目录下的文件以及文件夹  md(make directory) : 创建目录...

    Gxjun
  • Java基础-初识Java

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java

扫码关注云+社区

领取腾讯云代金券