为什么要使用IDE

selfboot
  • 8k

见周围的人编程都是用一些IDE工具, 比如visual studio或者Eclipse等, 但是我觉得用vim或者emacs完全可以啊。

想问下大家IDE相对于传统经典的编辑器vim(emacs)有哪些优点。 我不想让大家在这里为IDE和vim(emacs)发生口水战, 因此只想让喜欢IDE的人说说IDE相对于vim(emacs)的强大之处即可。

如果你认为IDE和vim(emacs)在不同的场合发挥作用不一样, 我也欢迎您回答。

回复
阅读 6.9k
6 个回答

IDE可以为你把你经常做的繁琐事情提供捷径。并且针对具体的语言或者框架有自己的优化。

比如我写Java Code经常用Eclipse和Intellij来完成重构,在某个函数的作用域内修改变量名字,找到实现某个interface的所有类,自动生成JavaDoc的注释,让它自动帮我分析可以但是忘记加的annotation比如@Override,甚至修改类名并且同时修改文件名,修改类所在的包同时移动文件等事情。

比如我写Objective-C,我要使用UIBuilder来设计xib或者storyboard文件……

这些事情,不是emacs或者vi做不到,只是对某个特定语言的特定功能,肯定还是IDE支持的更好。

Generality和Speciality不可兼得。

当然,写C++和Python(非Django)代码我一般都用vi。我自己的原则是,工具是不挑的,榔头拿来敲钉子,剪刀拿来剪纸,在有些时候,剪刀也可以敲钉子,但是工欲善其事必先利其器的一点就是,选好用具,然后用的非常熟悉,非常熟悉,非常熟悉。

通俗一点的解释吧,你这个问题跟“人类为什么要乘坐汽车?”有异曲同工之妙。

人类有一双腿,穿街越巷,上山爬楼,无往而不利啊,零油耗,启动快,无死角,为什么还要坐汽车呢?

为什么呢?

有高科技能提升编程生活质量,为什么不用用?

好了,我知道有人又会想了:不依赖IDE,熟练使用2B铅笔和VIM/Notepad写程序难道不是程序员必备的素质吗?

素质是一回事,工作习惯是另一回事。一天徒步10公里是不是一个每天一撸的正常青年必备的身体素质?显然是的,可是你见过多少人每天徒步10公里去上班?

Notepad就像你的双腿,vim/emacs就像一辆摩托车,它有马达、轻便、排量小、油耗低、载个妞上个班都不在话下、百公里加速快、还便宜。IDE就像一辆家轿,它比摩托车更舒适(有天窗有点烟器)、更安全(有气囊能装儿童座椅),遗憾的是,购买和养护成本也更高、更笨重、怕堵车。

而像Eclipse这样的IDE俨然一辆东风卡车,本质上是辆货车;车厢加个顶安个床,它就是房车;装两排座位它就是运兵车;拉两台发电机它就是发电车;拉一台无线电中继器它就是应急通信保障车。

如果轿车跟摩托一个价、大家都有一层车库、城市不堵车、到处都是停车位、没有轿车进不去的小胡同,谁还用摩托车?正是这些阴晴圆缺的场合存在,才导致了编辑器(vim/eclipse/editplus)和IDE交相辉映。

顺便说一下,jetbrains公司出的IDE都是神器,物美价廉,你值得拥有,哈哈

vim(emacs)是从传统继承而来,console时代过来的程序员感觉比较亲切、习惯的一种编码工具。而IDE是随着图形化界面而发展起来的一种直观、简单的编码工具。没有孰优孰劣之分,只有熟悉与否、习惯与否、个人使用高效与否。

相比vim(emacs)更多的通过快捷键/命令的方式来快速达到自己的编码目的,IDE提供一种直观/可视化命令的方式来完成编码。单纯的就编码速度,方便与否我觉得二者不相上下。可能有些人认为IDE能提供丰富的扩展,但是vim(emacs)只要你配置好,同样不逊色多少。
除了这些,我觉得IDE的最大优势:学习成本低。不要小看学习成本,企业归根到底是要看到你的工作成果,对于程序员,最直接的展示就是你能快速完成编码工作。在GUI十分普及的今天,假设要求一个java程序员完成某一个编码工作[前提条件:他对vim(emacs)和eclipse仅限于听说,都没有用过],谁先最适应编程工具,我想结果应该是Eclipse胜算居多吧!vim(emacs)要配置好不是一件很简单的事情,但是eclipse一打开,很多人应该就能差不多开始写代码了。
此外,IDE的另一个很大优势:项目集成管理。现在的IDE,类似VS,eclipse已经不仅仅是一个编程工具了,而是一个包含项目生命周期管理,统括工程创建、编码、编译、集成部署、发布等一系列项目管理的大杀器。而我窃以为这才是IDE最吸引我的地方。

用编辑器还是IDE和编辑器跟IDE的区别没有半毛钱关系,唯一有关系的是你想达到什么样的境界?

现在随便考个驾照可是很容易的事情,街上随便一个卖菜的大妈说不定都有C照,这完全是拜现代汽车上的各种先进"自动化"所赐.以前的司机考个驾照可是很麻烦,保养维修车辆是必须课.在4S店数量基本赶超公厕的今天,有几个司机能搞得明白离合器是个什么构造?就更别提维修什么的了.但是你能说现代诞生的司机比以前的更牛逼?还是以前的司机不如现代司机?

当然在基础建设高度发达的今天,你可以说"我干嘛花好几年去学修车?我只是想开车而已,那些学修车的时间我可以放到如何更好的驾驶上".但是如此你便不能脱离那些基础建设圈了,如果所有已知的路你都走过了,你想去未知的地方,没有4S店的地方,怎么办?从头开始学修车?

你想一辈子开车在别人画的圈圈里绕圈圈的话也倒无所谓.不过如果你想当晋身顶级司机的行列 - 赛车手,你就不能一直依赖什么自动挡,什么ESP,什么倒车雷达.而且赛车手是不开量产车型的.

IDE就是集成开发环境,而配置好的vim和emacs与IDE无异尔。

Eclipse这种企业级的IDE需要花在配置上的时间少,但是自由度低。vim和emacs这种轻量级的工具配置起来相对复杂一些但是自由度更高。

对这两种类型的工具的偏好因人而异。没有最好的工具,只有最要的程序员,对吧?

我最眼红 IDE 的一件事情,WebStorm 可以支持 JavaScript (最新版已经支持 CoffeeScript ) 的重构,我的 Vim 不行,我的 Emacs 也不行。

你或许会说我写个插件也能支持,这个我已经做了,但是分析文本和分析语义的重构工具是不一样的对吧?

你知道吗?

宣传栏