Java 之父:你至少得会两门语言

很多刚入门的同学常常让我推荐一门编程语言,我一般在静态语言堆里会推荐一门,这门语言就是 Java。Java 是一门中规中矩的工业级别的编程语言,自 1995 年正式问世以来,从崛起、问鼎、睥睨天下到进化、平稳、丢掉兵器谱头把交椅,它经历了 Sun 的辉煌与坠落,微软的崛起与纷争,互联网的起兴、泡沫与复兴,移动互联网的大发展和 Android 平台的突飞猛进。

Java 语言,就像互联网大航海时代的一艘大船,虽然它的语法没那么灵活,也没那么强大,有时候看起来甚至是滞重的、笨拙的,但是,Java 在二十多年来每个浪潮的转折点都恰到好处的站在了浪潮之巅。时至今日,Java 作为一门优秀的编程语言和强大的生态平台,依然屹立于程序世界之巅。

今天,我就跟你聊一聊 Java 的创造者,Java 之父 James Gosling。以前写过这个话题,半途而废了,今天写完。

作为很早使用 Java 的那一代老程序员,我们都把他老人家亲切的称为高司令,为了方便,下面我会称呼他为高斯林。

高斯林今年已经有 65 岁高龄了,按理说这个年纪早该退休颐养天年,但他却没有,2017 年还从 Liquid Robotics 跳槽去了 AWS,和一群四五十岁的重量级计算机科学家们共事。突然想起前段时间热议的“35 岁程序员危机”,其实年龄从来都不是问题,只要保持思考和学习,在职场中就有竞争力。

高斯林的同事也给了他很高的评价:

我从未见过任何一个人,对技术有如此强大而富有创造性的远见,并且能够清晰地看到未来。当大家都在寻找脚下问题的解决方案时,高斯林却在一万英尺的高空绘制新航线并修建道路。与高斯林一起工作是种乐趣,他既能描绘出看不见的路线,又能自然而然地让团队参与其中。

不过高斯林最初的兴趣爱好并不是计算机编程,而是手工制作。在他 6 岁的时候,就被祖父废料厂里的拖拉机、脱粒机等农场设备迷住了;到了 12 岁,他不仅会修理收割机,还把垃圾桶里翻出来的元件稍作改造,设计出了一台电子游戏机。

高斯林真正爱上计算机编程是在卡尔加里大学的计算机中心,这所大学离高斯林家只有 1 英里,他在十几岁的时候就经常跑去那里玩。在那里,他展示出了惊人的天赋,就像迷恋手工制作一样,他对编程的热爱只增不减。高斯林 15 岁的时候获得了一份物理系兼职工作,通过编写代码来帮助分析加拿大 ISIS-II 卫星传回的数据。在卡耐基梅隆大学攻读研究生和博士的时候,他又肩负着将学校系统升级为 Unix 的重任,其实最简单的办法就是编写一个语言编译器,帮助逐行修剪旧机器上的程序,让它可以在新机器上运行。高斯林却采用了更大胆的做法:他创建了一个机器语言转译器,既可以解决当前的问题,也为更多程序在不同的计算机上运行提供了通用的解决方案。这也给高斯林奠定了开发 Java 虚拟机的技术基础。此后,高斯林一直思考如何编出一种流传于网络、可以在任意机器上运行的通用编码。

1984 年,高斯林正式加入 Sun,他在那里工作了 26 年,并带领团队创造出了二十世纪末和二十一世纪初最伟大的产品之一 Java。其实在 Sun 创办初期,公司创始人就曾邀请高斯林一起创业,不过高斯林受父亲影响,得了一种叫做“创业过敏”的病。高斯林的父亲是个创业者,搞过油田设备和房地产销售,也做过物流工作。他总是不断寻找生意,经常从很远的地方给高斯林打来电话,电话那端的声音常常很飘渺,这种四处飘摇的生活给年幼的高斯林留下了深刻影响。以至于后来一说到创业,高斯林就会浑身难受,比起硅谷大多数人热衷于开创自己的事业,高斯林更喜欢去创造产品并看着它们投入使用。

直到今天,高斯林也没有创办自己的公司,但是他创造的 Java 语言让无数程序员写出或即将写出一大批改变互联网、甚至改变命运的软件和服务。其实高斯林在最初的时候没有想过自己会创造一种全新的编程语言,一开始,他只是编写改进 C++ 语言的修补代码,目的也只是为了让公司的掌上样机项目成功,这个产品有点类似于机顶盒,可以通过它控制电视、摄像机、立体音响等设备与无线网络进行连接。改着改着他发现,要想解决网络环境安全问题,不是增加一些东西就可以做到的,而是需要深入最底层,创造新的机器语言。

1992 年,高斯林用了一整年的时间来研发新语言,并把这个语言命名为 Oak,名称来自于他办公室窗外的那棵橡树,这也是 Java 语言的雏形。后来,Oak 经过不断改造,最终在 1995 年 5 月以 Java 的名称正式发布。据高斯林后来回忆,Java 这个名字是奥珀曼(Mark Opperman)在头脑风暴会上提出来的,当时大家在征集名字,奥珀曼面前的一杯咖啡上正好写着 Java,Java 是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。于是这个好听又好记的名字就被采用了,Java 甚至还把一杯热气腾腾的咖啡当作图标。

1996 年,Sun 成立了 Java 业务集团,专门开发 Java 技术,同年,第一个 JDK1.0 诞生。短短几个月,就有约 8.3 万个网页应用了 Java 技术来制作。1997 年 2 月,JDK1.1 正式发布,一年后下载量就超过了 200 万次。毫无疑问,Java 成了当时最受欢迎的计算机编程语言之一。

然而 Java 的成功却让高斯林饱受质疑,因为很多技术要素在 Java 诞生之前就被提出过,比如面向对象编程、虚拟机技术、网络编程等。但高斯林的难得之处在于,他将这些技术要素完美的组合在一起,并进行了设计和实现,形成一门全新的编程语言,这并不是一件容易的事情。所有的创新都是递增的,在原有知识基础上,用创造性的观点对其进行全新的组织,Java 正是如此。它不仅借鉴了 C++ 的长处,还吸收了 Lisp、Smalltalk 以及 Pascal 的特点,最终将这些环境平滑地组合在一起。

高斯林对于计算机编程也有自己的理解,他认为计算机编程是门艺术,和精力守恒定理一样:你投入到程序中的精力越多,用户使用时遇到麻烦和折腾的精力就会越少,程序员要做的,正是在开发端和用户端之间尽量平衡开发和用户使用的复杂度。

Java 充满了计算机科学的思想,但它同时也是一种为了实用而设计的计算机语言,它简练、机智、实用,刚开始用就像人人可以上手的太祖长拳,进入某个阶段以后才恍然大悟,原来这就是江湖追逐的九阴真经。在中国,程序员们用这门语言实现了全世界最大的电子商务交易平台,嗯,就是阿里巴巴。

其实任何成功都不是一蹴而就的,Java 也是如此,优秀的技术、时机、运气和市场营销都很重要。Sun 在当时召集了最好的工程师组成小团队,让他们放手去做,团队也曾在编程语言的简洁性和功能性上出现分歧,公司创始人乔伊(Bill Joy)将 Java 视为未来 30-40 年的唯一一次机遇,他想把一切都纳入其中,而高斯林则是简洁性的倡导者,他认为降低复杂度会让 Java 更富有连贯性,更小型化,更友好,程序员在使用时会更容易理解和掌握。最终,高斯林成功说服了大家,因为对于编程语言来说,技术一致性是很重要的,语言的设计应该是一个人的观点,而不是委员会式的编程语言。

现在回过头来看,当初大部分正确的决定都是高斯林做出来的,团队其他成员之所以听从高斯林的判断,和他的做事方法密切相关。当他对一件事物有不同看法时,他不仅有话要说,更知道该怎么说。同事在评价高斯林的时候,认为他对技术的主张是一种坚持,而不是固执,更不是妄自尊大。这里就体现出语言的艺术了,很多程序员在与人交流,尤其是和不懂编程的人讨论时,很容易受封闭式思维影响,用专业深奥的语言解释,却没人能听得懂,这也导致一些程序员不愿意和其他部门同事沟通,因为反正说了也没人听得懂,不如不说,长此以往,同事间的隔阂也会越来越深。说话是门艺术,你只有学会怎样向更广泛的受众解说,才能让你的决策得到更多认可。

最后,高斯林也给了年轻程序员们几条建议,简单整理出以下三点:

1.多问多读多看

办法总比问题多,遇到问题最有效也最快的解决方案就是问,不要在乎你那点面子,能解决问题就行;还有就是多读,讲计算机编程的书和专栏很多,每天学一点,不断让自己的知识丰富起来;还要多看科技新闻,学会分析 IT 未来局势,什么技术会火,什么行业更有前景,做好职业规划,让一身的技术知识能有地施展。

2.至少学会两门语言

每次一有人讨论谁是最好的编程语言,大家都会吵得不可开交。其实压根没有最好的语言,甚至谁也不敢保证,自己用的语言在未来不会被淘汰。所以多学几门是很有必要的,每种语言都有自己的特点,如果你没有时间,至少要掌握一门静态语言,比如 Java,和动态语言,比如 Python。

3.重视优化

没有最佳的完美程序,程序员要做的就是越快越简单越好:编程,优化,再编程,再优化。编程不是目的,程序员真正的价值是解决问题稳准狠,以最小的代价解决问题。

今天关于 Java 之父的话题就先聊到这儿,留个小作业,你平时最常用的编程语言是哪几门呢?欢迎在留言区分享你的编程感悟。

作者 | 池建强

链接 | https://mp.weixin.qq.com/s/t7SzMHYQ76pvEwXFjcvjuQ

来源 | 公众号:MacTalk

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容

  • Java简介 Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和...
    craneyuan阅读 3,078评论 1 18
  • 一、介绍 计算机语言:(Computer Language)指用于人与计算机之间通讯的语言。计算机语言是人与计算机...
    走着别浪阅读 333评论 0 1
  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 5,321评论 2 35
  • 1、Java的标准划分 Java 的版本演进到Java 2,根据不同层面的应用进行了细化,Java 2平台被分为三...
    找不着对象阅读 766评论 0 1
  • 在这个时代,年轻人工作的目标,就是要在大城市买房,要买属于自己的汽车,才能在这个城市结婚生子,争取到一丝立足之地。...
    简律公号简设坊阅读 449评论 0 0