gui界面是什么意思|对着黑框命令行对比之后才慢慢看懂

gui界面是什么意思|对着黑框命令行对比之后才慢慢看懂

之前帮朋友调一个小脚本的时候,他突然问我gui界面是什么意思,我愣了一下,脑子里第一反应就是电脑上那些能点按钮、拖窗口的画面,而不是只能敲字符的黑窗口。那天本来只是想简单给他说两句,说着说着发现自己最开始接触的时候,也把好多东西混在一起,分不清程序本身和它展示出来的界面。

最早接触编程相关东西的时候,打开的全是黑乎乎的控制台,输入一行文字指令,回车之后等着返回文字结果,没有图标,没有输入框,点鼠标也不会有任何反应。那时候以为所有软件都得这么用,直到后来打开同一款工具的另一个版本,窗口直接弹出来,上面摆着选择框、滑块、确认按钮,鼠标点一下就能执行操作,不用背长长的命令。当时只觉得这个版本好用很多,根本不知道这就是gui界面。

身边一起折腾这些的人,还有人把gui和软件本体当成一回事。有一次下了一个工具包,解压之后只有一个主程序文件,双击之后还是命令行,他就纳闷,说网上明明截图看着有好看的窗口,怎么自己这个不一样。翻了半天压缩包里的文件才发现,这个包是分开的,核心程序是后台跑的,gui界面是另外单独的一个启动程序,不打开它,就只能用命令交互。

这一点我当时也绕了好久。

同一个程序,底层处理逻辑没变,只是外面套了一层可以可视化操作的gui界面,给普通人省去记命令的麻烦。不是所有程序都一定会带这个东西,很多给开发者用的工具,默认就只保留命令行版本,体积更小,跑起来负担也轻,只是上手门槛高不少。

后来试过自己简单拉一个界面模板,才体会到差别。写底层功能代码的时候,只管数据怎么读取、怎么运算,不用管长什么样子。做gui界面的时候,要安排按钮放在哪,文本框多大,点击之后触发哪一段代码,字体颜色、弹窗提示全都要单独写。那段时间经常改完按钮位置,结果底层功能出问题,来回来回调试,才明白界面只是一层和人交互的外壳,真正干活的还是背后的代码。

也遇到过界面做得很花哨,反而不好用的情况。有个小工具,gui界面堆了一大堆图标,菜单藏得很深,找一个简单的选项要连续点开三四层,还不如直接敲一行命令来得快。那时候就慢慢意识到,gui界面本身没有好坏,它只是一种交互形式,有的做的顺手,有的做的累赘,完全看做它的人怎么设计。

手机上的APP页面,Windows里的文件夹窗口,安装软件时弹出的下一步弹窗,其实都属于gui界面,只是平时习惯了,不会特意去叫这个名字。我们每天点开图标、滑动页面、勾选选项,都是在和gui界面打交道,只是很少有人会停下来想这个叫法。

我自己现在也没有办法用一句话给它下一个特别标准的定义,只是经过这么多次折腾之后,能分得清什么时候是图形交互,什么时候是纯命令交互。不同人的感受会不一样,有的人习惯了命令行,会觉得gui界面多余,有的人完全看不懂指令,只能靠着图形窗口去操作软件。

那天和朋友聊完之后,他点开那个带窗口的程序试了试,说这下总算明白差别在哪了。我坐在旁边看着屏幕上的按钮,突然想起最开始盯着黑框发呆的样子,原来很多名词,光看文字解释很难接住,非得亲眼对照着两种交互方式用上一回,心里才会有实感。