码迷,mamicode.com
首页 > 其他好文 > 详细

GUI编程与CLI编程

时间:2019-06-28 23:15:47      阅读:483      评论:0      收藏:0      [点我收藏+]

标签:简洁   配置   平台   完成   黑客   指令   文本   提示   严格   

作为一名多年的iOS开发人员,多次触发我思酌“GUI编程与CLI编程”各自的优劣,尤其是在当我为界面交互花费大占比时间时,时常怀疑自己的工作性质,我终究还是为互联网工作的码农,而不是让互联网为我所用的明智人士。(容我把偏GUI编程看成是取悦他人,把偏CLI编程看成是取悦自己。)

-----前言

  • GUI = 功能逻辑 + 用户交互逻辑
  • CLI = 功能逻辑

支持CLI的意见:(摘抄)

1. 写GUI程序,不光要编写功能逻辑代码,还要用某个UI引擎编写一个和谐美化的界面展示给用户,如果还有很多的用户交互,功能逻辑和交互逻辑代码耦合在一起,那么代码量和代码复杂程度也会成倍增加。因为任何一个UI引擎的代码量都远远超出你要写的软件的功能逻辑代码的几十倍了,外加熟悉掌握UI引擎的用法,然后再去写界面的交互逻辑代码,这工作量也是翻几倍的。

举个简单的例子,让你做一个电子表格,比如类似于Excel的完成特定格式的数据的录入和保存,写个CLI的程序,才能有多少代码量,然而如果你要做成GUI形式的程序,代码量起码是CLI的几千倍了。

 

2. GUI的好处是“所见即所得”,缺点是“所见即全部所得”。

 

3. GUI环境通常受限于它们的设计者想要提供的能力。如果你需要超越设计者提供的模型,你大概不会那么走运,而且很多时候你确实需要超越这些模型。

 

4. 首先是编程方便,很复杂的功能对于GUI来说,在处理交互上可能要花费一个月时间,编写相同功能CLI的话可能只会用几天。

其次,也是最重要的是可组合:可以简单地将小程序组合起来实现各自所需要的复杂大功能。而且也方面GUI等程序在别处调用。

再次,就是跨平台。CLI不需要考虑太多平台相关的东西。而且还可以在它之上包装GUI。

还有一点就是,CLI方便远程执行,一行ssh命令就能做到。

 

5. CLI可以说是人机界面的远祖,哪怕是远古时期的纸带式计算机,也同样需要使用“命令行”方式工作。可以说命令行是最符合计算机工作方式的操作方式。

由于主要使用文本作为界面,CLI软件对计算机的要求也低得多,在同等配置的机器上也要比GUI软件的性能好得多。也正因此,CLI软件得以在广大的服务器系统上大行其道,在这些系统上,性能是最重要的。同时,由于具备了比GUI软件好得多的可伸缩性,CLI的使用范围也远比GUI广泛,在很多嵌入式平台上,我们甚至只能看到CLI的身影。

 

6. CLI的身上,带有编程的“影子”。

 

7.  尽管GUI提供了良好的易用性,极大地填补了人机对话的鸿沟,但在另一方面看来,实际上增加了软件开发的成本,缩小了软件的适用范围,同时降低了软件的工作性能。

 

支持GUI的意见:(摘抄)

1. 说句实话,如果用户都接受CLI程序的话,都会用CLI程序的话,还会有哪个Windows程序员吃饱了撑着,花百倍的工作量去做UI呢?

如果把Word或者Excel都做成命令行形式,那世界上得多增加多少Word或Excel的培训机构了?

如果把各种游戏比如《王者荣耀》做成命令行形式,那还能赚钱吗?

 

2. 说CLI用起来不舒服,至少对记忆力差又粗心大意的家伙是这样的。

 

3. GUI能呈现各种多媒体数据,而CLI基本只能呈现文本。

 

4. GUI由于采用了大量的图形元素,界面会更显得具有艺术性,富有人性化。相对于枯燥的文本来说,精致且合理的图形大大增加了界面的易用性。简洁明了的图形控件使得软件操作起来更为直观。

相较于GUI而言,CLI通常就不具备什么美观程度了。为了提高性能,CLI通常采用纯文本方式工作。

 

5. 快捷键取材于CLI,实质上是一种直接向系统发送指令的操作方式,但由于依赖于GUI,我把它归为GUI的工作元素,并视为提高工作效率而向CLI所作的折中。

 

6. 但毕竟人不是计算机,符合计算机的工作方式的同时也就意味着不那么人性化。

 

7. 另外,对于CLI软件来说,执行结果往往并不是那么清晰的。用户常常不得不面对满屏滚动的反馈信息,体验黑客帝国一般的快感,或者是仿效真正的黑客一般从浩瀚的log海洋中寻觅那条丝毫不起眼的提示信息。

 

8. 有人把CLI软件的工作方式称为“所想即所得”。这种方式的特点在于,虽然没有直观地反应出执行结果,但却能保证执行结果可以和你的意图一样。从某种程度上来说,这种说法是正确的,因为用户的意图总是以“命令 + 参数”的方式精确地传递给系统,最后虽然不能直观地看到执行结果,却总能发现系统已经出色并严格地完成了工作。但从某种意义上来说,这种说法是不准确的,因为当面对着长长的参数手册时,用户往往已经搞不清自己的意图到底是什么了。

 

9. GUI软件可以通过使用大量的图形元素和图形特效,从根本上改变软件的表现形式,“美观”和“人性化”渐渐成为软件界面设计的讨论主题。随着计算机处理能力的发展,我们甚至能够以3D的形式来呈现和操作软件。大量GUI软件的出现大大降低了学习和使用计算机的门槛,赏心悦目的操作界面吸引了各行各业的人投入其中。如果说CLI适应了各种各样的计算机,GUI则适应了各种各样的人。

 

10. 以操作系统开发商为例,可以说,如今做能坚守一易用性阵地的当属苹果公司。尽管其产品同样存在一些瑕疵,但直到今天,苹果公司仍然坚持发展人机界面设计学,其创造的GUI软件大都是艺术性和易用性结合的典范。

 

中立态度:(摘抄)

1. 因为两者面向的用户不同,初中也不同。今天看了《程序员修炼之道》这本书,可谓是有了更深入的了解。GUI侧重于易用,CLI则侧重于效率。

 

2. 现在几乎所有人都没办法离开GUI,对于程序员等专业用户来说不可能离开CLI。 

 

GUI编程与CLI编程

标签:简洁   配置   平台   完成   黑客   指令   文本   提示   严格   

原文地址:https://www.cnblogs.com/cchHers/p/11087787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!