从比尔盖茨的代码想到代码风格

版权声明:所有博客文章除特殊声明外均为原创,允许转载,但要求注明出处。

首先还是说声抱歉。今天是 8 月的最后一天,但续期证书仍然失败。暂时没有什么好办法, 今后几天请光临的朋友暂时移步 HTTP 版本 吧。

今天看到一则 CNBeta 新闻, 是比尔 盖茨在 1978 年为 Microsoft Basic 写的代码,在今天这个互联网时代来说,堪称 代码活化石了吧。

Bill Gates's Basic Code

知乎上也有关于此代码的讨论:知乎问题

对代码本身的意见已经说的很多了,对此我并没有太多感想。只是看到满屏幕的大写字母,忽然想起 多年前的一场关于代码规范的争论,心情还是满复杂的。

这场争论是关于代码规范的。我们团队的 DBA 认为,SQL 中的关键字应该统一用大写,因为别人 都是这么写的。这一点我明白——主流的 SQL 编写风格确实是在关键字中使用大写。但是我个人则是 反对这种风格的,理由是:对于程序来说,表、字段才应该是关注的重点,而 SQL 语法关键字其实 是次要的内容,使用大写是主次颠倒的。

那次争论后来的发展因为时间太久已经记不清楚了,总之最后的结局是大家不欢而散。我至今仍然认为 全大写的风格看起来很刺眼,每一个字都像在大喊大叫一样,无论纯小写、驼峰或是_分割,都比全大 写的风格更适合阅读。但现实是我在争论中很吃亏——不管我费多少口舌,对方一句“前人的规范”就可 以把我打回去。

我也不清楚为什么早期程序员会选择了全部大写的风格。对于以英文为母语的人来说,全大写的文章 看起来也很不舒服吧。好在后来接触的语言,比如 Python, Ruby 等,大多倾向于小写或驼峰式的 写法,让我幸免于写出让自己都觉得恶心的代码。(题外话,新近的语言里 Go 的大小写风格让我多少 有点不大适应)。但是今天很多数据库编辑器默认的关键字风格仍然是大写,包括我比较喜欢的 JetBrains 系列,虽然修改设置并不麻烦,仍然有一点点不爽的感觉。我自己的脚本会坚持使用小写 风格,至于别人怎么认为,那就不是我所能左右的啦。