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

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

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


当前回答

IDE可能是一个“优越”的选择,这取决于开发人员试图实现的目标。

文本编辑器可能更“优越”,因为ide通常面向一种(或一小部分)语言。

如果一个开发人员大部分时间都在单一语言或相关语言的“集群”(如c#和T-SQL)上,在一个操作系统中,那么一个好的IDE所提供的GUI设计、调试、智能感知、重构等工具就会非常引人注目。例如,如果你大部分时间都在VB上工作。NET,在Windows环境中可能偶尔会用到一点T-SQL,那么如果你不考虑Visual Studio或类似的IDE,那就太愚蠢了。

我对那些喜欢ide或文本编辑器的人没有偏见,如果学得好,两者都可以非常有效和有用!

其他回答

Eclipse:

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

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

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

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

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

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

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

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

拥有IDE有以下优势:

编译通常是“动态的”,这意味着不再切换到命令行进行编译 调试是集成的,在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.

对我来说,这只是我们在终端时代所做的一切的GUI版本。我一直认为IDE不是很优秀,因为它们隐藏了很多东西,特别是关于链接的东西,但在某些情况下,它们有一个显著的优势,例如与某些开发平台,如Qt。

有些IDE甚至可以在你输入代码时解析代码,并在你编译之前检测错误:从逻辑上看,似乎只有IDE可以与编译器紧密合作,立即检测类型化源代码中的问题。

我疯狂地回答IDE/命令行之争的存在只是因为C/ c++可执行的构建不是很好地处理从标准化的角度来看,不像D语言;每个平台都以自己的方式处理编译/链接等,所以为了不那么混乱,他们制作了一个IDE。

从你的角度来看,使用命令行可能会更简单,如果只有一个带有标准选项的编译器,那就很容易了,但事实是C/ c++是灵活的,所以最后,所有平台都用自己的方式来做,因此IDE不会浪费时间解释如何做。

如果您了解可执行文件如何与内核对话,或者如果您了解编译器设计,那么也许有一种方法可以使用合适的命令行,但我怀疑您没有。

微软或苹果,他们都是邪恶的,必须提出一种直接的方法来构建应用程序,而不需要进入细节,因为构建应用程序直接依赖于操作系统的架构,它很难像命令行那样是“标准的”。

把它放在简单、大而复杂的应用程序中,你不想深入研究它的功能——> IDE,小块软件或简单的系统软件设计——>命令行。当然,除了那些嵌入Makefile的漂亮的库,但那是另一个故事。

另外,我认为IDE是在应用程序与GUI或有接口或直接绑定到操作系统的东西有关时使用的,所以,它也适用于那些使用UI/GUI但不知道它如何工作的人,而那些编写系统程序的人不需要它。

IDE只是现代的垃圾,但我认为在100年内命令行还会存在。

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

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