[讨论]编程的时候有那么多好用的ide,为什么还要用vim/emacs

不同视角、不同观点、深度探讨,禁止人品和道德攻击
回复
头像
lailue
帖子: 582
注册时间: 2007-10-06 23:37

#46

帖子 lailue » 2008-01-20 10:18

转发节选一段关于IDE的

===============================================
IDE

有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些 IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:"IDE 开发迅速,调试方便,适合大型程序......" 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。

高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。

你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道 Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE。微软内部程序员最喜欢的编辑器其实是 VIM,用 VIM 的微软程序员上次向乌干达的可怜儿童捐助了1000多美元,这是值得称赞的。

有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用 IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说"GNU Emacs is evil",但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。甚至高级的 Windows 程序员也不用 IDE,他们可以从命令行调用 cl,nmake 来编译自己的程序。虽然这样的 Windows 程序员很少,但是他们却是最了解 Windows,最高明的 Windows 程序员。

为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器...... 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb, ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮...... 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。

而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件...... 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。实际上 make 在其它方面还能帮你很多忙,我的每一个比较大型的 LaTeX 文档都是用 make 维护的。

====================================================
头像
nouse
帖子: 133
注册时间: 2007-11-10 1:09
来自: 上海

#47

帖子 nouse » 2008-01-20 13:31

你说的东西,glade和qtdesigner都可以做了,但他们都不是IDE。
真正的程序不可能是你那样做的,你那样做出来也就是一个hello world。
ljj_jjl2008 写了:
也许你所的对,但是效率问题?用IDE,鼠标拖动几个控件,自动排列组合一下位置和大小,设定一下参数,然后放下一个按钮,双击按钮自动进入代码编辑状态,写几句代码,一个程序产生了!然后按快捷键(f9之类的),编译代码简单的很,效率又高,特别是访问数据库的程序。

还有,你说ide开发不可控,我也不认可,IDE在纠错和程序调试上比VIM强好多,编的程序可以逐行运行,可以跟踪内存变化,可以改写内存变量值用于测试特例,编译出来的程序是相当稳健的。
头像
skylarkwnl
帖子: 224
注册时间: 2007-06-13 11:32

#48

帖子 skylarkwnl » 2008-01-20 15:28

ide集成了所有东西,但并不都是最好的,
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#49

帖子 eexpress » 2008-01-20 15:42

lin的风格,把大软件拆开成小软件来维护,稳定得多。使用也方便,灵活。
小软件,本身就不需要ide来维护了。有svn这些,多好。
lailue的节选不错。
● 鸣学
lb_bn
帖子: 1261
注册时间: 2007-02-25 16:56

#50

帖子 lb_bn » 2008-01-20 17:08

lailue 写了:转发节选一段关于IDE的

===============================================
IDE

有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些 IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:"IDE 开发迅速,调试方便,适合大型程序......" 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。

高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。

你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道 Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE。微软内部程序员最喜欢的编辑器其实是 VIM,用 VIM 的微软程序员上次向乌干达的可怜儿童捐助了1000多美元,这是值得称赞的。

有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用 IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说"GNU Emacs is evil",但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。甚至高级的 Windows 程序员也不用 IDE,他们可以从命令行调用 cl,nmake 来编译自己的程序。虽然这样的 Windows 程序员很少,但是他们却是最了解 Windows,最高明的 Windows 程序员。

为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器...... 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb, ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮...... 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。

而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件...... 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。实际上 make 在其它方面还能帮你很多忙,我的每一个比较大型的 LaTeX 文档都是用 make 维护的。

====================================================
好文。 :D
头像
tipfoo
帖子: 303
注册时间: 2007-07-12 16:30
来自: 桂林

#51

帖子 tipfoo » 2008-01-21 19:09

lailue 写了:转发节选一段关于IDE的
有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些 IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:"IDE 开发迅速,调试方便,适合大型程序......" 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。
现在,已经有了一个Ubuntu——几乎集所有发行版优点于一身的Linux OS;
我一直在期待——期待不久能出个集所有开发工具的优点于一身的Linux IDE。

大家应该能想到,为什么那么多人“想有个VC+VA那样的开发环境”?
就因为它的好啊!不说其它,就认它提供的“开发效率”
高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。
阿Q!偏执~!
为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器...... 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb, ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮...... 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。
那就学习一下Ubuntu啊!搞出个IDE,集成VIM+GCC+gdb+strace。或者更好点,可选择Emacs/ddd/ltrace。
Ubuntu不也是还有Kubuntu, Eubuntu?
而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。
(说VIM好,我知道)
不也是想搞得像IDE一样嘛?!还装出害羞的样子,从身后拿出个什么牌坊来……
其实作者不是不知道,一个好的IDE能极大的推动Linux的普及。
头像
itux
帖子: 223
注册时间: 2008-01-10 14:03

#52

帖子 itux » 2008-01-21 19:32

用什么编写程序并不重要,最可贵的是效率,工具本身就是为了达到这个目的,无论用什么,争辩能带来的很少,自我掌握的很多才是最为本质的。
顺带说一句:只是用vim处理文本,但是已经有些上瘾了 :o
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

#53

帖子 Strange » 2008-01-21 21:17

现在还有人拿 王垠 大神的文章说事啊。
当然他的文章错是没错啊,而且也很热血啊,我以前每个月都要回味一遍的 :D

不过,观点太激进,很多东西就很难参考啦
头像
lailue
帖子: 582
注册时间: 2007-10-06 23:37

#54

帖子 lailue » 2008-01-22 2:51

如果哪天听到哪个操作系统都用IDE开发,那么那个操作系统离末日不远了。
不过,也不必每个人都那个层次,顶层程序用IDE还是不错的。就像OSI 七层,每层分工协作。
头像
matri
帖子: 1140
注册时间: 2006-10-27 11:14
来自: 悉尼

#55

帖子 matri » 2008-01-22 6:07

无所谓吧,各有各的爱好,gui程序我偏好用ide,其他都随便了。
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#56

帖子 猛将兄 » 2008-01-22 9:11

lailue 写了:如果哪天听到哪个操作系统都用IDE开发,那么那个操作系统离末日不远了。
不过,也不必每个人都那个层次,顶层程序用IDE还是不错的。就像OSI 七层,每层分工协作。
我不这么认为了。我想你大概说的是Kernel和driver开发之类的吧。
坦率地说,如果现在所有的OS都是微内核,99%的driver都可以再用户空间跑的话,那么用IDE开发,使用用户空间的大量的库,也不是不可能,甚至说本来就应该这样。这应该是OS的发展方向
头像
woaiwojia
帖子: 1355
注册时间: 2007-09-10 20:20
系统: Debian
来自: 南京

好文,学习

#57

帖子 woaiwojia » 2008-01-22 10:05

lailue 写了:转发节选一段关于IDE的

===============================================
IDE

有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些 IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:"IDE 开发迅速,调试方便,适合大型程序......" 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。

高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。

你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道 Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE。微软内部程序员最喜欢的编辑器其实是 VIM,用 VIM 的微软程序员上次向乌干达的可怜儿童捐助了1000多美元,这是值得称赞的。

有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用 IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说"GNU Emacs is evil",但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。甚至高级的 Windows 程序员也不用 IDE,他们可以从命令行调用 cl,nmake 来编译自己的程序。虽然这样的 Windows 程序员很少,但是他们却是最了解 Windows,最高明的 Windows 程序员。

为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器...... 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb, ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮...... 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。

而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件...... 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。实际上 make 在其它方面还能帮你很多忙,我的每一个比较大型的 LaTeX 文档都是用 make 维护的。

====================================================
头像
oyasmi
帖子: 173
注册时间: 2007-06-04 9:54
来自: 南京

#58

帖子 oyasmi » 2008-01-22 11:07

呵呵,各位版友争论蛮激烈的嘛!
其实我觉得vim/emacs真的像毒品,没有习惯她的时候没什么感觉,等你用习惯了就离不开了!linux也是,网上有无数linux的文档,帮助你了解这个系统的每一个细节,而windows对你隐藏了太多太多!来到开源的世界很明显得感受到原来的很多观念都需要改了,原来系统也是可以按自己的意愿来搭建的,这个世界的东西都是开放的,你会在内心里接受这是自己的东西,而VS,永远都不会是你的!
等待青春散场;等待年华老去!
头像
cheertree
帖子: 79
注册时间: 2006-08-20 11:26
联系:

#59

帖子 cheertree » 2008-01-22 11:49

everyoung 写了:我用visual studio基本可以不用鼠标
现在的IDE已经不光是编辑器,编译器,调试器了
现在已经包含项目管理,分析设计,代码质量分析,软件测试,配置管理,构建管理,软件部署等功能
问问,你用的是正版嘛?个人买得起嘛?
everyoung
帖子: 246
注册时间: 2007-09-08 23:06

#60

帖子 everyoung » 2008-01-22 21:33

cheertree 写了:
everyoung 写了:我用visual studio基本可以不用鼠标
现在的IDE已经不光是编辑器,编译器,调试器了
现在已经包含项目管理,分析设计,代码质量分析,软件测试,配置管理,构建管理,软件部署等功能
问问,你用的是正版嘛?个人买得起嘛?
1、我用公司的
2、Visual Studio express是免费的,你用它写软件不会强制你开源
3、Visual Studio有评估版,包括所有功能,可以用180天,没发现有评估的次数限制,当然是不能用在生产环境中的
回复