在程序员的世界里,这些词的意义大不同

程序员专属-极客T恤

在很多人的眼中,用一行行代码改变世界的程序员们仿佛是《哈利·波特》里的魔法师,拥有无比神奇的能力。他们说着麻瓜听不懂的咒语 —— 二叉树、Node.js、栈、SOA……在屏幕背后悄然控制着这个世界。

然而许多人不知道的是,除了那些晦涩难懂的术语,许多我们日常会用到的词汇,在程序员们的世界里也有着不同含义。

让我们花五分钟时间,学习几个披着日常用语外衣的计算机词汇吧。

  1. 对象 [duì xiàng] 

普通人:对象是恋爱的对方。

程序员:对象是类的实例,这个词通常出现在「面向对象编程」中,与「面向过程编程」相对应。

不明白这两个词的意思也没关系,它们只是一种编程思想,你只要别把「面向对象编程」理解成「对着女朋友进行编程」就可以了,因为程序员通常没有……

  1. 木马 [mù mǎ]

普通人:通常指游乐园中的旋转木马。王菲的《旋木》里就有这么一句歌词: 旋转的木马,没有翅膀,但却能够带着你到处飞翔。

程序员:指一种恶意程序,植入受害者的电脑之后,施种者可通过木马程序任意破坏对方的文件,甚至不经允许远程控制对方的电脑。

这一名称源自于《荷马史诗》中「木马屠城记」的故事,木马程序与特洛伊木马一样,都极具伪装性和破坏性。

  1. Bug [bʌg]

普通人:虫子的意思。

程序员:电脑程序中未被发现的缺陷或问题。

为什么 bug 这个词会被用于形容程序缺陷?它的背后还有一段轶事:

20 世纪 40 年代,为了满足战时海量的计算需求,哈佛马克二号计算机被建造出来。一日,马克二号因为不明原因停止了运作,时任首席程序员的格蕾丝·霍普 (Grace Hopper,她是世界上最早的几位女性程序员之一)检查后发现,问题是由一只飞蛾导致的:它飞进计算机里,卡住了穿孔纸带。后来,她还把飞蛾的残骸贴在研发记录簿上,并标注为「找出 bug(虫子)的首个实际案例」。此后,人们便逐渐开始用 bug 来形容计算机程序中的错误,而找出错误的过程则被称为 debug。

  1. Table [‘teɪb(ə)l]

普通人:桌子。

程序员:表格。虽然大部分人都知道 table 有桌子或表格的意思,但我真的有一位前端程序员朋友,从小学的是日语,工作了很多年之后,才知道 table 原来还有桌子的意思。

  1. 地址 [dì zhǐ]

普通人:一串文本,表示某人或某组织所处的具体地点。

程序员:也是一串文本,但通常指的是 IP 地址或是物理地址。所以如果你问程序员的地址,一定要说清是什么地址,否则你得到的答案也许会是 173.168.15.10,或者是 08-21-6C-06-A6-29。

  1. 整数 [zhěng shù]


普通人世界:认为 1000 是整数。

程序员世界:认为 1024 是整数。

这里的「整数」其实不是数学意义上的整数,它更类似于「凑个整数」里的「整数」。为什么程序员认为 1024 是整数呢?因为计算机世界使用的是二进制,十进制里的 1024 用二进制表示则是 10000000000,是整数没错吧。所以 1024 才成为了计算机领域的基本倍数,例如 1MB=1024KB,1GB=1024MB,10 月 24 日还是程序员节。

而至于有些人认为 1024 这个词在其他地方有更深层的含义,我根本不知道他们在说什么。

  1. 握手 [wò shǒu]

普通人:握手是一种短暂的礼节,两个人握住对方的左手或右手,通常伴有两手的简短摇动。

程序员:数据通信中,在进行信息交换之前,对操作模式的状态互相达成协定的过程。例句:TCP 建立连接的过程需要三次握手。

  1. 最好的语言 [the best language in the world]


法国人:法语。

英国人:英语。

中国人:汉语。

程序员:PHP 才是最好的语言。

p.s. 这是一个笑话