点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

编程时,用Tab还是Space?这个有关程序员的信仰之争,由来已久。2月27日,在接受美国科技网站Reddit的“Ask Me Anything”(AMA)环节访问时,微软创始人比尔·盖茨果断站队了。

他表示,“更喜欢用Tab,因为我想让column排成一行。对于某些Word文档,我用Tab,如此,当我想要修改部分内容,需要返回并编辑时,Tab显然更容易操作。”

不过,与其说是站队,不如说是以略带调侃的方式,为这场程序员群体中流行已久的辩论再添新柴。

随后,有至少14000名网友对这条回答点了赞,也使之成为该期问答中最为热捧的帖子,他们(多半程序员)纷纷在下面评论:

@psymunn:不同语言缩进不一样吧,除了Python之外,我都用Space……

@natek11:当你在编程环境中键入Tab时,Visual Studio会自动输入Space(反之亦然,具体取决于你的设置)。因此,就微软自身而言,这个问题或许已经解决了。

@Ghosttwo:当我在学习Visual Basic 6.0时,我用四个Space来对齐代码。但当我开始用四五种语言时,我开始习惯用两个Space。

基本上,支持使用Tab的网友认为:在每条新行之后加一个Tab可使代码更具可读性;而Space们则认为,多敲几次Space可使布局更为灵活。简言之,就是在于在逐行检查时,对代码有怎样的美学认知问题。

其实,早在2015 年程序员 Uku Pattak就曾分析过 GitHub 上多种语言的热门项目中使用 Tab 和空格的对比情况。(链接:http://ukupat.github.io/tabs-or-spaces/)

2016年,Google一项研究分析了14TB数据中的10亿份文件,发现:在几乎所有的编程语言中,开发者使用Space的频率从远远高于Tab。与此同时,据最新研究发现,使用Space的人赚得也更多。

值得一提的是,那一年,美国HBO热播剧《硅谷》第三季中,不仅有 Tab 和 Space,也有 Vim 和 Emacs之争,甚至,男主Richard Hendricks就是因为编程风格不同,与同为程序员的女友分手……

class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=g1334nzamrk&width=654&height=367.875&auto=0" style="display: none; width: 654px !important; height: 367.875px !important;" width="654" height="367.875" data-vh="367.875" data-vw="654" src="http://v.qq.com/iframe/player.html?vid=g1334nzamrk&width=654&height=367.875&auto=0"/>

除了上面这个旷日弥久的程序员编程圣战之外,盖茨还回答了网友们关心的诸多问题,并对加密货币、机器人、无人驾驶等问题进行了回答。在此,CSDN摘编了盖茨的五个经典回答,分享给大家。

1. 长期看衰加密货币

加密货币的主要特点是匿名性。盖茨认为,这并不是一件好事。我们的社会想要从中获益,需要让政府具备找到洗钱、逃税和资助恐怖分子的能力。

现在,加密货币正被用于购买毒品,并且以相当直接的方式造成了死亡,不难看出,它区别于我们通常所知的其他技术。他认为,长期持仓ICO和加密货币的投机浪潮是十分危险的。

此外,比特币更易于帮助罪犯获取利益,如在绑架时,罪犯想要获取匿名现金,就不需要亲临现场了。

值得一提的是,盖茨在2014年接受彭博采访时还表示看好比特币,“因为它便宜”,而如今,他对加密货币投机问题持反对意见。

2. 下一个十年,期待机器人具备人类一样的行为

他认为,计算机能够像人类一样阅读和理解文本。如今,计算机可以做一些简单的事情,比如搜索特定的词,但还是无法理解“家庭”、“假期”、“职业”等概念。“微软和其他机构正努力创造一个有用的助手。它一直是软件开发者心目中的圣杯,尤其是现在,视觉和语言能力已经基本解决了。“

另外一个机遇是机器人技术。例如,像人类一样进行移动和操作的能力,对于机器人而言,这需要十年或者更长的时间才能实现,不过,仍然有专家对此表示异议。

3. 自动化催生人类新的就业机会

工业革命以来,自动化正不断提高社会生产力,比如拖拉机和服装制造。

盖茨提到:“随着软件的不断加速发展,我们需要思考如何教育人们寻找新的就业机会。整体来看,自动化是件非常了不起的事情。最终,人类无需做太多工作。但我们距离这一步,至少还需要一代人的努力。”

4. 网络安全和机会平等问题不容忽视

他认为,目前仍需加强网络安全和全球机会平等。100年前,基本上没有安全网络,而现在这一问题正逐步得到解决。

另外,在过去的200多年里,尽管社会的经济体系存在缺陷,但这个体系无疑创造了一个更公平分配财富的方式。

5. 看好无人驾驶和电动车,但看不懂马斯克的Hyperloop

在去年7月,马斯克曾发表一条推特,称:“The Boring Company (隧道挖掘公司)刚刚收到政府口头批准,可以建造纽约到华盛顿的地下超级高铁,通勤时间仅需 29 分钟。”

而在回答网友有关交通运输系统的问题时,针对马斯克以上提出的“Hyperloop”(超级高铁)这一概念,盖茨表达了自己的看法:“我不确定Hyperloop的概念是否合理,但安全问题就很难保证。”

以上,就是比尔·盖茨近期在Reddit上回答的部分摘录,当然,针对程序员关心的话题,你也可以向他提问啦。(https://www.reddit.com/r/IAmA/comments/80ow6w/im_bill_gates_cochair_of_the_bill_melinda_gates/)

————— 推荐阅读 —————

点击图片即可阅读


Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐