摘要:生活需要一点幽默,代码程序也不例外。

  英文原文:The Joke's on Your Computer: The Latest Humor Coded into Software

  在使用谷歌地图的测距工具时,你有三种选择:公制,英制,或者我想极客一把(I'm feeling geeky)。如果你选择了第三个选项,将会出现一系列测距单位供你选择,其中一些很少用到,比如:秒差距( parsecs 一种天文距离单位), 波斯腕尺(Persian cubits), 还有水立方游池(Olympic swimming pools)。

  苹果 OS X 系统的文本到语音(text-to-speech)功能,有几十种不同的声音可供你选择。每一种声音都配有一句风趣的范例对话。如果你选择弗莱德的声音(The Fred voice),听到的会是:这台电脑这么棒,我当然愿意呆在里面了。而精神病人的声音(The Deranged voice)听上去则是颤抖的歇斯底里:我要好好放个假。连外星人(The Trinoids voice)也来凑热闹:我们无法和这些碳基生命交流。

  在 YouTube 看视频的时候,如果你按暂停键,然后按住键盘左方向键,就会发现视频中央的缓冲圆圈变成了一条贪吃蛇。用方向键操控贪吃蛇追逐光点越吃越大吧,小心不要碰到自己的身体。

  在上面这些例子里,大公司的程序员们向我们展现了他们幽默的一面。

  在过去10年或20年前像这样在软件中加入玩笑元素的例子要更普遍。软件工程师在代码中插入各种笑料,怪想或复活节彩蛋(Easter eggs 藏在程序中的小惊喜,需要特定的场景或操作才能触发),并引以为傲。

  这样做的部分原因,仅仅是出于自豪之情。要知道,程序员们常常是不为公众所知的,即使在软件的用户指南里也找不到他们的名字。所以,他们常会在复活节彩蛋中写下程序开发组的人员名单。

  有些彩蛋的由来,还有一段有趣的历史。比如,在奔迈飞行员(Palm Pilot,一款早期掌上电脑)的原系统中,程序员罗恩(Ron Marianetti )就创建了一辆类似大众甲壳虫的黄色出租车,会随机的在屏幕上驶过这是为了纪念这款掌上电脑原本计划的名字,奔迈计程车(Palm Taxi)。

  他的同事克里斯(Chirs Raff)则在程序中藏匿了一个关于自己的彩蛋。用触控笔戳手写区屏幕右下角,并按下拉按钮,他和朋友身着燕尾服,参加公司圣诞派对的照片就会神奇的跳出来。

  但好景不长,一段时间后,硅谷的公司老板们开始禁止程序设计师这样做。原因有三,第一个原因,是出于质量控制考虑:严格说来,彩蛋是一段未经测试的程序,理论上来讲,它可能会对整个程序中其他重要的功能代码产生影响。彩蛋是程序中的不安定因素,这让老板们心存担忧。

  另一个原因,则是为了留住雇员。程序员在彩蛋里留下自己的名字,实际上是在给自己的代码能力做广告,竞争对手的猎头很容易就能得到程序员的个人信息。

  最后一个原因,是出于公司整体形象的考量。不管是苹果,微软或是奔迈,为了创造一个专业的公众形象,都可能要花费数百万美元。 在一场重要的产品发布会上,一辆不知所谓的出租车从屏幕上晃晃悠悠穿过,这可不是公司愿意看到的。(这事还真让奔迈公司给碰上了。在那之后不久,出租车彩蛋就被删除了。)

  现如今,玩笑和搞怪精神犹在,但我们更多的是在电子游戏和电影 DVD 中见到这些彩蛋。在一些主流应用程序中,我们还能发现隐藏的小惊喜,但相比之前,已经收敛了许多。而这些有幽默精神的软件,大部分出自苹果和谷歌。

  把苹果的 TextEdit 图标放大,你看到了什么?(文本内容是苹果1997年的著名电视广告,Think Different)或者打开 Mac 的语音识别,对你的电脑说,给我讲个笑话。(Tell me a joke)

  你也可以在谷歌上搜索递归(recursion),然后点击搜索框下面的你要搜索的是?(谷歌会建议你搜索递归,点击建议链接后,你又会得到同样的结果,如此周而复始。)

  或者在谷歌地球中找到悉尼歌剧院,调整视觉角度,来到滨水的一边,你会发现,一位已故的电视明星在那里等你呢(已故的野生动物专家和冒险家 Steve Irwin 正与鳄鱼搏斗)。

  当然,你还可以向谷歌地图提问,让它告诉你怎么从日本去中国,看到它给出的如何横渡太平洋的建议,可不要过于吃惊。(Jet ski across the Pacific Ocean 摩托艇横渡太平洋)

  谢谢你们,那些不知名的程序员,请继续保持幽默精神。你们已经证明了,软件不但能提高我们的工作效率还能为我们带来欢乐。

程序代码里的幽默精神相关推荐

  1. 计算机内部程序代码,计算机为什么能够读懂程序代码?

    01 引子 上一回,我们的主人公小A初次亮相,凭借基础的前后端理解,从技术实现的层面为我们剖析了微信扫码登录的原理和机制.可能很多人因此会好奇,小A到底是做什么的呢?为什么能够弄懂这些原理呢? 其实, ...

  2. 从循环条件的代码里,我能在面试中甄别程序员是否是高级

    一般来说,工作经验满3后,程序员就达到了高级程序员的年限要求,但能力上是否达到?又如何在面试里短短30分钟里验证程序员是否达到高级程序员的水准?我会那个大家一定用到过的循环语句来作为面试题. 我们可以 ...

  3. c#设计12星座速配软件_星座代码:用vb编一个星座配对的程序代码

    星座代码:用vb编一个星座配对的程序代码 admin 来源: 2020-04-30 10:04:55 阅读() 评论(0) 关于十二星座C#代码不同星座的程序员写起代码来分别是什么样子的?求你的计算生 ...

  4. 如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情

    本文重点介绍如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情.部分代码来自:FreeEIM 至于如何识别用户发送的是符号表情,就不在此讲解了,留给大家一点学习思考的空间.我只是给大家一个提 ...

  5. master-worker常驻型程序代码修改哪些需要重启master或者worker

    之前在yii的项目里用redis作为消息队列,现在很多任务需要延迟需求,于是把之前redis的消息队列替换成了rabbitmq 于是使用yii的yii2-queue这个组件 但是由于提供的yii qu ...

  6. 《编写高质量代码:改善c程序代码的125个建议》——第1章 数据,程序设计之根本建议1:认识ANSI C...

    本节书摘来自华章计算机<编写高质量代码:改善c程序代码的125个建议>一书中的第1章,建议1,作者:马 伟 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1 ...

  7. 改善程序代码质量的一些技巧

    有很多理由都能说明为什么我们应该写出清晰.可读性好的程序.最重要的一点,程序你只写一次,但以后会无数次的阅读.当你第二天回头来看你的代码 时,你就要开始阅读它了.当你把代码拿给其他人看时,他必须阅读你 ...

  8. 概述VB.NET正则表达式简化程序代码

    经过长时间学习VB.NET正则表达式,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西.在通常的程序设计中,对字符串的操作是不可缺少的部分.例如,我们经常需要从字符串中寻找特定的 ...

  9. 不要再代码里频繁的new和delete

    为什么不要再代码里频繁的new和delete了呢,因为new是在堆中搜索一块可用的内存给程序使用,在堆中分配的内存不是连续的,不像栈,后进先出,你不可能在栈的中间pop出一块内存,所以想要使用栈中某一 ...

  10. python快递分拣小程序_python英语单词测试小程序代码实例

    这篇文章主要简介了python英语单词测试小程序代码实例,文中通过示例代码简介的非常具体,对大家的学习或者工作具有一定的参考学习网上卖,需要的朋友可以学习下 爬取了扇贝英语网,并制作了一个英语单词测试 ...

最新文章

  1. mac远程连接centos安装mysql_centos安装Mysql并远程连接
  2. @sql 单元测试_简单单词中使用tSQLt进行的常规SQL单元测试
  3. Mybatis数据库连接报错:对实体 “characterEncoding“ 的引用必须以 ‘;‘ 分隔符结尾
  4. 2022(2021JCR)SCI期刊影响因子完整版
  5. 哈理工oj 1677
  6. 《人工智能:一种现代的方法》读书笔记之 智能Agent
  7. 如何将Web of Science中的题录及文章导入NoteExpress?
  8. win10状态栏卡死,屏幕正常
  9. Java手机游戏新流星蝴蝶剑,网页最好玩的游戏
  10. 深度系统deepin
  11. Escape HTML
  12. 了解一下winsock
  13. 数据库操作出现Duplicate entry ‘测试‘ for key ‘uk_name‘问题
  14. 巴黎时装周儿童单元深圳站代言人伊朵,精彩演绎儿童时装
  15. python爬取网站数据(含代码和讲解)
  16. 数学基础之代数学(1)——矩阵
  17. DJI的核心竞争力是什么?
  18. 显卡性能测试工具BenchMarkTool
  19. 基于51单片机的简易示波器(STC89C51 ADC0804 12864 )
  20. 希捷移动硬盘打不开怎么办,数据如何恢复

热门文章

  1. 雷林鹏分享:MySQL 元数据
  2. ComponentOne 2018V2正式发布,提供轻量级的 .NET
  3. 刘强东又给老家的乡亲们送生鲜年货了!东哥同款了解一下?
  4. NPM酷库:minimatch,模式匹配字符串
  5. 详解斯坦纳点及斯坦纳树及模版归纳总结
  6. BrnShop开源网上商城第三讲:插件的工作机制
  7. 如何修改Myeclipse的JSP模板
  8. NodeJS http 模块
  9. 存储过程与业务类实现业务的差异比较
  10. Haxdoors of the Kaspersky Antivirus 6/7