`
抛出异常的爱
  • 浏览: 620762 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转载]一篇励志文

阅读更多
先得承认我是标题党
写这个是因为看到下面有朋友在讨论有了ide为什么还用vi/emacs
产生了想说两句的冲动。其实CLI我现在用的也不多
因为这两年不大写程序了
除了隔三差五的用VI、sed和awk将一些个人笔记
(都是小文本文件散落在我所有的计算机里)
修改文字、转成标准csv格式、导入到我的个人笔记数据库才使用CLI
其他时候都是GUI了。
尽管如此
我在我所有的计算机上——办公室一台windows、家里一台windows、一台linux、一台mac上——都安装了一套shell工具
办公室用的是cygwin
家里的windows只安了gnuwin32我需要的工具
而linux和mac就更简单了
可以不用自己上网去下载。从个人来说
shell工具还是我离开不了的拐杖。
下面的朋友说
还在用CLI而不用ide的是怀旧
过去写程序多的时候ide还没有现在这么好用
所以后来ide好用了
却懒得学习新东西
有点这个原因。确实
我刚接触计算机的时候连GUI这种东西都见不到呢
当时写程序是在DEC VAX 780的终端前面
对着黑色屏幕上闪烁的绿色字符发呆
而那段岁月是我个人最好的岁月
没错
确实是有些怀旧。还有朋友说
用cli是写东西时候比用键盘+鼠标更方便
双手可以不离开键盘
也有点这个原因。举个例子
用vi编辑东西的时候
用hjkl移动光标比手指离开字母区去按方向键省力很多
没错
对于懒人来说
这确实是个不错的设计呢。但GUI下也有很多便利之处啊
而且单纯的怀旧也不足以让一个实用主义至上的工程师抱残守缺
对新东西的好处视而不见。所以
这些原因都对
但不足以解释为什么很多人和我一样还喜欢使用CLI。
过去我也曾经想过这个问题
我不知道别人怎么样
但对我来说
CLI对我仍有很高价值的根本原因在于CLI更符合人类工作时的习惯。等等
有朋友会说
现实世界是丰富多彩的
而GUI比CLI更接近于真实世界的情况
怎么能说CLI更适合于人呢?这个我不否认
GUI是计算机科学和工程的一个伟大进步
所以我最常用的接口也是GUI。但是。。。
(用葛优在某部王朔电影里面的对白:你就别说“但是”前面的东西了直接说吧)
想想看
如果你不是在网上浏览新闻或者是有一搭没一搭的看电影
而是在写一篇文档、写一段代码时
精力高度集中的时候
你的眼睛在“看”什么?发生什么事情的时候你会感觉“分神”了?为了详细的解释这个
可以来看看在写一段代码的时候我们通常的思维活动和行为
假设我们已经想好了这段代码要怎么写
(1)首先把它敲到计算机里去
(2)接下来运行一下编译/或者解释器
(3)如果通过
我们看看结果是不是我们想象的那样
(4)如果没通过或者结果错误
我们会看警告和出错信息
然后回头去看源代码。
仔细观察一下
我们的注意力移动其实是一个线性的过程
首先注意力集中在“看”着敲出的代码是不是自己脑子里所想的。然后我们的注意力移动到运行编译/解释器上的操作。
接下来我们会“看”结果
根据结果不同会返回到源代码或者报错信息。在这个过程里面
我们倾向于按照次序一次只做一件事情
这在人机工程学里面有个专门的名词叫做“心流(flow)”
大意是指我们的注意力流动方向。人类的心流是在长期进化中形成的
符合我们心流的模式的东西会让我们感到舒服自然
不符合的会让我们迷惑或者恼火。
OK
到这里我想你大致明白我的意思了
CLI界面将整个计算机屏幕作为一个工作窗口
强迫我们把注意力集中在当前的东西上
“先把代码写好”“然后不用管代码的事情
去运行编译器”“这个有错误
应该回头重新看源代码文件了”
每次只做/只能做一件事
一方面增加了我们对自己工作流程记忆的负担(但这个属于比较容易记住的东西)
另一方面
在流程中的任何一个环节
都不太容易分神去想前面或者后者后面的工作步骤(因为没有能够让你分神的东西)。
除此之外
在使用CLI时
我们的眼睛基本上都在“看”屏幕光标的位置
正常的光标移动是连续的上下左右、一个一个字符位置的移动
这样我们的眼睛只要“跟着”光标
就知道自己在“那里”。另外
虽然光标虽然可以跳行
但跳行的时候
我们通常已经“想好了”让它跳“几行”
也就是我们已经做好了准备“看”那里了。在这方面GUI有时候未见的要优于CLI。
比如一个经典的IDE窗口布局是上方是菜单条、窗口左边是代码树结构、中间是代码编辑
窗口下方是编译信息提示窗口。
注意我们的视线移动
首先我们在中间左侧“看”代码树
然后移动到中间右边
看代码
然后跳到上面去运行编译工具
接下来跳到下面看出错信息。视线移动的距离比较大而且有跳跃性
这样就会让人感觉容易疲劳
而且更重要的是
因为屏幕上显示了更多的内容
我们的注意力就更容易被分散。
说这些并不意味着我是CLI或者VI的死忠
而是说多种工具都可以解决问题
但一些工具会让你用起来很舒服
另外一些就不是那么舒服。对于某些情况
一些土得掉渣的工具可能会让你更容易得心应手。
为了表示我不算是gnu工具链和CLI的死忠
在这里顺便赞扬一下好像是VB最早出现的、现在很多ide都有的功能
就是函数提示
在你引用一个函数的时候
在你编辑的位置为你提供函数的正确写法和参数提示。这是一个特别优秀的设计
只是我不能肯定是不是MS最早发明的

http://forum.ubuntu.org.cn/viewtopic.php?t=159413
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics