
你学编程的第一课是什么?大概率是写一个 Hello World。
Python 版本:
print("Hello World")
1行。搞定。
但不是所有语言都这么轻松。
Java:样板代码之王
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
5行。其中3行是纯粹的样板代码——你必须写,但它们本身不直接表达"打印"这个动作。class声明、main方法、String[] args,少一个程序都跑不起来。
Java的哲学是:
先把架子搭好,再开始干活。
C语言:一切从这里开始
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
看起来还行,不过区区6行。但你要知道,第一行的 #include <stdio.h> 背后,是庞大而成熟的标准库在作支撑。你写的这6行,依赖着成千上万行的库代码来与操作系统交互。
C的哲学是:
我只给你最低配,剩下的自己管。
汇编:跟CPU直接对话
(注:以下为 x86 Linux 32位环境下的写法)
section .data
msg db "Hello World", 0xA
len equ $ - msg
section .text
global _start
_start:
mov eax, 4 ; 系统调用号 (sys_write)
mov ebx, 1 ; 文件描述符 (stdout)
mov ecx, msg ; 字符串地址
mov edx, len ; 字符串长度
int 0x80 ; 触发中断,交还内核执行
mov eax, 1 ; 系统调用号 (sys_exit)
xor ebx, ebx ; 返回值 0
int 0x80
整整14行。这里的每一行,几乎都在直接操作CPU寄存器。你告诉计算机:把数字4放进eax,代表我要"写";把1放进ebx,代表写到"标准输出";字符串放这儿,长度放那儿;最后,用int 0x80狠狠踩下油门——让CPU中断手头的事,去执行系统调用。
在这里,你写的不是代码,更像是与CPU的精准对话。
汇编的哲学是:
我知道CPU的每一个引脚在干什么。
Brainfuck:用8个符号折磨你
这是一门图灵完备的语言,但它的世界里只有8种符号:+ - < > [ ] . ,。没有变量,没有函数,没有if-else。你唯一能做的,就是在一个长长的内存条上,像一支针一样来回移动,对格子里的数值进行增减。
下面这段代码,就是在一个格子一个格子"算"出 Hello World 每个字符的ASCII码,然后靠 . 输出。
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
作者发明这门语言,就是为了优雅地证明:一个理论上能解决所有问题的编程语言,体验上可以有多反人类。
Malbolge:地狱级难度
先看一个"Hello World"代码:
(=<`#9]~6ZY327Uv4-Qs2u/5RWs&0KBq`P}X@8Z6oI[?5AC7y!RQf"t1Dp_uOS]@y2lG#!k~@D3jS6|Ux^Au
是不是觉得它像一只猫在键盘上踩出来的乱码?不,这是正儿八经能运行的代码。它的设计目标极其纯粹——让写代码成为几乎不可能完成的任务。
这门语言有多恐怖?它用了一个三进制虚拟机,指令执行后会自我修改和加密。结果就是,哪怕你只写错一个字符,整个程序的逻辑都会陷入混沌。它的第一个"Hello World"程序,不是人"写"出来的,而是用搜索算法暴力破解出来的。更离谱的是,在一次编程大会上,有人宣称自己手写了一段 Malbolge 程序,结果被发现其实是程序有Bug,运行时出现的"演出事故",刚好输出了目标字符串。
Malbolge的哲学是:
你们说编程应该"容易"?我偏不。
为什么差别这么大?
从1行到数百个字符,差距何在?
Python:我把脏活累活都干了,你来说你要干什么。
C/汇编:我把底层交给你,天地广阔,你自己闯。
Brainfuck/Malbolge:我来定义什么叫折磨。
为了让你看得更清楚,我把它们放在一张表里:

世界上没有"最好的语言"——只有"最适合的语言"。
写个小脚本用Python,开发操作系统内核用C,调试底层用汇编,想挑战智商上限,试试Brainfuck。至于Malbolge……是它玩你,还是你玩它,这很难说。
以上就是“写一个Hello World,Python用1行,它用14行!”的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。
扫码二维码 获取免费视频学习资料

- 本文固定链接: http://phpxs.com/post/14155/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料