该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为什么用vim(或者emacs)写代码?
我见过太多ide写过的程序他们是以下状态分布的
第一种几乎没有什么后端代码,所有的界面和代码混合,奇怪的空格和控位符。——这是大多数ide所默认的状态,因为制造垃圾最简单。
第
二种做到了界面和代码分离,但是里面充满了自动填充的人所看不懂的变量名等东西——ide能做很多事情,包括你没让他做的,如果是人工手写的,那么你还可
以讨论统一命名的问题,但是ide却麻烦的多。另外,如果你只有一个编辑器的话——我是指带扩展功能的编辑器,你可以往上面加你喜欢的功能,但是ide不
见得那么简单
第三种,他费了功夫,已经去掉了所有不需要的功能,但是麻烦是ide鸡肋的智能——他能自动补齐对应标签(或者括号,或者其他神么),但是又不够智能,比如总是放在错误的位置,或者大部分正确,但是又无法很好的处理意外情况。我没有见任何人很好的解决了这个问题。
第四种我见到的是滥用平台提供的函数和功能,大段的生成代码却没有任何优化,堆积出来的东西就像一个发育不良的脑瘫儿。——ide可以补全,ide可以显示功能,ide可以帮助你理解所用的函数,但是,他不能做到全部,比如帮你选择正确的函数而无需思考。
而我又见过太多vim(或者emacs)所写的代码。包括我,即使是页面(js,css或者html)也是用他们来写。如果说为什么我更喜欢这样的代码的话,是因为正如《梦断代码》中所说的,vim(或者emacs)提供了良好的“限制”!
对,
正是限制,而非智能而造就了良好的编程习惯——我可以感觉到我写C的时候括号配对的节奏,我就是不去看身体也知道我在写什么,因为函数和程序块括号换行的
节奏(你可以吧回车当作节拍,函数一般还要多一个语句结束符)正好相差一个。甚至你可以明白,任何函数都是这样的,你噼里啪啦的打字,你能感受到不同的节
拍——而不是像ide那样单一的噼(首字母)——啪(补全)。
其次,正是功能的限制,你不得不考虑很多事情,就像写作一样——合理的命名,精简的函数(否则你会花很多时间去记忆和输入),复杂的组合,所以写出来的代码也是优美的,那些不是一个电子脑所能给的符号,而是真正有逻辑意义的代码。
最后,他不是最快的,但是最终是快的,而且工程越大,他的速度越快——因为你考虑了结构,而结构是如此的重要,直接决定了时间,代码量,甚至金钱,甚至已经决定了你是否值得去写那些代码。
如果以上都不是理由的话,我想你也是正确的,因为我不是一个优秀的码农,现在我也没做相关工作,编程只是每夜的业余爱好罢了。