我想说一个受限制的功能集总是语言相关的。例如,许多语言将使用代码编译运行 - 调试周期(例如C,C++,Java)进行编程,其他语言则更具交互性,如Python和Common Lisp。因此,例如,在第一组中,我想要一个能够启动编译器(将其输出消息链接到我的代码)的IDE,运行生成的二进制文件,在代码上放置断点并检查堆栈在休息时间进行跟踪。 (Eclipse是这种IDE的一个例子)
对于第二组,我宁愿使用基于Read-Eval-Print-Loop的IDE,它允许我评估代码构件本身的代码位,检查变量,以及通常保持代码构件和运行时内存状态之间的紧密关系 - 动态地。 (Emacs + SLIME就是这种IDE的一个例子)。
这不以任何方式,编程语言组/家庭的全覆盖;只是为了说明问题,IDE必须提供与特定PL开发风格的紧密联系。其他一些功能,如代码完成和语法高亮过于笼统,因此他们向那些面向程序员的文本编辑器发展。但是IDE中的'ID'表示集成开发,因此它应该涵盖所有你需要做的事情,而不需要使用额外的工具,比如终端(或者至少把外部工具集降到最低!)。
关于特定功能,如视觉提到/图编辑器,如果你用它来开发程序,他们是有意义的。因此,UI编辑器仅适用于IDE的所有编程语言子集。但一旦考虑思维导图编辑器和“虚拟”白板/素描本,事情就会变得更难定义。很明显,您可以在任何PL中使用它来开发产品,但对于IDE来说,它不是那么明显(至少对我而言),它们应该为它们提供支持......同样也适用于协作支持。所以这种功能确实可以丰富IDE - 以及任何生产力工具。也许这是一个标志,它应该由操作系统提供? :)我相信集成开发的概念涵盖了从输入工件(程序员制作的输入)到最终输出二进制文件的整个循环。这意味着像sratchpads这样的东西不会成为IDE的重要组成部分,但是UML图编辑器可能会(如果可以从中推断出代码)。
还有其他SO线程在IDE的谈论最喜欢的功能,例如见this one。
(出于好奇,你将如何去选择“正确”的答案吗?这看起来更像是一个讨论首发,也许维基,与其说像问答&线程)
这是可能作为一个社区维基更好。 – FrustratedWithFormsDesigner 2010-08-10 16:41:16
是的......意味着在我提交之前检查。谢谢! – 2010-08-11 01:46:42
即使这是我自己的问题,我正在投票结束它。这在当时对我来说很有意义,但我真的只是想通过一个概念来思考 - 这不是在网站上存在问题的好理由。 – 2012-05-09 14:52:13