Tools

Matthias Endler

工具

从我有记忆以来,宗教式的口水战就一直在侵蚀计算机科学。

围绕技术话题展开争论可能是有益的,但口水战不是。我受够了。我厌烦人们告诉我,他们的工作环境有多么好、多么快,诸如此类。这没什么问题,但并不重要。你的设备只起辅助作用。编程甚至不需要电脑。Donald Knuth(唐纳德·克努特)曾在记事本上写算法。Alan Turing(艾伦·图灵)曾在一张纸上写出了第一台国际象棋计算机。而且它还运行成功了。你倒是胜过它试试!

对于普通用户来说,次好的系统大概就已经足够好了。只要花几美元,你就能买到一件出色的硬件,完全足以用来上网、聊天、归档照片、写文档、听音乐和看电影。Pentium IV、256 MB RAM,再加上任何近期的操作系统(你很可能可以免费获得),就能做到这些。说真的,大多数事情你甚至可以用自己的老 Commodore 来完成。电脑早就已经足够成熟、可靠,能够完成这一切了。没必要为了玩 Farmville 就升级系统,就像旧车明明还能完美运行,就没有理由买新车一样。说到软件,我们中的许多人仍然在使用 Office 2000、Photoshop 8 或 VisiCalc,也完全没有升级的冲动。

专业人士也处在类似的境地。好吧,也许我们会多投入一点钱,但即便如此,与我们的薪水相比(希望如此),硬件仍然便宜得不可思议。没有什么是完美的,但大多数时候,够好就行。你十年前使用的那个编译器?它现在仍然能完成工作。我们至今仍在使用一些源自计算机石器时代、只是略加修改的编程语言。即便你在为 NASA 做数值计算,你的主要工作环境也不过是一个运行着文本编辑器或 IDE 的黑盒子。

我不在乎用什么来完成工作。找一个适合需求的环境,然后心满意足地用它。也许你在 Lemote Yeelong 上网本上使用 Emacs(向 Richard Stallman(理查德·斯托曼)问好),也许你在工作站上使用 Vim。其实都一样:金属盒子上运行的文本编辑器。你使用 Nano、ed 或 TextMate,并不会因此成为更差的程序员。Notepad 也完全够用。它能加载文件、保存文件,也能让你在两者之间编辑文件。这已经比 Bill Gates(比尔·盖茨)和 Paul Allen(保罗·艾伦)为 Altair 编写 BASIC 解释器时所拥有的功能多得多了。如果你找到了令自己满意的东西,就坚持使用它,但不要开始争论。这不值得浪费你的时间。

别给巨魔喂食。说到软件,别再陷入 FreeBSD vs. Linux vs. Windows vs. 之类的老套陈词滥调。相反,谈谈你的代码。让我们看看你解决问题的能力。务实一点吧。

空谈无益,给我看代码。——Linus Torvalds(林纳斯·托瓦兹)

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

关于 PHP,nir 在 Hacker News 上写道

任何白痴都能写一条尖酸刻薄的评论来嘲讽 PHP。真正能写出影响力哪怕接近它所产生的代码的人,却寥寥无几。

如果我承认自己喜欢 PHP 的语法,你会不会从椅子上摔下来?好吧,它确实有一些粗糙之处(我们真的需要那个 $ 符号吗?),但更重要的是,我能用它完成多少事情。很长一段时间里,PHP 都是我编写临时一次性脚本时的首选语言。它看起来有点丑,但能运行在任何服务器上,而且自带数量庞大的功能。它非常适合快速原型开发(rapid prototyping)和把各种东西粘合在一起。事实上,当你编写一段软件时,你应该努力产出相当不错的软件;而你真正需要做到的,是产出能让用户满意的够用软件。

Zed A. Shaw(泽德·A·肖)在 Learn Python the hard way(《笨办法学 Python》)的后记中说得很好:

我编程已经很长时间了。时间长到这件事对我来说无比无聊。在我写这本书的时候,我已经了解大约 20 种编程语言;根据语言有多古怪,我可以在一天到一周内学会新的语言。但最终,这一切变得无聊起来,无法再引起我的兴趣。在这段学习旅程之后,我发现语言并不重要,重要的是你用它们做了什么。其实我一直都知道这一点,只是会周期性地被语言本身吸引注意力,然后忘掉它。你学习和使用哪种编程语言并不重要。不要被围绕编程语言形成的宗教式崇拜吸进去,因为那只会让你看不清它们真正的用途:作为你用来做有趣事情的工具。

不要对自己使用的任何工具产生感情。iPhone——很抱歉让你失望——就只是一部手机。没有魔法,也没有什么“Think Different”。“但它很邪恶!”以太中有人说,“它不是开源的。”不过,Android 的存在只是因为 Google 需要迅速开发一个移动平台。它不过是 Google 业务的一部分而已。这里没有什么道德寓意。Google 也不过是又一家和 Microsoft 或 Apple 一样的公司。

我的 MacBook 是一个可靠的工具,但如果有什么“更好”的东西出现,我会很乐意把它换掉。我用了五年 Firefox,后来只是因为 Chrome 更快就弃用了 Firefox;等我找到值得替代 Chrome 的东西时,也会把 Chrome 换掉。在我看来,Vim相当不错,但如果有更快的做事方式,我也不会害怕抛弃它。相反,动手解决问题,或者创造一些新的东西。

原文由 Matthias Endler 发布

本文章由 openai/gpt-5.6-luna 进行翻译