在将某个软件合法地称为集成开发环境(IDE)之前,所需的最低功能是什么?或者换一种方式来说,IDE与仅仅是以程序员为中心的功能的强大文本编辑器的区别是什么?
我认为任何IDE都需要,至少:
此列表的任何更改/添加?视觉设计表面和图表工具等功能如何?应用程序必须将其视为IDE吗?
每个项目的单独答案可能都有意义。
答案 0 :(得分:0)
我想说编辑器在包含对编译和调试的支持时正式成为IDE。
答案 1 :(得分:0)
为了成为一名IDE,我认为你所需要的只是:
其他一切都只是褶边。
答案 2 :(得分:0)
我认为受限制的功能集总是依赖于语言。例如,许多语言将使用代码编译运行调试循环(例如,C,C ++,Java)进行编程,其他语言更具交互性,如Python和Common Lisp。
因此,例如,在第一组中,我想要一个能够启动编译器的IDE(将其输出消息链接到我的代码),运行生成的二进制文件,在代码上放置断点并检查堆栈 - 休息时的痕迹。 (Eclipse就是这种IDE的一个例子)
对于第二组,我宁愿使用基于Read-Eval-Print-Loop的IDE,它允许我评估代码工件本身的代码位,检查变量,并且通常保持代码工件之间的紧密关系。运行时内存状态 - 动态。 (Emacs + SLIME就是这种IDE的一个例子。)
这绝不是对编程语言组/家庭的完整报道;只是为了表明我的观点,IDE必须提供与特定PL开发风格的紧密联系。其他一些功能(如代码完成和语法突出显示)过于笼统,因此它们可以用于那些面向程序员的文本编辑器。但IDE中的“ID”表示集成开发,因此它应该涵盖您需要做的所有事情,而无需借助其他工具,例如终端(或者至少将外部工具集减少到最少!)。 p>
关于特定功能,如上面提到的可视/图表编辑器,如果您使用它来开发程序,它们就有意义。因此,UI编辑器仅适用于所有编程语言的子集。但是一旦你考虑思维导图编辑器和“虚拟”白板/速写本,事情就会变得难以定义。显而易见的是,您可以使用它来开发任何PL中的产品,但对于IDE来说,它应该为它们提供支持并不是那么明显(至少对我而言)......协作支持也是如此。因此,这种功能确实丰富了IDE - 以及任何生产力工具。也许这表明它应该由操作系统提供? :)我相信集成开发的概念涵盖了从输入工件(程序员生成的输入)到最终输出二进制的整个循环。这意味着像sratchpads这样的东西不会是IDE的关键部分,但是UML图编辑器可能会(如果可以从中推断出代码)。
还有其他SO主题讨论IDE上最喜欢的功能,例如, this one
(出于好奇,你会如何为你选择“正确”的答案?这看起来更像是一个讨论首发,也许是一个维基,而不是一个Q& A线程)