【拓展】Hello World你以为你知道?

Hello Wold你造(知道)么?我知道啊,不就是你好世界么。呵呵.....

今天我们来讲讲到底什么才是Hello World!!别在很傻很天真的说你好世界了。

那到底什么才是Hello Wold呢?度娘是这样说的:

看到没!!!世界上第一个程序!!!

这是一个最著名的程序。对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序。那么,这个著名的程序究竟从何而来呢?

实际上,这个程序的功能只是告知计算机显示 Hello World 这句话。传统意义上,程序员一般用这个程序测试一种新的系统或编程语言。对程序员来说,看到这两个单词显示在电脑屏幕上,往往表示他们的代码已经能够编译、装载以及正常运行了,这个输出结果就是为了证明这一点。

这个测试程序在一定程度上具有特殊的象征意义。在过去的几十年间,这个程序已经渐渐地演化成为了一个久负盛名的传统。几乎所有的程序员,无论是在你之前,或在你之后,当第一次实现与计算机成功沟通之后,在某种程度上,他们的肾上腺素就会急剧上升(激动不已)。以下就是这个著名程序的诞生故事。

Hello World 究竟从何而来?

Hello, World 最早是由 Brian Kernighan 创建的。1978 年,Brian Kernighan 写了一本名叫《C 程序设计语言》的编程书,在程序员中广为流传。他在这本书中第一次引用的 Hello World 程序,源自他在 1973 年编写的一部讲授 B 语言的编程教程:

但是非常不幸的是,当 Forbes India 杂志采访他的时候,他自己对这段传奇故事中一些记忆已经有点儿模糊了。当他被问及为什么选择『Hello, World!』时,他回答说,『我只记得,我好像看过一幅漫画,讲述一枚鸡蛋和一只小鸡的故事,在那副漫画中,小鸡说了一句‘Hello World’』。

鉴于 Hello World 这个计算机程序的广泛流行程度,这个起因看起来还是蛮合适的。

那个时候,无论是 Kernighan,还是他的同事 Dennis Ritchie - C 语言之父,都无法想象 C 语言以及这本教程书将会在今天如此之流行。他们所做的工作只是贝尔实验室的一个研究项目,而在当时,贝尔实验室也只是美国电话电报公司(AT&T)的技术研究与开发机构而已。

尽管没人能够科学地解释为什么 Hello World 如此地流行,但是,Hello, World 程序的确在计算机发展历史上成为了一个具有重要意义的里程碑。我们一起来回顾一下当时的历史环境。

襁褓中的变革

现在你可能很难想象,但是在 Hello World 连同 Kernighan 的编程书出版之前,计算机对于公众来说,几乎隐含着一种负面的意义。在 1970 年代,主机时代的计算机,不仅运行缓慢,体积庞大到足以占用整个一间屋子,而且还需要一位全职的科学家或者研究者来维护它。事实上,在 1970 年代后期之前,计算机科学家在编程的时候还要使用大量的打孔卡

通常情况下,一般人认为计算机是一种不可触碰、复杂,而且极其昂贵的设施,它们仅仅适用于学术、政府或者国防。事实上,即使是那些专注计算机领域的工业巨头们也在努力克服这些障碍。当时谁也无法想到,事隔多年之后,也就是现在,如果我们暂时失去了我们的个人数字设备(如手机等),我们甚至会感到焦虑。

第一个著名的计算机应用的案例发生在 1890 年 - 为了收集和统计超过六千万美国人口的相关数据。另一个案例出现在 1940 年,也就是二战期间,Bombes & Colossus 计算机被用于破解德国人的通讯密码。

在 1950 年,世界上迎来了第一代商用计算机,如 Zuse 3 和 UNIVAC,在当时主要应用于算术运算,但如果你想要买到这些设备,需要花费上百万美元。

从教育相关的角度来看,绝大多数早期的有关编程语言的图书,如 FORTRAN 或 BASIC,常常都会从一点入手:计算机非常有用。这是算法工程师和研究者 John Mount 的一个重要观点。Mount 认为,Hello World 大范围流行开启了一个崭新的时代 – 计算机科学家不再需要说服社会和大众,计算的工具化特征已经所处可见。

例如,在 1964 年,一本名叫 My Computer Likes Me When I Speak Basic 的图书,在它的前言部分,就专门讲述了计算机编程语言的一般性用途。而且,书中的第一个例子的输出结果就是『MY HUMAN UNDERSTANDS ME』。之所以使用这个示例的原因,目的是为了帮助人们理解计算机这个新生事物,并且希望告诉人们:你可以和计算机进行交流。在此之后,也就是 1956 年,动态编程语言开启了将计算机应用于现实世界的更多实例。

在 C 语言以及 Hello World 程序流行起来之前,计算机并没有得到大范围的应用和普及,计算机行业也没有开始真正的腾飞。

直到C 语言和 UNIX 操作系统首先在 PDP-11 这个机型上变得流行了起来。因此,在接下来的一段时间里,其他类型的商用计算机也开始支持这个 C 编程语言以及 UNIX,这种流行趋势最终促使成千上万的计算机相关工作者,开始阅读这本两百来页的《C 程序设计语言》。当然,这其中自然包括了 Hello World 这个例子程序。

在八十年代以及九十年代,几乎每一位曾在桌面软件领域工作过的程序员,都曾拥有一本《C 程序设计语言》。在当时,这本书大约售出了几百万本之多。

也许有很多不同的基本程序可供初学者动手尝试,但是截至目前为止,Hello World 则是其中最为著名的一个。每一位程序员都曾记得他们的第一个 Hello World 程序,因为对他们来说,这就是一个重大事件。也许有些人还没有意识到这一点,但是,当一名新程序员清除完一些障碍顺利抵达 Hello World 时,他的内心体验到的不仅仅是一种成功的喜悦,更重要的是,他正在亲身经历一个跨越历史的时刻。

原文发布于微信公众号 - 老九学堂(xuetang9)

原文发表时间:2015-12-12

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

想转行的和零基础编程的如何用五个月精通python?

Python简单易学,入门容易,非常适合没有编程基础的人学习。而且python的应用范围非常广泛,自动化运维,web编程,人工智能,科学计算,图形界面开发等都可...

22710
来自专栏JavaQ

和大牛之间的差距

上班的途中看了网络大V的一篇关于差距是如何产生的文章,略有小感。 文章的大意是差距是因为勤奋而导致的,无论先天和后天条件如何,只要足够勤奋都可以和别人产生差距。...

3515
来自专栏Bug生活2048

[原创]你不知道的程序猿-Hello World

相信作为程序员或者相关职业者对「Hello World」肯定不陌生,这或许是你的第一个程序,也是你踏入这行的标志。

931
来自专栏iOSDevLog

时间管理笔记(总结)

37310
来自专栏企鹅号快讯

为什么程序员总是写糟糕的代码?这3个原因

我最近一直在想我们作为一个行业为什么总是产出糟糕代码的原因。 1.明显原因…… 我一下子想到的最明显的原因是,有好的程序员,也有不那么好的程序员,有的人技术水平...

1930
来自专栏java一日一条

记一次 Google 面试经历

这是我上周去面试的地方。很顺利,我觉得——至少我认为我已经尽我所能,并且无论发生什么事情对我都是有帮助的。

2111
来自专栏企鹅号快讯

学Java到底好不好,已学未学将要学,大家都快看过来

很多人都想精通一门计算机语言,想学习Java开发,看中的不仅是优厚的待遇,更多的是广阔的行业发展前景。但是我们该怎么做,才能在有限的时间内快速的掌握Java这门...

1997
来自专栏程序员互动联盟

程序员必看的十部电影

不同的行业领域中很多时候都分享着共同的思想和理念。比如,大量的计算机编程中涉及到的概念都被运用到了电影里。有些概念出现在电影里后变得如此之酷,甚至反过来能帮助我...

3685
来自专栏Python中文社区

十本书教你从Pythoner通往Pythonista

1、Python基础教程 本书是经典教程的全新改版,作者根据Python 3.0版本的种种变化,全面改写了书中内容,做到既能“瞻前”也能“顾后”。本书层次鲜明、...

42410
来自专栏Java架构师学习

优秀程序员都具备的五点特性,这些你都有吗?一、 编程能力二、面向对象思维能力三、软实力(学习能力,沟通能力,表达能力)四、利用工具的能力五、创造力(解决问题的能力)

作为一个在it行业混的老鸟,一直有一个疑虑:自己究竟要做到什么程度才算得上优秀?一个优秀程序员(指工资比一般程序员高的那种)最重要的能力是什么?写代码的最高境界...

1062

扫码关注云+社区

领取腾讯云代金券