LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1850|回复: 8

为什么高明的UNIX程序员不用IDE??????

[复制链接]
发表于 2003-7-1 17:40:13 | 显示全部楼层 |阅读模式
转载

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

你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道 Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE!

有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用 IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说“GNU Emacs is evil”,但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。


我以前也编过 Windows 程序:应用程序,驱动程序。但是我没有用 VC 的 IDE。Linux 教育了我,我会在命令行调用 CL,我知道 CL 才是 VC 的编译器。我可以在 cygwin 的 Makefile 里使用 CL。我还知道 CL 的参数都有什么用处。但是这些不是一个从一开头就用 IDE 的人能很快理解到的。

我相信: IDE is evil。我有一些用 Windows 的 IDE 写程序的朋友,他们对那套东西已经很精通了。但是我却惊奇的发现,他们竟然把编译器和汇编器的概念都分不清楚,甚至有的人连“编辑器”和“编译器”都搞混淆了!他们只知道在一个窗口里输入了代码,点击一个按钮就可以编译程序,但是这里面到底是怎么工作的,他们不知道!他们被盖在上面的窗口挡住了视线,甚至会以为那个按钮就是编译器!

他们对那些 IDE 的热键背的滚瓜烂熟,但是我却看到他们在一个函数一个函数的把别人的 ANSI 风格的代码变成 VC 的风格。想想这件事在 VIM 里有多么简单,一瞬间就可以搞定。

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

而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc, ld, ... 实际上 make 能帮你很多忙。make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件…… 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。
发表于 2003-7-4 20:08:18 | 显示全部楼层
如果不用ide那么ibm投那么多钱给开源做eclipse是疯了!
发表于 2003-7-4 20:53:14 | 显示全部楼层
这好像是转载一个清华的硕士生的文章吧.真不知道为什么这麽多人转载?说实话,这篇全文的确很富有煽动性,不过更多的只是体现了这位同志思想的狭窄。IDE更多的是提高了效率,照他的意思,大家都不要开汽车了,因为汽车掩盖了更多的细节.
如果这位硕士不喜欢电灯,我估计它能找出10000个蜡烛比电灯好的理由。总是在潜意识中把自己不喜欢的东西认为是不应该存在的东西,这位gg真是傻的可爱。竟然还提用LaTeX写信,我都要骂他了,这东西我都不知道有几个人会用,难道计算机就是让那些个科学家用的??它是体会到 UNIX 的设计思想,却没有体会到计算机的设计思想,是解放人类,不是折腾人类。
更多的应该是吸收,利用各种思想的优点,而不是凭着自己的喜好来判断事物。
发表于 2003-7-4 21:00:09 | 显示全部楼层
个人观点,值得商榷,呵呵。
发表于 2003-7-5 00:11:40 | 显示全部楼层
那个年代的老皮哪有ide让他们用,只有X+X+....的组合,而且对于工具只要用熟了,也就很难改换,当然他们会不断的维护老牌工具,至于之间的比较,只要怎么好怎么来,不一定用了一个就一定不能用另一个,个有个的优点!
发表于 2003-7-5 12:53:04 | 显示全部楼层
各花入各眼,赫赫。
偶也不用ide,因为根本没有ide可用
发表于 2003-7-7 05:45:48 | 显示全部楼层
不是硕士,是博士,我敬佩的一个人物。他的主页很有内容。

我理解他不用IDE是指一些核心算法等,这样VIM,EMACS做起来还是得心应手的,至于UI开发,还是IDE来的快,来的省。

这是他的主页:
http://learn.tsinghua.edu.cn/homepage/015450/index.html
发表于 2003-7-9 09:37:54 | 显示全部楼层
IBM的用意在于能够让更多的初级开发人员加入IBM JAVA的开发队伍。这和高级程序员偏向于make工具是不冲突的。我本人就是从IDE投靠MAKEFILE之后才觉得IDE确实是只适合初级开发人员的,程序员在IDE下的工作和一个美工设计网页没有什么大的区别。
发表于 2003-7-15 01:55:11 | 显示全部楼层
同意!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表