我发现自己使用自己选择的文本编辑器(vim,nano,gedit,选择毒药)的频率比最近的任何IDE都要高。
在注意到我的ide快捷方式变得尘土飞扬之后,我开始思考并想知道:是什么使您可以使用IDE而不是文本编辑器?
因此,您不使用IDE而仅依靠编辑器有什么理由?
我发现自己使用自己选择的文本编辑器(vim,nano,gedit,选择毒药)的频率比最近的任何IDE都要高。
在注意到我的ide快捷方式变得尘土飞扬之后,我开始思考并想知道:是什么使您可以使用IDE而不是文本编辑器?
因此,您不使用IDE而仅依靠编辑器有什么理由?
Answers:
I:整合。一个好的文本编辑器可能很适合编写代码,但是您的大部分编程都不是花在编写代码上。它用于测试和调试,为此,您希望文本编辑器与编译器和调试器集成在一起。这是IDE的最大优势。
这些是我最喜欢的IDE IntelliJ的我最喜欢的功能,我喜欢将其用于Java,PHP,Javascript,HTML甚至ActionScript。
Ctrl+click
在函数,变量上,键入以转到定义。(IntelliJ 在以上所有语言中都非常擅长此操作)Ctrl+space
经常使用它来帮助填写所需的类或方法名称。这加速了编码吨,甚至帮助捕获错误发生之前,当你需要的东西是不是从你在的IntelliJ甚至会帮助您拓展首字母缩写词的上下文访问-型NPE,打击Ctrl+space
,它会显示“NullPointerException异常”, “ NoPageError”等。点击Alt+enter
以自动添加import
确实很棒。诸如您可能认为理所当然的代码着色之类的事情,但良好的代码着色就像外围视觉一样,它使您可以专注于重要内容,而无需花费额外的时间来识别整个单词。
IntelliJ甚至还Ctrl+space
用于建议变量名。在Java中,如果您声明一个新的EventMessageItem变量并点击Ctrl+space
,它将建议“ eventMessageItem”,“ eventMessage”,“ item”等。
所有这些事情给我的方式有更多的时间去思考我的代码和架构,以及少想固定格式,处理文件系统,固定复制和粘贴错误,应用程序之间切换,追下来的文件,等等,等等我不知道您如何拒绝这种生产率的提高。
IDE比编辑器更了解您的代码。例如,这允许标识符完成和重构,对于像Java这样的冗长语言,这是天赐之物,
[To the IDE] You had me at intellisense/autocomplete
从历史上看,IDE在单任务计算机上提供了无与伦比的便利性。我的第一个C编译器在edit-compile-run周期中需要执行以下步骤:
在我的CP / M系统上。(如果磁盘驱动器更大,我可以将其作为批处理程序自动执行。)
当我获得Turbo Pascal时,我很高兴能够在编译和调试时保持编辑器可用。
我相信,这就是使IDE最初流行的原因。
如果使用Lisp进行编码,则Emacs具有类似Intellisense的功能,例如查找方法参数和自动完成功能,因此可以说它是原始的IDE。能够将一个程序用于多个任务(通常进行编辑,shell /命令提示符,阅读新闻)也很不错。
通常,编辑器与IDE的问题似乎取决于编程语言。从我所见,例如,Ruby和Haskell编码器似乎更喜欢他们最喜欢的文本编辑器。
我认为答案将在很大程度上取决于您所使用的编程语言以及您的语言水平。对于JAVA之类的语言,如果您做任何认真的事情,都必须有一个IDE。无论何时涉及脚本语言,例如JS或Ruby IDES,都没有太大用处。
我为开发使用了notepad ++和一组shell脚本(用于备份,git commits),它工作得很好。
一些赞成“编辑”的论点:
我每天都使用IDE来工作,否则很难编写Java / C#。
(2)与(3)相比:基本上,只有一个选项可以远程编辑文件(通过ssh /远程桌面),并且对远程服务器的配置或文件进行的更改最少。
我使用IDE进行测试/调试/集成,并使用KEDIT进行编辑,因为IDE严重缺乏编辑功能。
因为.NET IDE可以识别外部编辑,所以我要做的就是保存在编辑器中并接受提示以重新加载源代码。这使我可以同时优化编辑和调试功能。
对于其他IDE,我将KEDIT用作模板处理器和源搜索程序,并将该源复制/粘贴到IDE中。
学习曲线短。而已。
我真正推荐的唯一一个是调试器。IDE确实是一个编辑器,上面添加了许多其他gubbins,但是如果您可以通过在命令提示符下键入make(或向上箭头+ Enter)进行编译,则不需要 IDE。如果可以通过右键单击资源管理器并选择正确的菜单项来提交SCM,则不需要IDE。
现在我知道有些人需要诸如重构支持(第一次正确编写代码:))或一些集成的GUI设计器(但即使如此,使用Visual Studio时,我还是使用Expression来完成GUI工作,而不是VS中不受欢迎的XAML支持) ),并且许多人需要智能和自动完成功能(特别是对于Java和C#等冗长的名称冗长的语言)。
但是对我来说,GUI调试器是使用IDE的唯一真正好的理由。我仍然使用“命令行”调试器(恩,windbg),但是对于日常而言,它是VS的内置调试器。
IDE有很多好处。并非所有语言都具有全面的IDE来真正扩展规模,否则很难为所述语言创建一个语言。为什么需要IDE的原因?好吧,让我们从这些开始:
问题在于,并非所有语言都能真正从全面的IDE中获得很大的生产力提高。我将IDE用于某些工作(Java,C#),而不用于其他工作(Python,Ruby,Coldfusion)。这确实是一种平衡行为。某些语言只是不需要如此全面的套件。
每个都有IDE吗?当然。你总是需要一个吗?并不是的。