“Hello World!”的十个问题

简介: 导语:基本上可以说每个程序员都很熟悉“Hello World!”程序。依照惯例,它是学习编程语言、编译并运行首个程序的一种快速方法。然而,除此之外,它的价值不大。下面是作者认为Hello World的十个问题。

导语:基本上可以说每个程序员都很熟悉“Hello World!”程序。依照惯例,它是学习编程语言、编译并运行首个程序的一种快速方法。然而,除此之外,它的价值不大。下面是作者认为Hello World的十个问题。

以下是作者的观点:

10. 为什么是“Hello World”?为什么不叫“Hello Dave”或者“It Works!”?(Dave就是《2011太空漫游》中的HAL 9000)

这个问题有点夸张。“Hello World”这种说法从何而来呢?除你之外,最后一次有人运行你的程序是什么时候?也许用“Hello <输入你的名字>”更合理些。

9. 它只适用于一件事情?

我不是在发表“Hello World”一无是处的言论。然而,他们唯一擅长的就是合理性检查。

“Hello World”并不能帮你学习任何编程语言,它能做的只是帮你写一个能编译和运行的简单程序。

它可以帮助你检查其合理性,然后你便可以告诉你自己,“我成功了!”

8. 既不给力又不好玩

随着游戏中精细图形及互联网交互性的发展,几乎没有人再对那些在屏幕上输出一些字的应用程序感兴趣。

就像刚才说的那样,写一个“Hello World!”程序,除了你自己之外,不会给任何人留下印象。此外,它也不可能是你学习编程的动力。

7. 它不切实际

你最后一次编写仅要求将字符串显示到标准输出的程序是什么时候?有人可能会说,现在很少有程序不包含图形用户界面——不管是网页、窗口界面,或者甚至是对文件、数据库的操作。可能它在学术界很实用,在学术界可以始终如一地让程序显示运算或者数值,但专业领域并非如此。

6. 没有交互性

“Hello Word!”这个例子,除了需要终端用户验证“HelloWorld!”是否显示在屏幕上之外,不依赖用户做任何其它操作。它没有要求用户输入用户名、退 出程序或重新运行程序之类的交互。关于终端用户和程序之间如何进行交互,“Hello Word!”并没有涉及相关内容。

5. 没有逻辑和运算

计算处理非常依赖于逻辑结构(如:当这个条件为真时,打印这条语句)和运算。大多数程序的编写将运用一些标准下的决策逻辑。甚至计算机的基本组成部分(机器代码)也代表一种逻辑表达式:1=真,0=假。

4. 在不同语言下,太过相似

如果你观察一下不同语言编写的“Hello World!”程序,你会发现它们之间非常相似。

一旦你精通于用一种语言写出 “Hello World!”程序,那么你也差不多能用其他语言熟练地编写这个程序。

3. 只使用一个关键字

如果你看过各种Hello World范例,你会发现他们的共同点就是都只使用一个关键字。

一门编程语言有多少关键字:数百?上千?在编程语言的学习中,只学一个关键字是微乎其微的一步。

2. 忽略了变量和常量

正如我前面提到的,学习一门编程语言,除了要学习如何将一些东西显示在屏幕上之外,还要学习相当多的其他知识。

很少有程序不使用变量。

你可以说,由于“Hello World!”把语句中的字符串给写死了,因而这个程序会误导大家学习不好的编程习惯。

“Hello World”例子至少可以用一个常量来储存“Hello World”字符串的值。

1. 忽略了函数和OO等概念

“Hello World!”例子并没有用到一门给定编程语言的其他特性。

比如下面这些:

  • 函数签名
  • 类结构
  • 命名空间
  • 继承

大多数老练的程序员能理解这些东西,但对于那些新手或者只有过程化编程背景的人来说,这还是会让他们沮丧。

中文出处:“Hello World!”的十个问题

英文来源:10 Problems with 'Hello World!'

声明:CSDN登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。

目录
相关文章
|
4月前
|
Unix 编译器 C语言
Hello World!—— 属于我们的第一个C语言程序
C语言最早是由贝尔实验室的Dennis Ritchie为了UNIX的辅助开发而编写的,它是在B语言的基础上开发出来的。尽管C语言不是专门针对UNIX操作系统或机器编写的,但它与UNIX系统的关系十分紧密。由于它的硬件无关性和可移植性,使C语言逐渐成为世界上使用最广泛计算机语言。 为了进一步规范C语言的硬件无关性,1987年,美国国家标准协会(ANSI)根据C语言问世以来各种版本对C语言的发展和扩充,制定了新的标准,称为ANSI C。ANSI C语言比原来的标准C语言有了很大的发展。目前流行的C语言编译系统都是以它为基础的。
50 0
Hello World!—— 属于我们的第一个C语言程序
|
11月前
|
C语言 C++
C++打印hello world
C++打印hello world
142 0
|
编译器 Serverless C语言
第一个C语言程序(从Hello World开始)
第一个C语言程序(从Hello World开始)
第一个C语言程序(从Hello World开始)
|
缓存 Python
你真的懂print('Hello World!')?我不信
你真的懂print('Hello World!')?我不信
你真的懂print('Hello World!')?我不信
L1-001 Hello World (5 分)
L1-001 Hello World (5 分)
37 0
|
Serverless 测试技术 文件存储
第一个函数:Hello World (下)
但我们注册并登陆我们的阿里云账号之后,我们可以找到函数计算产品:
77 0
|
Serverless C语言 C++
第一个函数:Hello World (上)
实现一个Hello World是入门各个编程语言的第一节课,无论是我们学习C语言,C++,Python等,貌似都离不开一个Hello World,既然如此,本章将会基于Serverless架构,在主流的云厂商的FaaS平台实现一个Hello World。
94 0
|
测试技术
软件测试面试题:已知一个字符串为“hello_world_yoyo”, 如何得到一个队列 [“hello“,“world“,“yoyo“]
软件测试面试题:已知一个字符串为“hello_world_yoyo”, 如何得到一个队列 [“hello“,“world“,“yoyo“]
260 0
|
Python
3. 第一个程序Hello, World!
本项目所有代码均可在github上下载。
3. 第一个程序Hello, World!