问:我周围的人都使用IDE工具(例如Visual Studio或Eclipse)进行编程,但我认为VIM或Emacs没问题。我想问一下IDE与传统的经典编辑器VIM(emacs)相比有什么优势。我不想让你们在这里争夺IDE和VIM(emacs),所以我只希望喜欢IDE的人谈论IDE相对于VIM(emacs)的优势。如果您认为IDE和VIM(emacs)发挥不同在不同情况下的角色,我也欢迎您的答复。
答:IDE可以为您提供通常的乏味操作的捷径。而且它对特定语言或框架有自己的优化。例如,当我编写Java代码时,我经常使用Eclipse和Intellij来完成重构,在函数范围内修改变量名称,自动查找实现接口的所有类生成JavaDoc批注,并使其自动帮助我分析可以添加但被遗忘的批注,例如@Override,甚至可以修改类名和文件名,还可以修改类所在的包并同时移动。文档等。例如,当我编写Objective-C时,我使用UIBuilder设计Xib或情节提要文件...这些东西,不是Emacs或VI无法做到的,但是对于特定的语言功能,当然IDE支持会更好。通用性和专业性不能同时获得。当然,我通常使用VI编写C ++和Python(非Django)代码。我自己的原则是工具不是选择性的,锤子是用来敲钉子的,剪刀是用来剪纸的,在某些情况下,剪刀也可以敲指甲的,但是如果您想做点好事,则必须首先使用工具,然后使用非常熟悉,非常熟悉,非常熟悉。
答:流行的解释。您的问题是“为什么人们骑车?” 有异同之处。人类有一条腿,过马路,爬山峦和建筑物,无路可走啊,油耗零,起步快,没有死角,为什么要开车?为什么可以高科技?改善编程生活的质量,为什么不使用它呢?好吧,我知道有人会再三考虑:不依靠IDE,熟练使用2B Pencil和VIM / Notepad编写程序对程序员来说不是必要的素质?一件事,工作习惯是另一件事。对于一个普通的年轻人来说,每天走10公里是否是必要的身体素质?显然,但是您看到每天有多少人远足10公里才能上班?记事本就像您的腿,VIM / Emacs就像摩托车。它有电动机,重量轻,小排量,低油耗,带女孩上班时不说话,快速行驶100公里,而且价格便宜。IDE就像一辆轿车椅子。它比摩托车(带有用于儿童座椅的安全气囊)更舒适(带有天窗和吸烟者)并且更安全。不幸的是,购买和维护的成本也更高,更麻烦并且担心交通堵塞。Eclipse之类的东西就像一辆东风卡车,本质上是一辆卡车。上面有床的汽车是房车;有两排座位的部队运输车;具有两个发电机的发电机;如果汽车和摩托车的价格相同,那么每个人都有一个车库,那么这个城市就不会受到交通拥堵的困扰,到处都是停车位,而且没有小巷让汽车无法驶入,谁会使用摩托车?正是这些阴天和晴天使编辑器(vim / eclipse / editplus)和IDE相互辉映。顺便说一句,Jetbrains的IDE都是工件。它们质量好,价格低。你应该得到他们,哈哈。
答:VIM(emacs)是一种继承自传统的编码工具,控制台时代的程序员感到更加亲密和习惯。IDE是使用图形界面开发的直观,简单的编码工具。好与坏没有区别,只有熟悉程度,习惯和个人效率。与VIM(emacs)相比,IDE提供了直观的命令来完成编码。仅仅就编码速度而言,便捷与否,我认为两者是平等的。某些人可能认为IDE可以提供丰富的扩展,但是只要配置正确,VIM(emacs)就不会逊色。
除此之外,我认为IDE的最大优点是:学习成本低。不要低估学习成本。归根结底,企业将看到您的工作结果。对于程序员而言,最直接的演示是您可以快速完成编码工作。如今,当GUI非常流行时,假设需要一名Java程序员来完成编码任务[前提:他只听说过VIM(emacs)和eclipse,但从未使用过它],他是第一个适应编程工具的人,我认为结果应该是Eclipse胜出!配置VIM(emacs)并不容易,但是一旦打开eclipse,许多人就应该能够开始编写代码。
此外,IDE还有另一个很大的优势:项目集成管理。现在,像VS一样,IDE与eclipse一样,它不仅是编程工具,还是编程工具。包括项目生命周期管理,包括项目创建,编码,编译,集成部署,发布以及一系列项目管理的杀手。我认为这是IDE最吸引我的地方。
答:IDE是一个集成开发环境,配置良好的vim和Emacs与IDE并无不同。企业级IDE Eclipse所需的配置时间更少,但自由度却更低。像vim和Emacs这样的轻量级工具配置起来相对复杂,但具有较高的自由度,这两种类型的工具的偏好因人而异。没有最好的工具,只有最重要的程序员,对吗?
答:关于IDE,我最喜欢的事情之一是WebStorm可以支持JavaScript重构(最新版本已经支持CoffeeScript),我的Vim无法,而我的Emacs也不能。
您可能会说我已经写了一个插件来支持它,但是我已经完成了,但是用于文本分析和语义分析的重构工具是不同的,对吧?