Tools

Matthias Endler

工具

原文由 Matthias Endler 发布,订阅该博客

只要我有记忆以来,计算机科学领域就充斥着宗教般的口水战。

围绕技术话题展开争论本是好事,但口水战不是。我受够了。我厌倦了听人跟我说他们的工作环境有多么多么好、多么多么快。那很好,但根本不重要。你的设备不过是个配角。你甚至不需要电脑就能编程。唐纳德·克努特在便签本上写算法,阿兰·图灵在一张纸上写出了第一台国际象棋电脑。而且它能跑。有本事你也来比比!

对普通用户来说,退而求其次的系统可能就已经够用了。只要花上一点钱,你就能买到一台相当出色的硬件,完全足够用来上网、聊天、存照片、写文档、听音乐和看电影。一台奔腾4、256MB内存再加上任意一个近年的操作系统(很可能还是免费的)就能搞定这些。见鬼,你那台老Commodore也能干大部分事。电脑早在很久以前就已经足够成熟可靠,能胜任这一切了。为了玩《FarmVille》去升级系统毫无必要,就像车子明明开得好好的,却非要买辆新车一样没道理。说到软件,我们中还有很多人仍在用Office 2000、Photoshop 8或是VisiCalc,也从没觉得非升级不可。

专业人士的情况也差不多。好吧,也许我们会多花点钱,但即便如此,硬件的花费跟我们的薪水比起来依然便宜得可怜(但愿如此)。没有什么东西是完美的,但大多数时候已经足够好了。十年前你用的那个编译器?现在照样能干活。我们至今仍在使用那些从计算机石器时代流传下来的编程语言的稍作修改的后代。即便你是在为NASA做数值计算,你主要的工作环境也不过是一个跑着文本编辑器或集成开发环境的黑盒子。

我不在乎用什么来完成工作。找个适合需求的环境,然后用得开心就好。也许你在龙梦易本上用Emacs(你好,理查德·斯托曼),或者在工作站上用Vim。本质上都一样:跑在一块铁上的文本编辑器。你不会因为用了Nano、ed或TextMate就成了更差的程序员。记事本也完全够用。它能打开文件、保存文件,中间还能让你编辑。这功能已经比比尔·盖茨和保罗·艾伦为Altair编写BASIC解释器时拥有的多太多了。如果你找到了用着顺手的东西,就坚持用下去,但别为此争来争去。这不值得浪费你的时间。

别去喂养喷子。说到软件,别再掉进FreeBSD大战Linux大战Windows大战你妈这种老掉牙的陈词滥调里。相反,聊聊你的代码。让我们看看你解决问题的能力。务实一点吧。

空谈无益,拿代码来。——Linus Torvalds

我不在乎你用哪种编程语言。Java?没问题。Visual Basic?很好!Scala、Cobol、PHP、C++?都很好。用汇编或者lolcode来写也行。别再抱怨X语言少了Y功能。自己写个库,或者换个别的用。别再说JavaScript是玩具语言了。它只是不适合你的需求而已。相反,给我看看你用Lisp写的冒险游戏。写个Brainfuck解释器。做点什么。让事情动起来。

关于PHP,nir在Hacker News上写道

任何傻瓜都能对PHP写几句尖酸刻薄的评论。却很少有人能写出影响力与之相提并论的代码。

当我承认我喜欢PHP的语法时,你会不会惊得从椅子上掉下来?好吧,它确实有些粗糙的地方(真的需要那个$符号吗?),但更重要的是我用它能完成多少事。很长一段时间里,PHP都是我写那些即兴的、一次性的脚本时的首选语言。它看起来有点丑,但能在任何服务器上运行,而且自带了海量内置功能。它非常适合快速原型和把各种东西粘合在一起。事实上,当你写一款软件时,你应该追求的是做出相当不错的软件,而你真正需要达成的,是做出足够好、能让用户满意的软件。

Zed A. Shaw在《笨办法学Python》的后记中说得很到位:

我编程已经很久很久了,久到让我觉得无比乏味。在写这本书的时候,我已经掌握了大约20门编程语言,并且可以根据语言的怪异程度,在一天到一周内学会一门新语言。但到最后,这一切只是变得无聊,再也无法引起我的兴趣。在这段学习之旅后我发现,语言本身并不重要,重要的是你用它们做了什么。其实,我一直都知道这一点,只是有时会被语言分心,又把它给忘了。你学习和使用的编程语言并不重要。不要陷入围绕编程语言的宗教之争,那只会让你看不清它们作为帮你创造有趣事物的工具的真正目的。

别对你用的任何工具投入感情。iPhone——很抱歉要让你失望了——不过就是一部手机。没有什么魔法,也没有什么“非同凡想”。“可它是邪恶的!”虚空中传来声音说,“它又不是开源的”。嗯,Android之所以存在,仅仅是因为谷歌需要快速开发一个移动平台。这不过是他们生意的一部分。背后没有什么道德可言。谷歌和微软、苹果一样,也不过就是另一家公司罢了。

我的MacBook对我来说是个可靠的工具,但如果出现了什么“更好”的东西,我会毫不犹豫地把它踢开。我用了五年Firefox之后就抛弃了它,只因为Chrome更快;而当我找到值得接替Chrome的东西时,我也会把它抛弃。依我看,Vim相当不错,但如果有更快的方法,我也不怕把它扔掉。还是动手把问题解决掉,或者去创造些新东西吧。

本文章由 muse-spark-1.2-contributor 进行翻译

评论