Linux 版 (精华区)
发信人: Sun (大灯泡戒网), 信区: Linux
标 题: Linux集成开发环境(二)
发信站: 紫 丁 香 (Sun Oct 31 18:25:28 1999) WWW-POST
上一期已经介绍了Linux集成开发环境中的Cygnus,本期介绍另两种IDE:Code Crusader
和CodeWarrior,并对这三种IDE的性能作一综合的评述,相信会对Linux开发人员有一定
的指导作用。
SYPP许可下的Code Crusader
Code Crusader是由加利福利亚技术学院电子工程系的学生John Lindal编写的。它是基于
JX的,JX也是一个由John Lindal编写的用于应用开发的C ++类库系统。这些类库是在
SYPP(Share Your Profits,Please)许可证的原则下进行分发的。这个许可证的全文可以
从网上获得,它最主要的精神就是商业、政府和共享软件开发者必须付费才能使用这些类
库开发自己的程序,而简单地使用类库来运行Code Crusader并不需要任何许可费用。
Code Crusader公开自己的源代码,这对于广大的Linux程序员来讲无疑是一个极大的好处
。用户可以从http ://www.its.caltech.edu/~jafl/jcc和http://www.its.caltech.edu
/glenn/medic/处分别下载Code Crusader和Code Medic的源代码。要能够进行编译,除了
下载JX、JCore、Code Crusader和Code Medic的源代码外,还必须下载JTree、JSearch和
JToolBar等类库。
Code Crusader编辑器允许定制高亮度显示语法时的颜色,它具有一个微型的工具条,因
此省出了大量的屏幕空间。编辑器的菜单没有快捷键,而且快捷方式也不是很好,这些快
捷方式似乎更像Mac风格,而不是Windows风格或X风格。
项目文件绝大部分都是纯文本格式的,但是要手工编辑它们并不容易。缺省的创建系统使
用makemake来编写makefile。makemake是一个随Code Crusader一起提供的工具。由
makemake产生的makefile可充分满足绝大多数项目(Code Crusader自身使用makemake),
但是如果一个makefile已经存在的话就可以直接使用标准的make系统。
Code Crusader的帮助接口是它最成功的功能之一,但是它仍然没达到Emacs的水平。在线
帮助是使用一个基于JX的HTML查看器applet显示的。Code Crusader可以显示任意主题的
帮助页面,它没有提供info文献和语言参考。
Code Crusader的调试器是Code Medic,它也依赖JX库。Code Medic也是gdb进行可视化改
进产物的一个前端。从某种意义上讲,它比GDBTk的功能还差:没有文本菜单,没有快捷
键,而且内存查看器和分解窗口要求你键入你想分解或查看部分的十六进制地址。不过,
Code Medic与编辑器集成得很好,编辑当前的源代码文件相当容易。它还具有一个用于调
试初始化过的过程的良好接口。对gdb命令行的访问内置在Code Medic的主窗口中。
Code Crusader是本文介绍的几种IDE工具中惟一提供了图形用户接口设计工具form
painter的一种。Code Crusader的form painter在使用时要依赖XForm库中的fdedign程序
,因此还必须从网上下载和安装XForm库以后才能使用。form painter允许你图形化地设
置用户接口元素,如按钮、文本框等。JX打包程序产生form的初始化代码,但是它并不提
供任何事件处理代码,这与MSVC ++的早期版本很类似。
Code Crusader没有专门用于版本控制的接口,但是它具有运行描述语言的功能,这个功
能可以用来实现版本控制系统。Code Crusader的grep特性支持整个项目范围内的搜索和
替换,并且允许使用外部编辑器和外部调试器。
在本文介绍的几种IDE中,Code Crusader在商业质量的快速应用开发时表现最出色。form
设计器和丰富的类库是它与其它IDE区别最明显的地方。
从Mac移植过来的CodeWarrior
Metrowerks的CodeWarrior一直是用于Mac平台的最流行的IDE,此外,CodeWarrior还被移
植到Windows和Solaris平台,现在它是用于Palm Pilot的主要开发平台。它在游戏开发者
中也比较流行。用于Red Hat Linux GNU版的CodeWarrior是移植到Linux平台上的产物。
Metrowerks的CodeWarrior for Linux,GNU版的功能现在还比不上Mac平台的CodeWarrior
。它的对话框、按钮和特殊键符号都是从Mac中移植过来的,并且具有一个类似Mac的外观
和感觉,比如它使用冒号作为路径分隔符,而不是Windows平台下常用的斜杠。
编辑器的键盘绑定也是基于Mac的。一个不方便之处是,用于移动到编辑器开头和末行的
缺省键与有些窗口管理器用来在虚拟显示之间移动的键相同,因此二者会发生冲突。当然
CodeWarrior的编辑器也有自己的优点:它只有一行工具条按钮,并可以紧缩到状态条中
。CodeWarrior的语法高亮显示是持续的和可配置的,在键入时可以很容易以缩进或非缩
进方式进行操作。
CodeWarrior具有几个重大的bug。许多对话框都没有提供取消操作,只能由窗口管理器提
供的关闭按钮来完成这一操作。用户不能将项目窗口扩展到宽于400像素或窄于320像素。
在安装rpm时由于没有写操作权限,这使得正常的用户不能在样本目录中进行写操作,然
而CodeWarrior提供的手册却指明用户可以这样进行编写。据Metrowerks公司称,这些bug
将在它的S.u.S.e.版中得到修正。
CodeWarrior IDE允许通过设置来调用一个外部的编辑器,CodeWarrior然后启动由EDITOR
环境变量指定的外部编辑器。这个功能与其它两种IDE工具相比稍微有些不便。编辑器(以
及项目系统)是Metrowerks在CodeWarrior for Linux,GNU版中提供的最好的一个功能。
Metrowerks具有一些与MSVC ++类似的创建系统。用户可以创建目标项目并为每个目标
设置编译器/链接器命令行选择。这是CodeWarrior的一个强项,它对新用户是很有用的。
但是它没有提供make接口,并且用户无法将项目文件转换成makefile,因此使用
CodeWarrior来创建一个典型的免费软件项目是困难的。
CodeWarrior没有提供帮助系统,在任何窗口中都找不到帮助菜单。如果仔细查找
CodeWarrior的安装目录的话才有可能发现在/usr/local/metrowerks/Documentation中的
手册。一旦找到这个手册以后,用户可以选择手册的HTML版(不可检索,导航很困难)、
PDF版(可检索但读起来较困难)或者PostScript格式(只适合于打印)。
CodeWarrior for Linux,GNU版中的调试器并不使用Metrowerks公司著名的调试器,而是
DDD。DDD是一个与CodeWarrior完全分离的产品,在GNU下可免费获得的。
当前版本的CodeWarrior没有提供form painter,它的版本控制目前只支持Windows和Mac
操作系统。
一个完整的IDE一般应提供编辑器、编译器和调试器。其它应该提供的特性还包括帮助系
统、代码浏览器、form painter和描述语言等。但Metrowerks CodeWarrior for Linux,
GNU版目前只提供了一个编辑器,并且编辑器的可用性受到许多小bug的影响。因此
CodeWarrior目前不能算是一个很好的Linux IDE,喜欢使用CodeWarrior的用户只有等待
改进后的专业版出台了。
各种Linux IDE综合评价
Cygnus GNUPro工具对于那些编写嵌入式代码的程序员来讲是一个比较好的IDE,它的
Source-Navigator是一个很好的源代码浏览器。如果要按照A~E五个等级从总体上给这
个IDE打分的话,它的得分为C,它的Source-Navigator可以得A+。
Code Crusader对于现在开发商业应用是最有用的。它具有一个form painter和一个非常
有用的C ++类库,它的编辑器和项目系统也是很好的。然而它的调试器还存在一些不足
,而且它缺少一些一个IDE应该具有的特性,如更好的源代码浏览器。它的IDE总体得分为
B,它的快速开发工具包得分为B-。
Metrowerks的CodeWarrior似乎是一个匆匆忙忙推出的产品,现在还不成熟。它只提供了
编辑器,而且在用户接口中有许多bug。至于编译器、调试器和源代码浏览器,只有等到
专业版出来才能提供。它的IDE总体得分为D,编辑器得分为B。
这三种IDE共同的缺点就是都没有提供语言帮助、数据库访问工具、集成化的form
painter或快速开发工具包。没有一种IDE可以轻易地取代MSVC ++成为程序员开发Linux
程序的首选IDE。如果要从本文介绍的几种IDE中分别选择其中最好的部分构成一个新的
IDE的话,那么可以选择Cygnus的Source-Navigator作为浏览器、XEmacs作为编辑器、
gdb和DDD作为调试器、JX应用框架作为工具包,这样组成的一个IDE将是非常优秀的。
虽然Cygnus GNUPro和Code Crusader现在都还不能取代MSVC ++,但是两者都在Linux平
台的快速应用开发(RAD)方面迈出了良好的一步。相信随着将来的进一步改进,它们的功
能将更加完善,到那时广大的Linux开发人员将会更加得心应手。
几种Linux IDE与Emacs的特性比较
Cygnus GNUPro CodeWarrior
Toolkit Code Crusader GNU Edition Emacs
编辑器 一般 一般 一般 好
编译器 GNUPro Gcc Gcc(egcs) Gcc
调试器 一般(GDBTk) 一般(Code Medic) 好(DDD) 差(gdb)
浏览器 很好 一般 无 差(etags)
项目创建系统 无 有 有 无
支持make 支持 支持 不支持 支持
支持的语言 C, C++, Java, C, C++, Java, C, C++, Java 所有语言
Fortran, Cobol, HTML, Eiffel,
Tcl Fortran
帮助系统 一般 好 没有 好
版本控制接口 有 无 无 有
宏语言 Tcl(限企业版) 文本替换 无 Emacs Lisp
多文件grep 好 很好 很好 很好
RAM要求 32MB 16MB~32MB 32MB~64MB 16MB~32MB
磁盘空间 101MB 48MB(源码) 25MB 标准的GNU/
21MB(二进制) Linux装备
价格 专业199美元, 免费 72.95美元 免费
企业版578美元
总体评价 一般 好 差 标准
--
太阳就是个大灯泡。
※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: 202.118.239.237]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.905毫秒