問題的提出
相傳古時(shí)候有個(gè)退休的程序員,在家閑來無事,決定修習(xí)書法之道。第一日,備好筆墨紙硯,便揮毫寫下一行大字:“Hello World”。
學(xué)過編程語言的人都笑了,在程序員心目中,hello world是一切的開始,程序語言教科書的第一個(gè)演示程序、WordPress的第一篇示例文章(我的hello world)、環(huán)境搭建成功后的第一個(gè)測試……
可是,為什么呢?為什么都用“Hello World”來做程序語言的入門程序,以及其他這一切的開始呢?
Hello World 起源
可能還需要解釋一下什么是“Hello World”:Hello World是一個(gè)簡短的小程序,其功能是在顯示設(shè)備上輸出一行“Hello World”。幾乎每一個(gè)程序設(shè)計(jì)語言的教材中的第一個(gè)范例都是hello world程序,因此在學(xué)習(xí)一門新語言的時(shí)候用hello world作為起步已經(jīng)成為計(jì)算機(jī)程序界的一個(gè)傳統(tǒng)。
Hello World的起源要追溯到1972年,貝爾實(shí)驗(yàn)室著名研究員Brian Kernighan在撰寫“B語言教程與指導(dǎo)(Tutorial Introduction to the Language B)”時(shí)初次使用(程序),這是目前已知最早的在計(jì)算機(jī)著作中將hello和world一起使用的記錄。之后,在1978年,他在他和Dennis Ritchie合作撰寫的C語言圣經(jīng)“The C Programming Language”中,延用了“Hello World”句式,作為開篇第一個(gè)程序。在這個(gè)程序里,輸出的”Hello World”全部是小寫,沒有感嘆號,逗號后有一空格。雖然之后幾乎沒能流傳下來這個(gè)最初的格式,但從此用Hello World向世界打招呼成為慣例。
hello,world
有趣的是,如果你去看Brian Kernighan的wiki頁面,他成果列表里的第一條,不是《C程序語言》,不是《UNIX編程環(huán)境》,而是看似不起眼的“Hello World”。
迷戀 Hello World
Hello World的迷人之處在于:它是簡單的,即便沒有任何基礎(chǔ),你也可以輕松理解,但它又不是蒼白的,它帶有一個(gè)程序語言鮮明的特色,體現(xiàn)了該語言最基本的思想和特征。同樣也是Hello World,讓人體會(huì)到第一份成功的喜悅。
今天開始“全民學(xué)編程”的第一課,為了遵循編程界的偉大傳統(tǒng),我們也不能免俗。 第一個(gè)程序,教大家怎么寫 Hello World,也體驗(yàn)一下計(jì)算機(jī)的神奇之處。
"Hello World"程序是指在計(jì)算機(jī)屏幕上輸出“Hello, world”這行字符串的計(jì)算機(jī)程序,“hello, world”的中文意思是“世界,你好”。這個(gè)例程在Brian Kernighan 和Dennis M. Ritchie合著的《The C Programme Language》使用而廣泛流行。因?yàn)樗暮啙?,?shí)用,并包含了一個(gè)程序所應(yīng)具有的一切,因此為后來的編程類圖書的作者提供了范例,一直待續(xù)到今。
今天的 Hello World程序,用 9 種計(jì)算機(jī)語言寫成,大家可以點(diǎn)擊代碼行中的“練練手”來試試看,可以在線運(yùn)行,并且可以試著修改輸出的文字。 為什么要用 9 種語言呢,既然是 Hello World 這樣簡單的程序,我們就多用幾種語言來寫,讓大家體驗(yàn)一下。后面的正式教學(xué)中,我們將分專題教學(xué),而不會(huì) 一下子用多門語言,今天就算這些語言跑出來,集體和大家打個(gè)招呼啦!
JavaScript:
練練手
代碼如下:
document.write("Hello, world!");
console.log("Hello, world!");
練練手
代碼如下:
echo "Hello, world!";
Java:
練練手
代碼如下:
public class Hello{
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
Objective-C:
練練手
代碼如下:
#import <Foundation/Foundation.h>
int main(int argc, char **argv){
NSLog(@"Hello, world!");
return 0;
}
C:
練練手
代碼如下:
#include <stdio.h>
int main(int argc, char **argv){
printf("Hello, world!");
return 0;
}
HTML:
練練手
代碼如下:
<h1>Hello, world</h1>
Python:
練練手1
代碼如下:
print("Hello, World!\n");
Ruby:
練練手
代碼如下:
puts ("Hello, World!\n");
Go:
練練手
代碼如下:
package main
import "fmt"func main() {
fmt.Println("Hello, world!")
}
更多信息請查看IT技術(shù)專欄