GUI还是CLI

很久之前我看到一位博友写到GUI(图形用户界面)和CLI(命令行界面)的设计哲学,中心含义是:两者各有优劣,无法说哪种是最好。这里我用同样的标题,谈谈另一个方面的问题。

的确,两者都有优点和不足。

图形界面更加直观,更符合初学者的类比逻辑。点几次窗口上的叉号就会明白它会关闭窗口。鼠标和触摸是伟大的进步,让操作更加自如。而这方面就不是命令行能达到的。面对一个黑色的终端,你能想象下一步应该敲哪个命令吗?或许高手可以,但大部分用户甚至不知道如何切换目录。从这一方面说,图形界面往往比命令行易用。

但并不绝对。有时候你要进行一些稍稍高级的操作,比如将所有文件名中的“LibreOffice”替换成“libreoffice”。用一行命令就可以解决的事情,你可能需要手动操作数百次,花费几个小时,或者要去找一个合适的工具软件,甚至自己编写一个……

不过命令行的便捷是有风险的,如果使用过命令行,你一定会遇到。如果你在命令行里用“rm”删除了一个文件,很遗憾,你再也找不回它了。你可能在批量操作时输入错了一个字母,结果是你不得不一个一个去把它们改回来,有时是无法恢复的。

命令行的设计哲学是100%相信人。它假设每个用户都能记住命令的用法,并准确无误地通过键盘输入。但人对命令的记忆是非常困难的,而且是会犯大量错误的。一个计算机高级用户生病住院半年,就忘掉了如何用命令行设置无线网络。如果你每分钟输入上百单词,那么出错也就不足为奇了。对着黑白的屏幕,闪烁的光标,犯错的几率会更高。而它的另一个观点是,软件总会出错,所以越复杂、功能越多的软件越是会漏洞百出。所以命令行程序都尽可能简单,操作方式尽可能单一。你会发现所有的命令行选项参数都那么严格,那只是为了减少混乱。如果你想玩转它,请花时间记住正确的命令和选项吧……

图形界面的设计哲学是不相信人。它认为每个用户都会犯错,而且他们记不得那些命令甚至快捷键,没有时间查使用手册。所以软件会有形象化的图标,会运用大量通用的界面设计架构(菜单栏,工具栏,内容区域,状态栏,滚动条),一些仿照现实物理现象的操作(拖动,按钮,滑块)。这一切都是为了让用户很容易被提示,即使不阅读帮助文档也能操作。设计者会假设用户可能犯的各种各样的错误,做出不同的反应或提示。用户刚想关闭窗口,就被提示“是否保存?”这会阻止用户进行误操作。但弊端是软件会变得相当复杂,为了避免用户忘记保存,不得不引入自动保存系统。用户会很欣然接受,但却是软件设计者的噩梦。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.