跳转到内容

软件工程/工具/IDE 简介

来自维基教科书,开放世界中的开放书籍
Anjuta,一个针对 GNOME 环境的 C 和 C++ IDE

一个集成开发环境 (IDE)(也称为集成设计环境集成调试环境)是一个软件应用程序,它为计算机程序员提供全面的软件开发设施。IDE 通常包含

  • 一个源代码编辑器
  • 一个编译器和/或一个解释器
  • 构建自动化工具
  • 一个调试器

有时,版本控制系统和各种工具被集成在一起,以简化 GUI 的构建。许多现代 IDE 还拥有一个类浏览器、一个对象检查器和一个类层次结构图,用于面向对象软件开发。[1]

IDE 的设计旨在通过提供紧密结合且用户界面相似的组件来最大限度地提高程序员的生产力。这意味着程序员需要进行更少的模式切换,而不是使用离散的开发程序。但是,由于 IDE 本身是一个复杂的软件,因此这种更高的生产力只有在经过长时间的学习过程后才会出现。

通常,IDE 专注于特定编程语言,允许提供最符合该语言编程范式的功能集。但是,也有一些多语言 IDE,例如 Eclipse、ActiveState Komodo、最近版本的 NetBeans、Microsoft Visual Studio、WinDev 和 Xcode。

IDE 通常会呈现一个单一程序,其中进行所有开发。该程序通常提供许多功能,用于编写、修改、编译、部署和调试软件。其目标是抽象化将命令行实用程序组合在一起以形成一个连贯单元所需的配置,这在理论上可以减少学习语言的时间,并提高开发人员的生产力。人们还认为,紧密集成开发任务可以进一步提高生产力。例如,可以在编写代码时编译代码,从而提供有关语法错误的即时反馈。虽然大多数现代 IDE 都是图形化的,但在窗口系统(如 Microsoft Windows 或 X11)出现之前使用的 IDE 都是基于文本的,使用功能键或热键来执行各种任务(Turbo Pascal 是一个常见的例子)。这与使用 vi、GCC 或 make 等无关工具进行软件开发形成对比。

GNU Emacs,一个可扩展的编辑器,通常用作类 Unix 系统上的 IDE

IDE 最初是在通过控制台或终端进行开发时成为可能的。早期系统无法支持一个 IDE,因为程序是使用流程图准备的,在将它们提交给编译器之前,用穿孔卡片(或纸带等)输入程序。Dartmouth BASIC 是第一个使用 IDE 创建的语言(也是第一个设计用于在控制台或终端前使用)。它的 IDE(Dartmouth 时间共享系统的一部分)是基于命令的,因此看起来不像当今流行的菜单驱动、图形化 IDE。但是,它以与现代 IDE 一致的方式集成了编辑、文件管理、编译、调试和执行。

Keyboard Maestro [2]

Maestro I 是 Softlab Munich 的一款产品,是世界上第一个用于软件的集成开发环境[3] 1975 年。Maestro I 安装在全球 22,000 名程序员的电脑上。截至 1989 年,德意志联邦共和国存在 6,000 个安装。在 20 世纪 70 年代和 80 年代,Maestro I 无疑是该领域的全球领导者。今天,最后一个 Maestro I 可以是在阿灵顿的信息技术博物馆中找到。

Softbench 是第一个采用插件概念的 IDE 之一。1995 年,《计算机周报》评论说,开发人员对使用 IDE 并不欢迎,因为它会限制他们的创造力。

可视化编程

[编辑 | 编辑源代码]

可视化编程是一种使用场景,在这种场景中通常需要 IDE。可视化 IDE 允许用户通过移动编程构建块或代码节点来创建新的应用程序,以创建流程图或结构图,然后对其进行编译或解释。这些流程图通常基于统一建模语言。

这种界面已经通过乐高 Mindstorms 系统普及,并且正在被许多希望利用自定义浏览器(如 Mozilla 中的浏览器)功能的公司积极采用。KTechlab 支持 flowcode,是一个流行的开源 IDE 和模拟器,用于开发微控制器软件。可视化编程还负责分布式编程的功能(参见 LabVIEW 和 EICASLAB 软件)。一个早期的可视化编程系统 Max,是根据模拟合成器设计建模的,自 1980 年代以来一直被用于开发实时音乐表演软件。另一个早期的例子是 Prograph,这是一个最初为 Macintosh 开发的数据流系统。图形化编程环境“Grape”用于编程 qfix 机器人套件。

这种方法也用于专业软件中,例如 Openlab,其中最终用户希望拥有完整编程语言的灵活性,而无需与传统编程语言相关的传统学习曲线。

Mindscript 是一个开源可视化编程系统,它扩展了密码学、数据库接口的功能。

语言支持

[编辑 | 编辑源代码]

一些 IDE 支持多种语言,例如 Eclipse 或 NetBeans(均基于 Java),或 MonoDevelop(基于 C#)。

对替代语言的支持通常由插件提供,允许将它们同时安装在同一个 IDE 上。例如,Eclipse 和 Netbeans 为 C/C++、Ada、Perl、Python、Ruby 和 PHP 等语言提供插件。

不同计算平台的态度

[编辑 | 编辑源代码]

许多 Unix 程序员认为,传统的命令行 POSIX 工具构成一个 IDE,Template:Who 尽管它具有不同的界面风格,并且在 Unix 环境下运行。许多程序员仍然使用 makefile 及其派生工具。此外,许多 Unix 程序员使用 Emacs 或 Vim,它们集成了对许多标准 Unix 构建工具的支持。数据显示调试器旨在成为许多基于文本的调试器标准工具的先进图形前端。

在各种 Microsoft Windows 平台上,很少使用命令行工具进行开发。因此,存在许多商业和非商业解决方案,但是它们各自具有不同的设计,通常会造成不兼容性。大多数主要的 Windows 编译器供应商仍然提供其命令行工具的免费副本,包括 Microsoft(Visual C++、平台 SDK、Microsoft .NET Framework SDK、nmake 实用程序)、Embarcadero Technologies(bcc32 编译器、make 实用程序)。

此外,免费软件 GNU 工具(gcc、gdb、GNU make)在许多平台上都可用,包括 Windows 等。

IDE 一直在 Apple Macintosh 的 Mac OS 上很受欢迎,可以追溯到 1980 年代中期 Macintosh Programmer's Workshop、Turbo Pascal、THINK Pascal 和 THINK C 环境。目前,Mac OS X 程序员可以选择有限的 IDE,包括 Xcode 等原生 IDE、CodeWarrior 等旧 IDE,以及 Eclipse 和 Netbeans 等开源工具。ActiveState Komodo 是一个在 Mac OS 上支持的专有 IDE。

参考文献

[编辑 | 编辑源代码]
  1. Dana Nourie (2005-03-24). "集成开发环境入门". Sun Microsystems, Inc. Retrieved 2008-09-09.
  2. 图片来源:阿灵顿信息技术博物馆
  3. "交互式编程作为系统热潮" 来自《计算机周刊》(德语)
华夏公益教科书