你是否区分了文本编辑器和IDE?

时间:2008-10-13 22:15:29

标签: ide text-editor

我已经看到几个问题的回答,要求提供文本编辑器的IDE,反之亦然。这让我觉得人们把它们视为同一件事,在那里我得出了明确的区别。

  1. 如何定义“文本编辑器”和“IDE”?
  2. 你看到这两个工具有什么不同吗?
  3. 请注意,我接受了一个答案,我认为这个答案最能解决“文本编辑器”和“IDE”的概念。但是,我个人认为最能解决这个问题的是什么,我会不时继续检查这个问题,看看是否有更好的答案,我会接受这个问题。

7 个答案:

答案 0 :(得分:3)

混淆源于文本编辑器是每个IDE的核心组件。但是,IDE不仅仅是一个文本编辑器;它还具有编译器,调试器,分析器,参考材料等的接口。

许多文本编辑器都有插件或其他灵活的扩展机制,通常包括“包装”外部工具的能力,就像我上面提到的那样。关键区别,恕我直言,是IDE中的“我” - 集成。 IDE(再次,恕我直言)是专门设计用于支持一组特定工具的东西,其中一个是文本编辑器。

答案 1 :(得分:3)

我这样做,但它更多地使用它们而不是软件本身的差异。某些软件被某些人用作IDE,但仅由其他人用作文本编辑器。有些软件只能是文本编辑器,有些软件只能用作文本​​编辑器,有些软件可以很容易地用作文本编辑器。

我想说像Vi(m)和Emacs这样的忠实用户被一些人用作文本编辑器而一些用作IDE。像eclipse,visual studio等这样的东西才真正有意义,因为IDE和记事本之类的东西几乎不是文本编辑器。

我会说,如果你留在你的文本编辑器中做其他事情 - 编译,调试等 - 那么你就像IDE一样使用它。相当于我画线的地方,我不确定。

答案 2 :(得分:2)

明显的区别是来自IDE的“我”。 IDE是一个集成平台,不仅可以编辑,还可以调试项目的文件管理,通常还有很酷的功能,如语法高亮和代码完成。哦,是的,工具和编译器的集成,以及源代码控制。

答案 3 :(得分:2)

我使用两者,我建议你也这样做。有时,IDE可以使开发更快 - 例如代码完成和重构支持。快速查找项目中的文件和符号,函数,类,更不用说项目管理功能。有时候他们会为你管理构建。也许它有一个内置的调试器(一个好的内置调试器值得金)。代码片段和文件模板怎么样?有时IDE会帮助您构建GUI界面和数据存储。我见过那些可以帮助你构建regexp并运行SQL查询的文件。

这些(IMO)都是糖。我也使用纯文本编辑器(虽然我现在非常欣赏代码语法着色)并自己滚动大部分其他内容。一些较新的文本编辑器正在进入IDE领域(例如TextMate),因为它们可扩展到足以允许上述大多数段落的细节。

在90%的案例中,我使用的是我所获得的或大多数团队使用的(我是承包商)。这可以减少您决定独立完成时可能出现的构建冲突。通过学习使用IDE,文本编辑器以及介于两者之间的所有内容,您将保持灵活性并能够应对任何被抛出的内容。

答案 4 :(得分:1)

对我来说,文本编辑器是用于编辑基于文本的文档的轻量级工具。除了为编辑器定义“系统”字体外,没有标记或格式化文本。有用的工具仍然可以是文本编辑器的一部分,如文件夹树,语法高亮,甚至编译器的cmd行执行。最后,它只允许您编辑文档中的文本。它不会以不同的方式显示给您。即:查看XML文档时不会显示网格

IDE更加强大,通常特定于语言或框架。

你知道,在我开始写这个答案之前,我在文本编辑器和IDE之间有一条清晰的界限。但现在,我认为他们是同一个人。我的意思是真的,像VS这样的IDE只是一个美化的文本编辑器。像Textpad这样的文本编辑器是一个IDE,其开发功能的预算要小得多。

我想真正的答案是,IDE由大型公司或集团支持,在许多不同方向扩展其功能。但是文本编辑器是由一小群人构建的,只有足够的功能可以使用。

答案 5 :(得分:0)

如果你看一下Kate,文本编辑器和Kdevelop,IDE的主要区别在于Kdevelop支持项目管理(CVS / Subversion)和构建脚本,而Kate则不支持。

答案 6 :(得分:0)

就我个人而言,我认为在IDE和文本编辑器之间绘制'线'是对最终程序的了解,而不仅仅是对它的源代码的了解。

例如:

  • 它可以将您的代码编译成二进制文件吗?这是一个IDE
  • 它是否有集成的调试器?这是一个IDE
    • 为了拥有一个集成的调试器,它需要知道二进制编译程序,或者在脚本语言的情况下,需要知道程序运行时的内存中解释。

注意:像intellisense这样的东西不依赖于你的代码被编译成任何东西,所以我不会说intellisense意味着IDE

注2:像textmate这样的许多文本编辑都有插件系统,可以扩展它们来构建你的项目。这不会使它们成为IDE,因为它们只是对插件进行外壳攻击,它们对构建本身没有任何了解。