彻底不用命令行

  《C Primer Plus》讲到 Mac 有个图形界面编译器,想笑,因而写文章。mysql

  听说命令行就是之前电脑的样子,而想一想我刚接触电脑就用图形界面,不由感慨。用惯了图形界面的人想必是看不惯命令行的吧?我也是见到那个黑框好久好久以后才知道“那不是个bug”——毕竟我对电脑的第一印象就是图形界面。若是早有人告诉我那是多年前电脑惟一的样子,或许我很快就能接受……图形界面给人的感受是,电脑“进化了”,可是图形界面编译器让人啼笑皆非——那本来只要输入一行命令的——孰好孰坏?从机器的角度看,图形界面复杂些,核心区别(信息流动方式)未必大,但图形界面和命令行比如图像和语言的区别,我就想谈谈这个区别。git

  操做速度还在其次,我想说的是操做的简明程度。好比一个文件夹系统,在命令行打开一个子文件夹用命令,而图形界面是用鼠标双击——能够说,图形界面符合咱们大脑运做的方式,咱们能够想象那里真的有一个文件夹,而双击就是打开——单击对应的选中也很符合咱们的思惟(仍是个人思惟被图形界面影响了?)“对象”这一律念彷佛是和视觉牢牢关联的——【命令行操做其实也是图形化的】,不管谁都不会但愿命令行只靠线性输出,而是把目录排成整齐的一列(大约是大脑并列关系的体现);关系网中,咱们也更但愿看到图表示。命令行中,咱们像在说话,——区别何在呢?命令行既然也有图形界面的性质,那全无图形界面的东西是怎样的呢?——彷佛不大现实,那命令行和(传统意义上的)图形界面区别何在呢?sql

  我以为可能在于【即时操做】。设想这样的文件夹系统A:能够经过上下键使某个选项高亮——大家能想象我在说什么;再设想一个文件夹系统B,在每一个文件前对应一个数字,输入数字则为打开指定文件;再设想系统C,输入文件名打开;最后D,即咱们常见的,不给你看文件,想知道身边有什么得用dir或者ls命令——比较差别看看?不妨再比较下一种表述:shell

  • A:能够经过上下键使某个选项高亮
  • B:在每一个文件前对应一个数字,输入数字回车则为打开指定文件
  • C:入文件名打开
  • D::不给你看文件,想知道身边有什么得用dir或者ls命令(这不是文件夹为主体,而是命令为主体)

  因此命令行实际上是个混搭的东西,它更像——谈话录。我如今提出一个改造方案(仿MC):命令始终在最底端输入(许多行的命令不常见吧),默认即时清屏——只显示当前命令的结果,状态栏单独做一行(而不是做为输入提示符)。其实这是个挺好的问题:若是你在若干年前设计界面,你怎么设计?浏览器

彻底不用命令行

  谈话录式的设计无疑是简洁的,但命令行固然不止能够谈话,MySQL就用命令行制表。那我天然能够另外写一个shell,让操做更人性化些——可是能怎么人性化法?!图形界面还不够人性?——这就是我正在讨论的:图形界面好用在哪里?我要用gcc的时候,为何说一行指令更好些?编辑器

  咱们回顾一下图形界面的流程:1.打开编译器窗口,2.在“文件”菜单中选择“打开”,而后从目录浏览器中选择文件,3.而后在“编译”菜单选择“编译”。这一串操做彻底等价于1.命令行进入目标菜单,2.命令“gcc xxx.c”——咱们分析一下:在命令行里,有“当前位置”这一律念,而且为惟一状态,可是图形界面中的软件是独立打开的;在命令行里,通常不“打开”程序,而是带参数运行,将处理信息一次性输入。另外比较mysql和gcc(前者是命令行下运行),前者主要为文件内操做(于是自由度高),后者为文件级别操做(自由度低),于是后者更理想。(其实低自由度的图形界面程序也有,参考回收站的功能)图形化反而使得低自由度操做困难了。图形界面仍然以文件夹系统为主(其实大能够宛如游戏),故而图形操做限于文件、文件夹的拖动——我好像跑题了,由于图形界面和鼠标是两回事,而鼠标先于图形界面,也就没有【不用鼠标的图形界面】这么一个尴尬的状况,但我有必要讨论这个状况。我小时候用过没有鼠标的电脑(由于被收缴了),可是仅有键盘也能作不少事(不考虑鼠标键),虽然那时候有些游戏不能玩是个挺大的问题。文件点不到,只能一个一个跳,网页也同样。鼠标的工做在于“所见即所得”,和“即时性”有点像,但比以前的例子更近一步。鼠标使得二维平面内不用加以空间标识(试想一维鼠标,也是如此,虽然说有些滑稽),能够无条件高精度选中必定点,代价是一部分速度。命令行在此的缺点有二:1.命令行以文字为主,因此只能针对文字/数字标识,且选择方式是输入;2.命令行极少以二维方式展开文件。(可是其实我就没见过利用好二维展开的)命令行还有一个我不知道是否是缺点的缺点——只能同时打开一个程序或窗口,或者说切换不方便——我其实说很差,但我能够看着图片把图片中的代码输到编辑器里。所见即所得使得运行的程序能在状态栏被看见,而且看见就能够操做。ide

  其实图形界面也能够优化,只需加一条命令输入行,而且支持鼠标操做就行——好比按住Ctrl点一下gcc,把这个程序加入命令行,再点一下.c文件,成为第二个词,而后按回车运行,此前能够再输入参数,好比在gcc图标上作点手脚,加几个可选项……就避开了打开界面。不过这可能依然会颠覆惯用图形界面者的软件观——软件怎么能不打开呢?优化

  图形界面除了玩游戏看电视究竟还能干什么?其实对于文件系统(图形界面“少数”正当的用处之一),有个很好的对照:git 。我一直但愿 git 能有个图形界面——不是如今的这样。用第二个维度表示时间展开再天然不过了,我以为界面就该是这样的:(小图)命令行

彻底不用命令行

  可是 git 淡定地把横向维度用详细信息填满了。事实上这是命令行加制表符就能作的事。拖动提交,多美妙的操做……设计

(2018-1-9于地球)(完)

相关文章
相关标签/搜索