Java命名的由来

Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关:如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans(对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。

Java的名字如何得来,主要两种说法,一种是开发小组开会讨论名字未果,于是一起去了一家咖啡店……;一种说法是,Java 实际上是几个核心开发人员的名字缩写,其中的J当然就是Jame Gosling了。

就在Sun公司把自己的股票代码改为Java后不久,Java之父Jame Gosling接受Sys-con.com的采访,揭开了Java得名的来龙去脉。当时已经到了产品发布之前的关键时刻,谁知Gosling自己选择而且大家一直没有异议的Oak一名却被律师否决了——已经有另外一种语言命名为Oak。所以,重新取名成了头等大事。


如果通过正式程序来注册产品的名称将即费时又费钱。简姆斯 古斯林决定通过市场部门,请来了一个命名顾问,召开命名征集会。当时,因为没有一个合适的名字,他们不得不延后这个语言的面世。

在命名征集会上,大家提出了很多名字。最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。

排在第一位的是Silk(丝绸)。尽管大家都喜欢这个名字,但遭到简姆斯 古斯林的坚决反对而作罢。排在第二和第三的都没有通过律师这一关。简姆斯 古斯林最喜欢的就是排在第三位的Lyric(抒情诗)。只有排在第四位的名字、得到了所有人的认可和律师的通过。这个名字就是Java。

是谁在命名征集会上提议Java的呢? 简姆斯 古斯林回忆道,“市场部组织了命名会,命名顾问主持了会议,我们喊叫着列出了一大堆名字。我记得第一个提议名字Java的是马克 奥颇门(Mark Opperman)。”

马克 奥颇门是在一家咖啡店与同事品尝咖啡时得到灵感的。Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用Java来命名或宣传,以彰显其咖啡的品质。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。

从此一个即好听又好记、具有强大的生命力的编程语言Java诞生了。

总之,Java就这样在一片混乱中诞生了。

Google一下,发现了Mark Opperman的简历。比较有趣的地方是,他在加入Sun之前,曾经任教于北京大学,教C和Unix,会说中文和日文。目前创办了两个非盈利组织,致力于促进全世界学生之间的理解,以有助于世界和平。另外还有一个公司叫opcode design,主要从事与中日的技术合作。看来北京该有人和他认识啊。公司网站上还有这样一张照片,好像是多年前北大南门外的那条街道,现在成了单行线的那个。

早期的Java

语言最开始只是Sun计算机(Sun MicroSystems)公司在1990年12月开始研究的一个内部项目。Sun计算机公司的一个叫做帕特里克·诺顿的工程师被公司自己开发的C++和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth计划”的项目的机会。

“Stealth计划”后来改名为“Green计划”,詹姆斯·高斯林和麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,Sun公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家比尔·乔伊,发现C++和可用的API在某些方面存在很大问题。

工作小组使用的是嵌入式系统,可以用的资源极其有限。很多成员发现C++太复杂以至很多开发者经常错误使用。他们发现C++缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。

根据可用的资金,乔伊决定开发一种集C语言和Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议Sun公司的工程师应该在C++的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C++的功能,他自己称这种新语言为C++ ++ –,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的橡树命名。

Java和互联网

1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。

随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

1994年6月,在同约翰·盖吉、詹姆斯·高斯林、比尔·乔伊、帕特里克·诺顿、韦恩·罗斯因和埃里克·施密特经历了一场历时三天的头脑风暴后,团队决定再一次改变努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器,WebRunner,后来改名为HotJava。

1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年3月23日SunWorld大会上进行的。升阳公司的科学指导约翰·盖吉宣告Java技术。这个发布是与网景公司的执行副总裁马克·安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,Sun公司成立了Java业务集团,专门开发Java技术。

由于商标搜索显示Oak已被一家显卡制造商注册。于是同年,Oak被改名为Java。当使用十六进制编辑器打开由Java源代码编译出的二进制文件(.class文件)的话,最前面的32位将显示为CA FE BA BE,即词组“CAFE BABE”(咖啡屋宝贝)。

1995年5月23日,Java语言诞生,1996年1月,第一个JDK-JDK1.0诞生,开启了一新编程语言的伟大逆袭之旅。

参考:

https://zh.wikipedia.org/wiki/Java#%E6%97%A9%E6%9C%9F%E7%9A%84Java
https://blog.51cto.com/yqgao/157060

差点把Java命名成了Silk相关推荐

  1. 修炼成高薪Java程序猿——从优秀的Java命名规范开始

    优秀的Java命名规范 1命名规范 1.1 package (*)  包名全部由小写的ASCII字母组成,用"."分隔.  在此项目中,所有的包均以"com.proste ...

  2. Java 命名规范(非常全)

    欢迎关注方志朋的博客,回复"666"获面试宝典 在本文中,将从大到小,从外到内,总结Java编程中的命名规范.文中将会涉及到日常工作中常见的命名示例,如包命名,类命名,接口命名,方 ...

  3. Java 命名规范(非常全面)

    来源:https://www.ramostear.com/blog/2020/03/20/2vxdaqjq.html 最近发现很多初级程序员写代码时很不规范,比如方法名 类名 等,如果遇到有代码洁癖的 ...

  4. 关于java变量命名,介绍阿里JAVA命名规范及IDEA实时检测插件的使用以及CODELF取名神器

    JAVA开发中,我们经常会为如何来命名烦心. 有大神曾说计算机科学的两件难事:缓存失效和命名 的确,程序员最头疼的事:命名 但其实,有规范可以遵循.还有工具帮我们取名,更有插件帮我们实时检查是否违反规 ...

  5. Java 命名规范---阿里Java开发手册

    0)Service/DAO层方法命名规约 1)获取单个对象的方法用get做前缀. 2)获取多个对象的方法用list做前缀. 3)获取统计值的方法用count做前缀. 4)插入的方法用save(推荐)或 ...

  6. Java命名规范--阿呆

    最近发现很多初级程序员写代码时很不规范,比如方法名 类名 等,如果遇到有代码洁癖的领导肯定会被骂(什么垃圾代码),下面分享一篇不错的规范文章 在本文中,将从大到小,从外到内,总结Java编程中的命名规 ...

  7. Java工程师成神之路 | 2022正式版

    基础篇 面向对象 什么是面向对象 面向对象与面向过程 面向对象的三大基本特征 面向对象的五大基本原则 封装.继承.多态 什么是多态 方法重写与重载 Java的继承与实现 Java的继承与组合 构造函数 ...

  8. java命名规范怎么定义?java命名规则

    在java刚刚入门时,我们可能首先就要了解java中一些常规的命名规范了,这也是必要的,否则当你以数字开头作为类名,都不知道为啥会报错.我们一起来看看,java命名规范是怎么定义呢?java命名规则和 ...

  9. java源程序是由类定义_无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件...

    无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件 答:× 小儿头皮静脉输液时如误注入动脉,局部表现为: 答:呈树枝状苍白 人民群众既是历史 ...

最新文章

  1. 【转载】如何去除C#Strings中的空格?
  2. Linux驱动之混杂设备(misc)
  3. c++11 Type Alias
  4. 消息队列入门案例-环境搭建
  5. easyexcel获取所有sheet页名称_老板让我汇总多个sheet,我不会,同事却说使用PQ仅需2步搞定...
  6. 9.JSP运行原理与JSP页面的基本结构
  7. CCIE-LAB-第二篇-端口聚合LACP+RSTP
  8. maven 引入war
  9. 第四周作业 简单地邮件发送实现
  10. 程序员如果不能干到退休,那程序员的路何去何从?
  11. Jafka来源分析——文章
  12. The Penn Discourse TreeBank 2.0
  13. Gym 100801D Distribution in Metagonia (数学思维题)
  14. 油猴脚本管理器的超详细下载安装使用教程—— 个性化浏览器
  15. pagehelper版本升级导致pageSize为0时无法查询全部数据
  16. 13.2.3 VAM服务器的配置步骤及示例(2)
  17. Android微信浏览器标题,微信浏览器设置网页标题
  18. 源码解析:Spring源码解析笔记(五)接口设计总览
  19. Android 连接USB默认选中MTP模式
  20. 使用HTML语言和CSS开发商业站点

热门文章

  1. 达芬奇pro核心板QSPI Flash读数据实验
  2. 调用Mathpix API 自制Mathpix snipping (每月1000次免费!!!)
  3. 玖逸云黑v1.5-不仅仅是云黑系统
  4. 独立开发变现周刊(第64期): 一套图标,6天6位数收入
  5. 芯片行业都难在哪儿?这篇说得最详细!
  6. Deprecation: analyzer request parameter is deprecated and will be removed in the next major release.
  7. 我辞退了一位简历造假的程序员...
  8. 完美替代Chrome?Microsoft Edge浏览器Chromium版评测
  9. 第二章 网页基本代码
  10. 蚁群算法详解-解决TSP问题