我经常开玩笑说图形界面太臃肿。
当然,GUI 也有各种各样有用的应用程序,并且纯文本并不总是适用于所有信息。然而,对我们软件工程师来说,图形界面远非最佳。
图形界面把你限制在作者想要的操作范围内。这会限制了你的创造力以及思维方式。
为了缓解这个问题,GUI 又会包含许多用户不需要的功能。
臃肿软件(Bloatware)包含了一些不必要的功能,而这些功能会占用大量的内存。当软件被这些无用功能淹没而显得笨重的时候,这个软件就变成了臃肿软件。 – Techopedia
与之相反,终端鼓励大家写的程序做一件事并做好,所有的程序协同工作。
小程序组合起来可以执行比单个大程序更广泛的任务。
文本流是实现此目的的通用接口。文本流简单而优雅。即使你找不到你想要的程序,你也可以轻松编写一个。
因此,通过组合程序,你几乎可以做任何你想做的事情。
现在你可能会争辩说,在大多数情况下,知道如何使用这些程序比知道如何使用图形界面更困难。我完全同意这一点。
GUI往往倾向于让你在短时间更简单得内执行操作,因为您可以简单地浏览菜单并找出你想要的按钮。
而终端则不怎么需要探索。您必须阅读手册并找出哪些是您需要用来实现某些事情的功能。
但是,由于我们常用的工具很少,因此学习这些文本命令是值得的。随着时间的推移,这些命令变得比在图形界面上点击更容易记忆。这就是为什么图形界面的效率与您使用它们的频率成反比。
由于各种原因,图形界面的开发成本更高:
- 他们需要比基于文本的界面更多的思考。文本命令比其他视觉元素更精确,因此模糊性更小。
- 他们需要更多时间进行测试,并且这更难自动化。即使可以编写自动化测试,往往不太可靠:我们仍需要人眼来发现问题。好吧,机器学习和计算机视觉可以帮助我们,但让我们现实一点:我们还没有走到那一步。即使到了,那也会更昂贵。
- 如果您想设计一个优秀的应用程序,您需要学习可用性,图形设计,交互设计或付钱给别人做。
图形界面过时得很快。由于维护基于 GUI 程序的成本较高,通常更新要花费更多时间和工作。
随着图形设计的发展,它最终不仅会“看起来很糟糕”,而且如果不经常更新,甚至可能会出现错误的视觉效果。试着找一个比 grep,sed 或 awk 时间更长 GUI 程序,这些纯文本程序这么多年只有很小的改动。很不幸:无论 GUI 程序有多小,你都找不到。
我不是说图形界面没用,决非如此。我的意思是它们往往不适合工程师的工作。
纯文本是永恒的,精确和优雅的,我们应该更多地使用它。
本文翻译自 Lucas F. Costa 发表于其博客的文章,原文地址在 In Praise of Plain Text。