我最喜欢的10条编程语录

今天也在国外程序员 Senthil Kumar 的博客看到了他最喜欢的10条编程语录。其中大部分已经分享过,现再次综合分享给大家。

(提示:正如广为流传的经典段子,有些经典语录有多个版本,作者署名都不一样。从下文就可以看出来。英文原文我保留了 Senthil Kumar 的。中文版本后面的作者署名是我当时所看到的署名。)

09. If debugging is the process of removing software bugs, then programming must be the process of putting them in. – Edsger Dijkstra
如果调试程序是移除臭虫(软件缺陷)的过程,那编写程序就是把臭虫放进来的过程。—— 迪杰斯特拉
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
08. The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time. – Tom Cargill
软件开发的时间通常是这样的:一开始的90%开发工作用掉了整个计划90%的时间,剩下的10%同样需要整个计划90%的时间,而最终发布前的修改也是如此。—— N.J. Rubenking
Writing the first 90 percent of a computer program takes 90 percent of the time.  The remaining ten percent also takes 90 percent of the time and the final touches also take 90 percent of the time. ~N.J. Rubenking
 
07. “There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.”- C.A.R. Hoare
设计软件有两种方法:一种是简单到明显没有缺陷,另一种复杂到缺陷不那么明显。—— 托尼·霍尔
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.
 
06. Measuring programming progress by lines of code is like measuring aircraft building progress by weight. – Bill Gates
用代码行数来衡量程序的开发进度,就好比用重量来衡量飞机的制造进度。—— 比尔·盖茨
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
 
05. “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” – Martin Golding
在编写代码的时候,你要经常想着,那个最终维护你代码的人可能将是一个有暴力倾向的疯子,并且他还知道你住在哪里。—— 里克·奥斯本
补充:关于这条语录,StackOverflow 上也有个讨论帖,给出的答案可能是 John Woods。
 
04. “The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.” – Seymour Cray
程序员的问题是,你无法知道他在做什么,直到为时已晚。—— 西摩·克雷
 
03. Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. – Rick Cook
今日之编程,已是竭力要建立更大更反白痴程序的软件工程师,和正塑造更大更优质白痴的现实世界之间的比赛。目前来看,现实世界赢了。—— Rick Cook
 
02. “Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.” – Larry Wall
你们大部分人都熟悉程序员的美德。当然了,是这三种:懒惰、急躁、傲慢。—— 拉里·沃尔 (Perl 语言之父)
 
01. “Sometimes it pays to stay in bed on Monday, rather than spending the rest of the week debugging Monday’s code.” – Christopher Thompson
有的时候宁愿付钱让你周一在床上待着,也不想让你用这周剩下的时间去调试你在周一所写的代码。 —— 丹·所罗门
 
00. Walking on water and developing software from a specification are easy if both are frozen. – Edward V Berard
在水中行走,和根据一份需求开发软件一样,如果它们都“冻”住了,那就容易了。—— 爱德华·贝拉尔德
 
英文原文:Senthil Kumar  编译:伯乐在线 – 黄利民

当学生手中的教科书变成 Kindle

kindle-with-textbooks

以前上学的时候,肩上的书包总是让我不堪重负。现在,学生肩上的书包重量也在随着社会生存压力的增加而增加。在这样的环境下,相信不少人有同样的想法:如果把学生手中的教科书换成电子版,这会对现状有何改善?

世界公益组织 Worldreader 在 2010 年 11 月到 2011 年 9 月在非洲加纳开展了一个项目 iREAD,为当地六个学校的 350 名师生派发 Kindle,并且向这些 Kindle 推送了 3 万 2 千多本电子书。今年年初,Worldreader 公布了该项目的调查结果,其结果显示:开始接触电子阅读器的学生在阅读技巧及时间上都有很大的提升,但这种方式同样也无法避免其他的弊端。 

积极的结果

  • 参与项目的学生很快就学会了 Kindle 的使用方法,尽管 43% 的人连电脑都没有用过。
  • 学生接触的书籍数量大幅提升。小学生、初中生、高中生所接触的书籍平均数量分别从 3.6 本、8.6 本、11 本猛涨至 107 本(包括 Worldreader 推送及学生自行下载的电子书)
  • 通过阅读测验,调查者学生的阅读能力呈上升趋势。需要指出的是,阅读能力不同于数学等科目,它更多受到课外因素的影响。因此报告中提到仅仅依靠不到一年使用 Kindle 的时间指望学生的阅读能力有大幅提升是不现实的。

存在的问题

  • Kindle 太过容易损坏。Worldreader 总共派出了 600 台 Kindle,其中 243 台损坏,占了 40.3% 的比例。而经过监测,损坏的主要原因是 Kindle 的屏幕太过脆弱。
  • 部分学生认为电子书上的内容是 100% 正确的,因此老师不得对这种思想加以纠正。
  • 还有部分学生在上课的时候将注意力过于集中在 Kindle 上以致无法专心听课。另外,由于 Kindle 还有音乐及上网功能,这也在一定程度上分散了学生的注意力。

总体而言这个调查结果是积极的。从弊端来看,Kindle 易坏的问题,有消息称 Amazon 已经在研发屏幕增强版的 Kindle,另外教会学生正确的使用方法也是关键之一;关于内容正确率以及注意力分散的问题,相信无论是用纸质书还是电子书,类似的问题都无法避免。

而相比这些弊端,Kindle 的优势更为显著。便携以及能容纳和让学生接触更多的书籍是最明显的优点,而关于阅读时间和阅读能力,只能说 Kindle 在一定程度上有所帮助,在这个问题上最关键仍旧是在于读书人本身。

最后值得一提的是,或许会有很多人认为这种电子书模式会造成更大的花费,但实际上,每个学生使用电子书四年的花费比使用纸质书仅多出 8.93 到 11.4 美元,也就是每个月 0.19 到 0.24 美元。不过这个计算结果是基于电子书的价格会进一步降低以及 Kindle 损坏率下降的前提上。

完整的调查报告点击这里查看。

题图来自 she knows

中国正计划定义一个全国性的CPU架构

根据多个行业消息来源的报告,中国官方启动了一项计划,旨在定义一个全国性的处理器架构。 如果计划获得成功,则任何寻求政府资金支持的项目都可能要求必须采用这种架构,比如电脑与智能手机采购项目。工信部官员上月主持召开了中国国家指令集架构计划第一次会议,参与者包括了华为和中兴,这项计划旨在建立中国自己的标准和知识产权,减少对西方知识产权的依赖。中国已经制订了多项标准,涉及从 CD/DVD播放器到监控视频系统的多个领域。它正在考虑现有的至少五种指令集架构——MIPS、Alpha、ARM、Power和国产的UPU——但国家对制定一种全新的指令集架构的设想也十分感兴趣。但正如ARM总裁 Tudor Brown所说,定义指令集架构花费时间不长,但建立一个有活力的生态系统则需要较长时间。

ColorHug因为开源用户的诚实而取消远程关闭功能

开源硬件和软件色量计ColorHug设计用于校正 显示屏幕的配色,它的作者是GNOME和Red Hat黑客Richard Hughes,他在上面投入了大量的时间、精力和金钱。自去年11月宣布以邮寄方式出售ColorHug色量计产品后,他的银行经理提醒他骗子会让他破 产,因为英国关于互联网邮购的法律利于客户而不利于销售者,如果对方声称没有收到产品,他没有追索的权利,而且必须退款。为维护自己的利益,他转而求助于 技术,为ColorHug加入了远程关闭功能,允许他远程关闭报告丢失的产品。现在,他的公司开始盈利,他宣布取消远程关闭功能。Hughes在Google+上,他发送350个包裹,只有3个丢失,没有一个触发黑名单功能,表示开源用户比银行经理认为的诚实的多。

Django 源码管理也迁到了 Github

Github 如日中天,很多非常有名的项目都迁移到 Github 上。日前,著名 Python 框架 —— Django 也宣布迁移到 Github,地址是:https://github.com/django/django

Django 项目是一个定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:

  • 用于创建模型的对象关系映射
  • 为最终用户设计的完美管理界面
  • 一流的 URL 设计
  • 设计者友好的模板语言
  • 缓存系统