在另一个问题中,Mark高度评价了ide,说“有些人仍然不知道”为什么“他们应该使用一个……”。作为一个使用vim进行编程的人,并且在大多数/所有同事都使用vim或emacs进行所有工作的环境中工作的人,ide的优势是什么?我为什么要用它?

我相信这对一些人来说是一个棘手的问题,我对开始一场论战不感兴趣,所以请只回复你认为基于ide的方法更好的原因。我对听到为什么我不应该使用IDE不感兴趣;我已经不用了。可以这么说,我感兴趣的是听取“栅栏的另一边”的意见。

如果您认为ide可能适合某些类型的工作,但不适合其他类型的工作,我也很想知道为什么。


当前回答

我不明白你在问什么。你问“我应该使用IDE而不是……”,但我不明白替代方案是什么——Vim和Emacs实现了任何IDE都能提供的许多功能。它们唯一不能处理的方面是,一个更大的IDE可能是像UI设计器。然后,您的问题可以归结为“我应该使用哪种IDE”,并为更简单的Vim和Emacs领域提供了论据。

其他回答

这取决于你使用的语言,但在c#和Java中,我发现ide对以下方面有好处:

Quickly navigating to a type without needing to worry about namespace, project etc Navigating to members by treating them as hyperlinks Autocompletion when you can't remember the names of all members by heart Automatic code generation Refactoring (massive one) Organise imports (automatically adding appropriate imports in Java, using directives in C#) Warning-as-you-type (i.e. some errors don't even require a compile cycle) Hovering over something to see the docs Keeping a view of files, errors/warnings/console/unit tests etc and source code all on the screen at the same time in a useful way Ease of running unit tests from the same window Integrated debugging Integrated source control Navigating to where a compile-time error or run-time exception occurred directly from the error details. Etc!

所有这些都节省时间。这些事情我可以手动完成,但会更痛苦:我宁愿编写代码。

智能感知、集成调试器和即时窗口使我的工作效率大大提高(Visual Studio 2008)。有了一切触手可及的东西,我可以在写代码的时候把一个庞大项目的绝大部分都记在脑子里。微软可能一直在他们的操作系统上犯错,但是Visual Studio是有史以来最好的产品之一。

简单地说,IDE提供了比简单编辑器更省时的特性。

我更喜欢IDE,因为它允许我集成编辑/编译/调试,只需单击一下从错误跳转到生成错误的行。此外,它允许使用操作系统标准接口显示多个信息窗格。简而言之,它为用户提供了一个基于鼠标的输入界面和一个现代的输出界面,而不是依靠上世纪70年代的技术和界面来帮助我。

IDE还有更复杂的用户和用途,我并没有说我使用过他们或了解他们所有人。当我需要的时候,我会学习它们。

For me, an IDE is better because it allows faster navigation in code which is important if you have something in your mind to implement. Supposed you do not use an IDE, it takes longer to get to the destination. Your thoughts may be interupted more often. It means more clicks/more keys have to be pressed. One has to concentrate more on the thought how to implement things. Of course, you can write down things too but then one must jump between the design and implementation. Also, a GUI designer makes a big difference. If you do that by hand, it may take longer.