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

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

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


当前回答

我并不完全相信ide的使用。然而,我认为像Eclipse这样的优秀IDE最有价值的方面是良好集成的cscope风格的功能,能够快速理解大型代码库。

例如,在Eclipse中,您看到一个方法接受类型为FooBar的参数,但您不知道它的含义。与其浪费一分钟艰难地寻找定义(并冒着一路上各种分心的风险),只需选择FooBar,按F3,它就会打开相关的源文件,直到FooBar被定义的那一行。

在我看来,ide的缺点是它们给了您一个更大的学习曲线,除非您想使用绝对默认的配置。(Emacs也是如此。)

其他回答

在决定是否使用IDE时,只需要考虑一件事,那就是它是否能提高您的工作效率。

简单的问题,简单的回答:)

这在很大程度上取决于你在做什么,以及你用什么语言来做。就我个人而言,我倾向于不使用IDE(或“我的IDE包含3 xterm vim运行,运行数据库客户端,和一个bash提示或尾矿日志”,这取决于你广泛的定义IDE)的大部分时间里我的工作,但是,如果我发现自己开发一个platform-native GUI,然后我会找一个瞬间看清IDE——国际海事组织、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.

使用ide的一个很好的理由是,它们是生产现代软件的公认方式。如果您不使用,那么您可能会使用“老式”的东西,如vi和emacs。这可能会导致人们得出结论——可能是错误的——你被困在自己的方式中,无法适应新的工作方式。在软件开发这样的行业——创意可能在短短几个月内就会过时——这是一种危险的状态。这可能会严重损害你未来的工作前景。

Eclipse:

代码高亮显示,在后台编译,在执行过程中指出错误。

与javadoc集成,使用ctrl-Space提示变量名。

当我编译时,就会得到错误。我可以双击一个错误,它会显示相应的行。

很好地与JUnit集成,ctrl-F11运行测试,告诉我测试失败了。如果在输出窗口中出现异常,我可以双击某行,并将我带到失败的行。不仅如此,ctrl-F11还可以确保在运行测试之前编译所有内容(这意味着我永远不会忘记这样做)。

与ant集成。一个命令用于构建和部署应用程序。

集成调试器,包括web服务器的远程调试。

神奇的重构工具,搜索一段代码的引用。帮助我了解改变的影响。

总而言之,这让我更有效率。