CodeWarrior 红帽 Linux 版,GNU 版本,第 4 版

作者:Jason Kroll
CodeWarrior for Red Hat Linux, GNU Edition, Version 4
  • 制造商:Metrowerks

  • 电子邮件:sales@metrowerks.com

  • 网址:http://metrowerks.com/

  • 价格:99 美元

  • 评测人:Jason Kroll

CodeWarrior 是一款集成开发环境 (IDE),它已在多个平台上存在多年,最近才开始提供 Linux 版本。Metrowerks 正在发布两个版本的 CodeWarrior 红帽 Linux 版(随后将发布 SuSE 版本):GNU 版本和专业版。今天的评测主题是 GNU 版本。

IDE

集成开发环境,例如 CodeWarrior,是一个图形化环境,整合了软件开发的主要元素。这包括管理项目、依赖项、库、编辑代码、编译、调试、链接以及所有常用的编码任务。它不包括绘图程序或其他可能用于软件开发的多媒体工具。本质上,IDE(不要与集成驱动电子设备混淆)的想法是将所有这些东西组合在一个界面下,以便于项目管理。这与在一个虚拟控制台中使用 Emacs,同时在另一个虚拟控制台中运行 gcc,并在第三个虚拟控制台中编辑 Makefile 的方法不同。IDE 应该会处理整个项目,并且可以轻松调用程序的任何需要编辑的部分,并让计算机跟踪 Makefile(或类似 Makefile 的文件)的更改。这种方法有其优点和缺点。

优点

IDE 的主要优点是它易于使用;程序会处理所有事情,让您可以专注于代码。在没有 make 命令的机器上,这可能非常棒,即使在 Linux 上,许多用户也希望有人能移植 CodeWarrior。现在它可用了,并且开发环境与其他平台基本相同,因此从其他操作系统迁移(或在两者之间迁移,如果您必须这样做)也更加容易。

由于开发是 Linux 运动的重要组成部分,人们对各种编程问题非常敏感,包括对某些击键方式和编辑器有强烈的偏好。CodeWarrior 在这些方面很灵活,允许(或要求)使用第三方产品,例如编辑器和调试器。但是,一些缺点适用于 GNU/Linux 的开源、多平台世界。

开发问题

CodeWarrior IDE 的一个优点是它消除了编写和维护 Makefile 的复杂性。可能主要的缺点是它消除了 Makefile 附带的高级功能和强大功能。这意味着,在某种程度上,除非您编写自己的 Makefile 来对应 CodeWarrior .mpc 文件(这并非难事),否则您使用 CodeWarrior 编写的任何内容都无法在非 CodeWarrior 系统上编译。这个问题的另一方面是,如果您想使用 CodeWarrior 来破解一些典型的开源软件,您必须首先转换 Makefile。坦率地说,这通常非常困难,并且在很大程度上破坏了 IDE 的目的——您可能在一个窗口中使用 Emacs/vi/joe/pico,并在另一个窗口中使用运行 make 的终端,效果一样好甚至更好。

一种可能的解决方案是 Metrowerks 添加 Makefile 导入器导出器。(据说 Macintosh 和 Windows 版本都有 Makefile 导入器,但我没有机会使用它。)如果 Linux 有这个转换器的开源版本,那么使用 CodeWarrior 的开发人员可以轻松地与使用其他 IDE 或 Emacs(或 vi)和 make 的常用组合的开发人员合作。考虑到 make(带有 configure)的灵活性与相当专业的 .mpc 相比,双向转换器可能是一项稍微困难的任务。不过,这仍然是好事。因此,尽管 CodeWarrior 可能会使跨平台开发变得更加容易,但它可能会稍微复杂化跨 UNIX 开发。特别是 KDE 开发人员可能会对难以使用 Qt 等扩展 C++ 类库感到恼火。(我在编译 KDE 程序时遇到了麻烦。)

严肃的程序员可能会发现其他限制。例如,第三方产品(如调试器)没有集成到 IDE 中,它们只是为您加载。此外,CodeWarrior 不支持 Gnome/KDE 拖放标准(谁会期望这个?),并且似乎不支持 C/C++ 以外的语言,除非 egcs 提供支持(例如,您可以使用汇编语言编写代码)。此外,如果您想使用 KAI 的 C++ 或 gcc/egcs 以外的任何编译器,则 GNU 版本的 CodeWarrior 不支持——此版本完全基于免费的开发工具。现在我们知道了 CodeWarrior 的不足之处,我们可以看看 CodeWarrior 提供了什么。

安装

虽然安装 CodeWarrior IDE 非常简单(从 CD-ROM 的根目录运行 ./install.sh),但要获得一个功能齐全的系统可能会有点复杂,并且需要进行一些编译。也就是说,如果您想要 DDD(DataDisplayDebugger,几个调试器的图形前端,包括 gdb),您必须从 CD-ROM 获取它,并且如果您想进行 C++ 开发,您必须从 CD-ROM 获取 egcs-1.1.2,编译并安装它(除非您已经拥有这些东西)。此外,您必须编辑您的配置文件(或创建符号链接)以便使用 egcs 而不是 gcc。可能任何精通 Linux 以开发需要管理和集成的项目的人员,也可以使用 tar -xzf 解压缩 .tgz 文件并运行 make。尽管如此,这些东西应该提供自动安装——易用性据说是商业软件的优势之一。由于 CodeWarrior 目前仅适用于 Red Hat 5.2 和 6.0(SuSE 版本即将推出),因此制作一个更简单、自动的安装程序应该不难。

长期使用自由软件的用户可能会觉得安装过程中的一个元素很有趣,那就是许可证。当您启动 install.sh 脚本时,您会看到好几页的“许可协议”,您必须接受它,否则软件将无法安装。语言有点咄咄逼人的法律术语,但不知何故,在 Linux 上找到这样的东西非常有趣。(毕竟,谁会在 Netscape 首次启动时阅读那些东西?)我不知道这些最后一刻的许可证是否具有法律约束力,但如果您不同意,据说可以将软件退回经销商并获得退款。无论如何,如果您选择安装它,该软件会更有用。

外观和感觉

图 1. CodeWarrior 截图

理想情况下,集成开发环境应该是一个令人愉快的环境。这意味着用户应该喜欢各种菜单、按钮、窗口、工具栏、其他功能界面、调试器,尤其是编辑器(除非您在调试器中花费更多时间)。CodeWarrior 的编辑器足够整洁;它将注释、关键字和字符串以不同于主代码的颜色显示,这对某些人来说很好。(实际上,如果控制台编辑器更容易做到这一点,很棒。)事实上,您可以自定义编辑器中的各种颜色。但是,它不会像 Emacs 那样自动解析和生成有吸引力的 C 代码。此外,使用滚动条或 PageUp/PageDown 键滚动页面会将光标留在原地,因此一旦找到正确的行,当您按下光标键时,它就会丢失(您必须用鼠标单击才能将光标移动到正确的位置)。这可能是好事也可能是坏事,具体取决于您是否倾向于滚动浏览代码,并且忘记您从哪里开始或忘记您找到了哪一行。

就窗口和菜单而言,一切都布局在逻辑位置,菜单项足够多样化,可以提供许多不同的功能,同时也没有超出应有的条目。文件菜单简单明了,尽管滚动条不会实时滚动浏览文件;也就是说,它会在您完成移动滚动条后更新屏幕。“搜索”菜单在搜索方面有很多功能,“项目”菜单包含大量面向项目的功能(这是您“make”的地方),“调试”菜单有许多看似永久灰显的选项(调试器未与 CodeWarrior 集成,仅由其加载),“窗口”菜单用于处理大量代码窗口,而“信息”菜单实际上有一些 IDE 的配置选项。总而言之,实际上很容易且显而易见地进行浏览和编码。以前从未使用过 CodeWarrior 的人可能会觉得它很熟悉,甚至有点怪异,因为机器在给出有些模糊的指令后,仍然确切地知道该做什么。

应用程序演示

作为向人们介绍 CodeWarrior IDE 的一种简短而巧妙的方法,Metrowerks 包含了一个应用程序教程,它是 GNUGO 的一个版本,经过编辑以包含一些错误,以便您可以学习调试器。应用程序教程介绍了将源代码包导入 CodeWarrior、编辑、编译和调试它的步骤。在详细说明这些说明的 70 页手册中,一个奇怪的特点是,细节通常不完全正确。不过,不难弄清楚实际含义是什么(例如,选择“中断于”而不是“设置断点”)。

“演练”就是这样,简单明了,但足以向用户介绍程序开发的步骤。学习曲线,嗯,很短。从 CodeWarrior 启动的那一刻起,我就能直观地了解我需要做的一切。函数名称是不言自明的,软件从未崩溃或冻结(即使是暂时的),唯一让我困惑的是,我必须更改源目录的权限(实际上是 chmod 777),然后才能开始。此外,我感谢 Metrowerks 选择 GNUGO 作为演示程序,因为这款优秀的游戏经常被忽视。

适用于红帽 Linux

目前,CodeWarrior 仅适用于红帽 Linux,这肯定会引起一些人的疑问。如果商业供应商仅向某些发行版的用户提供他们的产品,Linux 会发生什么?虽然发行商有时会将重要文件放在不同的位置,但普通软件倾向于跨发行版和跨硬件平台编译,因此 CodeWarrior 似乎应该适用于任何发行版。它不应该比创建一些符号链接或运行 make 更难,因此 Metrowerks 可能有其他原因。

虽然选择红帽的原因似乎很清楚(在美国市场份额最大),但仅支持一家供应商的决定非常奇怪,而且似乎有点令人震惊。我希望没有人仅仅为了运行 CodeWarrior 而切换发行版。然而,这方面的新闻是 SuSE 和 Metrowerks 已经宣布他们计划为 SuSE 生产和销售 CodeWarrior。虽然 CodeWarrior 为何如此特定于发行版仍然是个谜,但猜测是 Metrowerks 无法为如此多的发行版提供技术支持,并依赖发行商来这样做。发行商支持其他人的产品会很奇怪,而且拥有不受支持的产品总比没有产品好,但这可能是实际情况。较小的发行商处于不利地位,因此希望这种做法在变得普遍之前被放弃。

展望

许多人多年来一直等待看到 CodeWarrior 出现在 Linux 上,对于这些人以及任何喜欢集成开发环境的人(在 Windows 上非常流行),这类似于他们一直想要的。在功能方面,它还不能完全与 Macintosh 或 Windows 版 CodeWarrior 相媲美,并且 GNU 版本存在局限性。然而,许多程序员很高兴知道未来的版本和专业版将会带来什么。您可能还想了解一下开源的 Code Crusader 和 Cygnus Code Fusion。软件开发公司可能会特别喜欢像 CodeWarrior 这样的 IDE,如果 Makefile 与 .mpc 的问题得到解决,它将成为想要为 GNU/Linux 开源软件世界做出贡献的个人、居家开发人员的可行选择。

无论如何,我们可以希望 CodeWarrior 在我们平台上的出现将使编程更容易,从而激励更多程序员。GNU/Linux 的世界与 Macintosh 和 Windows 的世界截然不同,CodeWarrior 需要做出许多调整才能取得成功。希望这款产品是将非常流行的 CodeWarrior IDE 带到 Linux 的一系列努力中的第一个。

CodeWarrior for Red Hat Linux, GNU Edition, Version 4
Jason Kroll 仍然认为 GNU/Linux 是自显示器以来计算机领域发生的最好的事情。可以通过 hyena@ssc.com 与他联系。
加载 Disqus 评论