***

**

JAVA 之父高斯林:廉颇老矣,尚能饭否?

**



前不久,TechRepublic 发表了一篇文章讨论关于开发人员喜爱与讨厌的语言。结果很有意思:

Java 在最受欢迎的语言排行榜名列第三,同时在最讨厌的语言中排在第二名。

显然,Java 作为一门开发语言,人们对它的看法形成了两极分化。对此 C++ 的创始人 Bjarne Stroustrup 曾回复到:“这个世上只有两种语言:人们抱怨的语言和没有人使用的语言。”

此言不虚啊。

正因为 Java 的普及度高,不仅 JAVA 被大家抱怨,JAVA 之父也经常被人抱怨。今天我们就来介绍一下创造了这款传奇语言的传奇人物 —— 詹姆斯•高斯林(James Gosling)。

天才的诞生

高斯林出生于加拿大,是一位大人口中的计算机编程天才。在他12岁的时候,就能自己设计电子游戏机,或者帮邻居修理收割机这种技术活。

高斯林大学时期在加拿大卡尔加里大学天文系担任程式开发工读生,1977年获得了计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位。

在卡内基·梅隆大学攻读计算机博士学位时,他编写了多处理器版本的 Unix 操作系统上运行的 Emacs 类编辑器 Gosling Emacs(以C语言编写,使用 Mocklisp 作为扩展语言)。

毕业后高斯林到了 IBM 工作,设计了 IBM 第一代工作站 NeWS 系统,但没有收到公司领导的重视,这也导致他后来跳槽到了 Sun 公司。

1990年,高斯林与 Patrick Naughton 和 Mike Sheridan 等人合作「绿色计划」,后来发展一套语言叫做「Oak」,也就是今天我们所熟知的 Java。

1994年底,高斯林在硅谷召开的「技术、教育和设计大会」上正式展示 Java 程式。

2000年,Java 第一次成为世界上最流行的电脑语言。

JAVA 的起源

Java 语言最开始只是 Sun 计算机(Sun MicroSystems)公司内部研究的一个小项目。

当时一个叫做帕特里克·诺顿的工程师被公司自己开发的 C++ 和 C语言编译器搞得焦头烂额,因为其中的 API 极其难用。所以后来他决定改用 NeXT,同时他也获得了研究公司的一个叫做「Stealth 计划」的项目的机会。

「Stealth 计划」后来改名为「Green 计划」,也就是后来詹姆斯·高斯林加入的工作小组。

他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,因为 Sun 公司预料未来科技将在家用电器领域大显身手,所以这个小组主要也是瞄准下一代智能家电(如微波炉)的程序设计。

团队最初考虑使用 C++ 语言,但是很多成员包括 Sun 当时的首席科学家比尔·乔伊,发现 C++ 和可用的 API 在某些方面存在很大问题。工作小组使用的是嵌入式系统,可以用的资源极其有限。并且 C++ 缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。

最后,他们想要一种易于移植到各种设备上的平台。根据可用的资金,乔伊决定开发一种集 C语言和 Mesa 语言大成的新语言,在一份报告上,乔伊把它叫做「Future」,他提议 Sun 公司的工程师应该在 C++ 的基础上,开发一种面向对象的环境。

最初,高斯林试图修改和扩展 C++ 的功能,他自己称这种新语言为 C++ ++ --,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为「Oak(橡树)」,以他的办公室外的橡树命名。

但就在产品发布前的关键时刻,律师告诉高斯林的团队已经有另外一种语言被命名为「Oak」,他们需要重新取名。

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

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

排在第一位的是 Silk(丝绸)。尽管大家都喜欢这个名字,但遭到高斯林个人的坚决反对而作罢。排在第二和第三的都没有通过律师这一关。

高斯林最喜欢的就是排在第三位的 Lyric(抒情诗)。只有排在第四位的名字、得到了所有人的认可和律师的通过。这个名字就 JAVA。

Java 是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用 Java 来命名或宣传,以彰显其咖啡的品质。Java 语言中的许多库类名称,多与咖啡有关,如 JavaBeans(咖啡豆)、NetBeans(网络豆)以及 ObjectBeans(对象豆)等等。

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

Java 的正式问世,使 Sun 市值大升,一度超过 2000 亿美元,当时所有网络公司都为 Java 配置了专门的开发团队。业内外一致认为,Java 是互联网最有力的推动力量,Java 使无时不在的联网成为可能。

对于当时的几百万开发者来说, Java 就是互联网, Java 就是真金白银,Java 就是自己的未来,Java 就是一切。而 Sun 也第一个喊出了「网络就是计算机」的口号,使互联网迅速发展,遍布全球。

1993年在创立公司的第 11 个年头,Sun 进入财富 500 强榜单。

值得一提的是,在 IBM、微软等企业还没注意到中国市场的时候,Sun 成为了中国市场开拓的第一家海外技术企业,并且成为了直接与中国政府开展技术合作的计算机公司。

JAVA 是最好的语言么?

Java 之父高斯林将 Java 形容为蓝领编程语言。其基本思想是提供一种语言,帮助开发人员完成工作,在这方面 Java 确实取得了很大成功,并且流行到了现在。

根据大数据网站 Indeed 2019年1月公布的各程序语言实际岗位需求数据显示,2019 年最流行的 7 种编程语言对应的岗位需求数量如下:

Java 约 65,000 个岗位
Python 约 62,000 个岗位
JavaScript 约 39,000 个岗位
C++ 约 37,000 个岗位
C# 约 28,000 个岗位
Perl: 约 14,000 个岗位
PHP 约 17,000 个岗位

虽然 Python 来势汹汹,但 Java 目前仍然以微弱的优势排在第一位。

那么,Java 是最好的语言么?

其实,在每个领域都有最合适最匹配的编程语言。

C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。

C++ 是面向对象的 C 语言,是低延迟系统最适合的开发语言之一。

JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳,并且非常灵活,运行速度快、开发效率高。

Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。并且语法简单、语句清晰,应用超广泛。

Ruby 强于 DSL(领域特定语言),在众多编程语言中,Ruby一直是初创公司的绝佳选择。凭借其简单直观的代码,Ruby可以促进软件开发并节省时间。

Erlang 就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。并且很适合用来做快速原型开发之类的。

Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如 Docker、Kubernetes 等。尤其是以太坊的出现,完全是用 Go 来写的,对 Go 语言的促进非常非常大,也拉高了平均工资。

编写网页大家第一选项就是用 PHP,PHP 的成功在于坚定不移地走群众路线,简单实用的东西永远不会过时。

函数式编程有 Lisp,编写 iOS 程序有 Swift/ObjectiveC。

一句话概括,能排在排行榜之上的语言,都是好的语言,在其所在的领域能做到最好。

但是,Java 语言到底有什么优势可以占据排行榜第一的位置呢?

其一,语法比较简单,学过计算机编程的开发者都能快速上手。

其二,在比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,Android 移动终端应用开发等领域具有极强的竞争力。

Java 从出生的那天起,就试图通过新的方式解决软件编写的复杂性。很多人认为 Java 语言做到了它承诺的一切,但 Java 绝不是一门完美的语言,只是在全能方面可能是最好的语言之一。

JAVA之父的困境

Java之父最近一次上热门,是年过花甲的他在 Facebook 上发表了他所遭遇的年龄歧视。

高斯林从甲骨文离职原因:不仅薪酬大大降低,甲骨文连「资深工程师」的职称都木有给,之前高斯林在 Sun 是 VP 级别。此外,最打击人的是,高斯林的话语权也被极大限制,他和 Java 领域的同事,无权决定任何事情。而他只能当当花瓶,代表甲骨文出席各种 Java 公开活动。高斯林自称他的性格不适合做这个,所以选择了离开。

他曾在后来的面试中被HR告知,“通常我们不招你这种年龄的程序员,但你的情况特殊(Java之父身份),所以对你特殊考虑。”

高斯林作为 Java 之父的特殊身份姑且可以让他在硅谷谋求到一份不错的职务,但其他普通的年长从业者可不是那么好过。他们的焦虑和歧视,促使他们从外貌、思想和履历上进行「年轻化」,甚至有部分人通过整容手段来让自己看起来更年轻。

根据统计,美国在职的工作者的平均年龄是42岁,但在硅谷这个数字变得更低。比如苹果公司是31岁,Google和特斯拉是30岁,Facebook 和 LinkedIn 是29岁,而其他公司甚至更年轻。

但回头看那些优秀的年轻程序员,也都正在步入中年,在这个需要大量知识积累、高速发展、不断革新的行业,有一天你一旦发现自己变优秀了,你必然也会突然发现自己也步入中年。在这个行业里即年轻又优秀只是相对。因为这个行业没有长期的虚心、踏实的学习和艰苦的磨练, 是不可能优秀的。

所以关于程序员的中年危机,不必过分担忧,什么行业没有中年危机?不优秀,无论什么行业都会变成无用的中年大叔。我反而认为中年程序员的出路, 比其他行业更多。

千古江山,英雄无觅,孙仲谋处。舞榭歌台,风流总被雨打风吹去。斜阳草树,寻常巷陌,人道寄奴曾住。想当年,金戈铁马,气吞万里如虎。元嘉草草,封狼居胥,赢得仓皇北顾。四十三年,望中犹记,烽火扬州路。可堪回首,佛狸祠下,一片神雅社鼓。
凭谁问,廉颇老矣,尚能饭否?

JAVA 之父高斯林:廉颇老矣,尚能饭否?相关推荐

  1. Java 之父高斯林加入亚马逊 AWS

    (点击上方公众号,可快速关注) 亚马逊 AWS 部门新添一位技术大牛 -- Java 之父高斯林(James Gosling).5月23日,高斯林在其 Facebook 主页发消息证实了这一消息. 是 ...

  2. 詹姆斯·高斯林-JAVA之父

    Java之父 目录 名号来由 职业生涯 言论 个人生活 编辑本段名号来由 Java之父高斯林 Java之父--詹姆斯·高斯林出生于加拿大,是一位计算机编程天才.在卡内基·梅隆大学攻读计算机博士学位时, ...

  3. 程序员潜规则之痛——“JAVA 之父”也遭遇过

    去年的网络热词"保温杯"向我们传递了中年危机.而我们今天所说的"程序员潜规则"无非也是由年龄在程序界引发的危机和歧视,"JAVA之父"高斯林 ...

  4. Java之父22年前写的一段代码,你见过吗?

    Java之父高斯林是一位加拿大的计算机天才. 他创造了伟大的编程语言--Java,在TIOBE排行榜上,Java常年排名第一. 现在这位63岁高龄的祖师爷依然战斗在编程最前线,宝刀不老. 1.Java ...

  5. Java17 新特性确定,Java之父:终于可以和一个长达25年的漏洞说再见了

    Java 17 目前已经进入Rampdown Phase One阶段,所有的功能特性都已经被冻结.这说明Java 17的新特性已经定了,不会再增加新的JEP(JDK增强建议).之所以关心Java 17 ...

  6. 回忆詹姆斯·高斯林的Java时代

    近日据国外媒体报道,被中国程序员戏称为"高司令"的Java创始人詹姆斯·高斯林(James Gosling)周一发表博客文章称,他已经加入了谷歌公司. 我想詹姆斯·高斯林大家都很熟 ...

  7. Java之父——詹姆斯·高斯林

    JAVA之父的由来 1991年,在Sun公司工作期间,高斯林和一群技术人员创建了一个名为Oak的项目,旨在开发运行于虚拟机的编程语言,同时允许程序在电视机机顶盒等多平台上运行.后来,这项工作就演变为J ...

  8. java之父詹姆斯高斯林的传奇人生

    Java之父詹姆斯高斯林的传奇故事 詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为"Java之 ...

  9. ***Java之父:詹姆斯高斯林的传奇人生***

    詹姆斯·高斯林 詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为"Java之父". 1 ...

  10. JAVA之父----James Gosling(詹姆斯·高斯林)

    JAVA之父 詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为"Java之父".(百度 ...

最新文章

  1. 《跃迁 从技术到管理的硅谷路径》读后感
  2. 判断为空时候,如何判断一堆空格为空?
  3. 小米做的这件事,捍卫了你的隐私
  4. C语言经典例13-水仙花数
  5. php 使用redis
  6. openssh 7.4 java使用_openssh/openssl升级到7.4和1.0.2j 源码方式
  7. hdu 1698(线段树区间更新)
  8. 【机器学习基础】机器学习小抄.pdf(像背托福单词一样理解机器学习)
  9. 案例让一个命令在开机的时候自动运行的方法
  10. linux下gcc升级
  11. Java类加载器总结
  12. 信息学奥赛C++语言:小青蛙回来了
  13. 移动开发者如何更好地学习 React Native? | 技术头条
  14. 《软件方法》第8章 分析 之 分析类图——知识篇Part1(20211029更新)
  15. 流体动力学模拟软件Realflow教程,Realflow水花飞溅特效/粒子特效等特效入门教程
  16. 加盟汉庭酒店,后疫情时代稳健的投资方式
  17. shell脚本回车换行_终于搞懂了回车与换行的区别
  18. Python写一个自动化交易程序
  19. EasyExcel解析excel(合并单元格和未合并)
  20. python模拟登录网站_Python爬虫实战之(四)| 模拟登录京东商城

热门文章

  1. 名校400门免费人文社科公开课视频合集!
  2. 学计算机的怎样提升打字速度,如何提高打字速度:电脑键盘指法练习
  3. linux无线蓝牙鼠标失效,无线蓝牙鼠标失灵怎么办 无线蓝牙鼠标失灵解决方法【详解】...
  4. 1123 铲雪车(欧拉回路)
  5. CTFSHOW-MISC入门
  6. Ubuntu18.04安装CAJ阅读器
  7. PS小知识(三)——画圆滑线及虚线
  8. 域名解析中TTL是什么意思?
  9. DongDong数颜色 树状数组,dfs序,统计区间不同数字个数
  10. android高仿ios11系统,安卓仿苹果iOS11主题APP