【问题标题】:Minimum required feature set for an IDE?IDE 所需的最低功能集?
【发布时间】:2010-08-10 16:37:12
【问题描述】:

在将软件合法地称为集成开发环境 (IDE) 之前,需要具备哪些最低功能?或者换个方式问,IDE 与仅具有以程序员为中心的功能的强大文本编辑器有何区别?

我认为任何 IDE 至少都需要:

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

此列表是否有任何更改/添加?视觉设计表面和图表工具等功能呢?应用程序是否需要被视为 IDE?

每个项目的单独答案可能是有意义的。

【问题讨论】:

  • 作为社区 wiki 可能会更好。
  • 是的...在我提交之前要检查一下。谢谢!
  • 尽管这是我自己的问题,但我投票结束它。当时这对我来说是有道理的,但我真的只是想通过一个概念来思考 - 这不是网站上存在问题的充分理由。

标签: ide


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    • 编辑代码
    • 编译代码(如有必要)
    • 运行代码
    • 调试代码

    其他一切都只是装饰。

    【讨论】:

      【解决方案3】:

      我想说一个受限的功能集总是依赖于语言的。例如,许多语言将使用代码-编译-运行-调试循环(例如,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 - 以及任何生产力工具。也许这表明它应该由操作系统提供? :) 我相信集成开发的概念涵盖了从输入工件(程序员生成的输入)到最终输出二进制文件的整个周期。这意味着 sratchpad 之类的东西不会成为 IDE 的关键部分,但 UML 图编辑器可能会是(如果可以从中推断出代码)。

      还有其他 SO 线程谈论 IDE 上最喜欢的功能,请参阅例如this one.

      (出于好奇,您将如何为自己挑选“正确”答案?这看起来更像是一个讨论启动器,可能是一个 wiki,而不是一个问答线程)

      【讨论】:

        猜你喜欢
        • 2016-02-12
        • 2016-06-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-25
        • 2013-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多