起源
1972年,贝尔实验室成员布莱恩·柯林汉撰写的内部技术文件《A Tutorial Introduction to the Language B》首次提到了Hello World这字串。当时,他使用B语言撰写了第一个使用参数的Hello World相关程序:
main(){
extrn a,b,c;
putchar(a);
putchar(b);
putchar(c);
putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';
原理
一般而言,我们新接触一门计算机语言,在部署语言环境过程中可能会遇到一些莫名其妙的问题,等解决这些问题之后,来一小段代码测试语言环境是否可以正常运行还是很有必要的。
- Python
#!/usr/bin/env python
if __name__ == '__main__':
print("Hello World")
查找可用的Python解释器 -> Python源代码编译成字节码 -> 交由Python虚拟机执行字节码 -> 虚拟机调用系统接口 -> 驱动输出设备 -> 输出"Hello World"
- C++
#include <iostream>
int main(void)
{
std::cout << "Hello World" << std::endl;
return 0;
}
c++编译器 -> 预编译 -> 汇编 -> 编译 -> 链接 -> 执行 -> 调用系统接口 -> 驱动输出设备 -> 输出"Hello World"
- Docker
docker run hello-world
下载镜像 -> Cgroups隔离镜像启动所需要的资源 -> 挂载union文件系统托管运行时候文件变化 -> 分配网络接口与IP -> 调用容器配置的程序执行入口 -> 宿主机捕获容器输入输出
延伸
人机交互
人与机器的交互从最初的直接接触,到现在的高级语言作为桥梁联系两者,Hello World作为常用的计算机语言测试代码,随着上千万人类经历半个多世纪,可以说是最流行的一段人机交互代码,如果机器有笑容的话,这个便是机器的微笑。程序员与这个世界
大部分程序员与机器一起度过的时间比大部分传统机械行业的人员还多,计算机凭借强大的创作能力吸引程序员进行丰富多样的创作,但是正如同Hello World所言的那样-"世界,你好",而不是"计算机,你好",对于我们,最吸引我们的,我们赖以生存的,是这个世界。
总结
我们的程序变得越来越复杂,功能越来越多,统筹程序的架构也越偏向服务化,独立化,但是在复杂中迷惑时候,写一段Hello World, 感受机器运作的过程。是否你也会有与我一样的感受,在夏日午后的田园旁,拔了一圈杂草,躺在田埂上,听风、虫儿与轻呼你名字的声音。