2010-08-10 121 views
0

在一块软件合法称为集成开发环境(IDE)之前,所需的最低功能是什么?或者以另一种方式提出这个问题,区分一个IDE和一个功能强大的文本编辑器与程序员中心功能有何区别?IDE所需的最低要求功能?

我认为,任何IDE将需要有至少:

  • 基本文本编辑功能(如剪切,复制,粘贴,撤消,重做,查找,替换),
  • “智能“基于特定语言的代码结构缩进功能,
  • 特定语言的语法高亮,
  • 智能感知类代码帮助/完成,
  • 一些代码导航功能,无论是” VI级ew“风格的树形显示,快速的”导航“能力(一个Resharper和最近的VS2010),或者代码大纲/折叠,
  • 能够与命令行工具进行交互。编译器),包括管道输出回IDE的能力,
  • 能够设置断点,调试运行代码,然后显示有关该运行代码状态的实时信息,
  • “项目“或用于组织/编辑目的的文件分组。

此列表的任何更改/添加?关于视觉设计表面和图表工具的功能如何?这些应用程序必须被视为IDE吗?

每个项目的单独答案可能是有道理的。

+1

这是可能作为一个社区维基更好。 – FrustratedWithFormsDesigner 2010-08-10 16:41:16

+0

是的......意味着在我提交之前检查。谢谢! – 2010-08-11 01:46:42

+0

即使这是我自己的问题,我正在投票结束它。这在当时对我来说很有意义,但我真的只是想通过一个概念来思考 - 这不是在网站上存在问题的好理由。 – 2012-05-09 14:52:13

回答

0

我想说当一个编辑器支持编译和调试时,它就会正式成为IDE。

0

为了一个IDE,我认为,所有你需要的是能够:

  • 编辑代码
  • 编译代码(如果需要)
  • 运行代码
  • 调试代码

其他一切都只是装饰。

0

我想说一个受限制的功能集总是语言相关的。例如,许多语言将使用代码编译运行 - 调试周期(例如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

(出于好奇,你将如何去选择“正确”的答案吗?这看起来更像是一个讨论首发,也许维基,与其说像问答&线程)