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

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

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


当前回答

我认为这主要与开发者的认知范围有关。IDE提供了开发人员工作环境的宏观视图。您可以同时看到类层次结构、引用的资源、数据库模式、SDK帮助引用等。而且,由于您的击键会影响和影响如此多的事情,以及体系结构和体系结构交叉点的数量不断扩大,一次只使用一个代码岛工作变得越来越困难。

OTOH,“只有我和vim和手册页”让我对我的工作有了一个更精简的微观——但强烈而精确的——视图。如果我有一个用一种语言和一组静态库构建的设计良好、分区良好、稀疏耦合且高度内聚的代码库,那么这是可以的——这不是典型的情况,特别是当开发团队规模随着时间、距离和个人偏好而增长并重新构建代码结构时。

I'm currently working on projects in Flex and .NET. One of the nicer things about Flex is how few different ways there are to accomplish a standard thing - pull data from a database, open/close/read/write a file, etc. (Yet I'm using the Flex Builder/Eclipse IDE - a typical heavy-weight example like VS, because I'm still learning the basics and I need the training wheels. I expect to evolve back to vim once I'm confident of my patterns.) In this view, I can do what I need to do professionally by knowing a few things really really well.

OTOH, I can't imagine getting to that point with .NET because the view I'm expected to maintain keeps expanding and shifting. There much less conceptual integrity, and over several developers on a project over several months, much less consistency - but the IDE supports that, maybe encourages it. So the developer really needs to (and can more easily) know many more things adequately. Which also has the benefit of helping them answer (or even understand) a lot higher percentage of the questions on StackOverflow. I.e. we can have a deeper knowledge stack. And we can respond to a wider variety of help-wanted ads.

事情可能会朝着两个方向发展。也许对于“仅编辑器”作用域,这就像“如果你只有一把锤子,那么所有东西看起来都像钉子”。使用IDE方法,对于任何您想要固定在一起的东西,您都有广泛的紧固件和相关的工具范围可供选择- nals/锤子,螺钉/螺丝刀,螺栓/扳手,粘合剂/胶枪/夹子,磁铁等等-所有这些都在您的指尖(有向导帮助您开始)。

其他回答

Eclipse:

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

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

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

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

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

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

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

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

节省开发时间 通过提供集成调试、智能感知等功能,使生活更轻松。

有很多,但我会建议使用一个,他们比明显。

我也几乎只使用Vim(几乎是因为我现在正在尝试学习emacs)来完成我的所有开发工作。我认为纯粹的直观性(当然来自GUI)是人们喜欢使用ide的主要原因。通过直观,几乎不需要学习工具的开销。学习开销越少,他们完成的工作就越多。

代码自动完成。它对探索代码有很大帮助。

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