Kylix

制造商:Borland Software Corporation
电子邮件:customer-service@borland.com
价格:GPL 开发版本—免费下载(或 99 美元购买硬拷贝版本),开发者版—999 美元(在 2001 年 8 月 23 日之前为 199 美元),服务器版—1,999 美元
评论员:Petr Sorfa
Kylix 代表着 Linux 操作系统程序开发的重要一步,并有望获得成功。Borland 正在为 Linux 创建一个商业市场,而这个市场直到现在都表现不佳。Borland 正在拥抱 Linux 社区,将某些 Kylix 组件开源,并免费发布 Kylix 的开放版本(预计在 2001 年夏季的某个时候)。
Kylix 是一个用于创建软件的集成开发环境 (IDE)。更重要的是,它是一个快速应用程序开发 (RAD) 工具,它为数据库连接、互联网内容和图形用户界面(GUI,见图 1)的快速开发提供组件。
Kylix 花费了两年时间创建,以我的经验来看,对于如此多样化和复杂的产品来说,这是一个很短的开发时间。我在它开发一年后第一次听说它,并且从那时起就一直急切地等待着使用它。Borland 让我想起了我的第一门商业编程语言 Pascal,我很想看看这些年来事情进展如何。此外,我的副本被贴在 Borland 滑板的底部——Borland 正在挖掘那些美好的旧回忆。
我的第一次测试是尝试为我的 MySQL 数据库创建一个 GUI 前端。我失败了,即使在 Borland 演示中看起来非常容易。不幸的是,在使用 Kylix 之前,您必须阅读教程书。从某种意义上说,这是我的错,因为我的经验是在 UNIX 平台上使用像 KDevelop 这样的产品开发应用程序,而 Kylix 本质上是基于 Windows 的思维模式。这些差异是细微的,但足以迫使您阅读手册。
Kylix 编辑器绝对是我见过的 Linux 上最强大的编辑器之一。除了在您键入时对程序部分进行颜色突出显示外,它还尝试预先确定您正在键入的内容(包括编程结构),并帮助您处理函数参数和类元素(见图 2)。此功能还分析类声明并自动创建具有默认内容的函数。Emacs 粉丝可以欢呼,因为编辑器可以设置为处理 Emacs 键映射。
好吧,编译器有一些非常狡猾的地方——它太快了。当我在 Kylix 中创建我的第一个程序时,我按下了编译按钮,但什么也没发生。所以我又按了一下。那时我才意识到程序编译得如此之快,以至于当我的点击手指还在休息时,编译器已经完成了它的工作。编译器可以作为命令行程序 dcc 使用。dcc 还集成了链接器。这对于批处理构建和在没有 IDE 的情况下为那些顽固的 vi 高级用户或文本终端开发非常有用。
调试是标准的有用功能。这是一个很好的实现,但没有什么特别之处(例如在调试时更改代码并在不重启程序的情况下继续执行)。我非常高兴地发现 GDB 支持 Kylix 生成的二进制文件。不幸的是,我只能使用 GDB 在机器代码级别进行调试,因为符号表加载失败。我要么使用了不正确的 GDB 版本,要么没有设置正确的编译标志。Kylix 调试器和 GDB 为初学者和高级用户都提供了双赢的局面(见图 3)。
Kylix GUI 构建器是一个很好的商业前端构建器(见图 4)。Kylix 扩展了通常对 GUI 构建器(作为 RAD 组件)的期望,例如数据库连接和 Web 服务器工具(实际上与 GUI 无关),通过实际上通过 GUI 表示它们。在 GUI 中使用非可视化 RAD 编程组件可以轻松访问相关的 GUI 前端。
我期望但没有找到的一件事是设置 GUI 组件之间关系的图形化方式,例如,通过一条线将按钮连接到对话框,以建立按钮和对话框之间的关系(例如,单击按钮关闭对话框)。这种图形关系构建在其他几种产品中可用,最值得注意的是 Trolltech 的 Qt Designer 用于 Qt Widget 集。作为旁注,Kylix 使用 Qt Widget 集作为其跨平台组件 (CLX) 的基础。
由于我使用的是 Kylix 的服务器版本,因此我可以访问 Borland 提供的所有组件(见图 5)。有一些出色的 Web 服务器实用程序可用于使用 Apache 进行开发。数据库组件是一个名为 dbExpress 的集合的一部分。dbExpress 理念是将实时数据保留在计算机的内存中,只有当启动或需要更新时,数据才会被发送到实际的数据库。这种方法显然可以防止数据库上的扩展锁,并减少不必要的网络流量。
我感到失望的是没有 OpenGL 组件。诚然,Kylix 主要面向商业用户,但在应用程序中使用一点 3D 始终是一件令人愉快的事情。
就项目维护而言,Kylix 提供了一个待办事项列表,可以在开发团队中共享。代码资源管理器允许快速浏览代码结构。对象存储库允许项目成员共享工作部分。尽管 Borland 向我保证,像 CVS 这样的源代码控制产品可以与 Kylix 集成,但需要开发第三方接口产品来支持它。
另一个问题是文档不足。对于 2,000 美元的产品,我希望软件包中包含几本好书。包含的只是一本写得很好的教程书,它只涵盖了基础知识,并且确实需要扩展才能为新的 Kylix 开发人员提供良好的跳板。程序参考指南是足够的,但显然不能替代在线文档。幸运的是,在线文档提供了良好的覆盖范围,并包含许多示例。真正缺少的是针对 Kylix 和 Object Pascal 编程语言的 C/C++ 程序员指南,或者某种基于计算机的培训 (CBT) 介绍。大多数 Linux 应用程序程序员都是 C/C++ 程序员,这样的指南将是对 Linux 平台的一种认可。我强烈建议新的 Kylix 开发人员阅读 Borland 网站上的白皮书,尤其是在掌握数据库和 Web 组件时。
Kylix 有三个版本:Open,可免费(可下载)用于非商业 GPL 开发(或 99 美元购买硬拷贝版本);Developer,用于商业用途,功能和组件数量有限(999 美元);以及 Server,具有所有功能和组件(1,999 美元)。
我真的希望 99 美元的版本是一个精简版,它允许您创建个人或小型商业产品。Open 版本可用的条件是,使用 CLX 使用它生成的任何代码都必须在 GPL 下发布。这意味着这些程序的源代码将被公开。尽管这具有很大的开源优点,但它有效地阻止了大多数商业开发。看起来 999 美元的 Developer 版本是最便宜的商业质量版本,并且似乎没有与 Windows 的 Delphi 标准版相匹配的廉价商业版本。
然而,Borland 社区无疑是强大而有帮助的。在线文档和新闻组是信息的重要且必要的来源。我的大多数难题都是通过阅读 Borland 新闻组消息来解答的。此外,一些 Borland 人员在新闻组中非常活跃且乐于助人 (http://www.borland.com/newsgroups/)。
我尝试在几个 Linux 发行版上安装 Kylix。不幸的是,受支持的 Mandrake 7.2 未能干净地安装,我不得不使用 Borland 的 libc 来规避安装问题。一个 Linux 系统,我从各种零碎的东西中拼凑起来的,安装和运行 Kylix 没有任何问题。为了帮助潜在的 Kylix 开发人员,Borland 制作了一个 Kylix 预测试工具,以检查您的 Linux 安装是否具有所有必需的组件。您可以从 http://www.borland.com/devsupport/kylix/downloads/ 下载 Kylix 预测试工具。
Kylix 的初始版本支持 Object Pascal 编程语言,它是 Pascal、Modula 2 和面向对象概念的融合。对于绝对的编程初学者来说,这种语言可能更容易学习,因为它更接近英语,非常像脚本语言。我主要的不满是习惯了用于分配变量值的 := 符号。在编程时,我感谢 Kylix 编辑器,它可以帮助您编程和使用组件。
Borland 跨平台组件库 (CLX) 是一种奇怪的东西,特别是对于经验丰富的 Motif/Qt/Java 程序员而言。它的 API 名称和关系逻辑具有 Windows 风格,需要一些时间才能习惯并理解哪个函数或类将执行您想要的操作。Borland 还在 sourceforge.net 站点上以开源形式发布了 CLX,网址为 http://freeclx.sourceforge.net/。CLX 涵盖了构建图形应用程序所需的所有核心元素。
关于数据库,虽然 Kylix 支持 MySQL,但在撰写本文时,它有一个主要问题,因为它仅支持带有库 libmysqlclient.so.6.0.0 的 MySQL。请注意,任何其他版本(更高或更早的 libmysqlclient.so)都会导致您的应用程序崩溃。这给我带来了很多麻烦,而且我并不孤单;快速浏览一下新闻组,就会发现其他人也有类似的问题。但是,一旦您克服了设置困难,为 Linux 创建数据库应用程序就从未如此简单。由于 Borland 数据库方法的性质,实际上可以拥有一个仅驻留在内存中的数据库,然后将其作为二进制或 XML 文件转储到您的本地系统上。Borland 提供了连接到几个主要数据库(尤其是 Oracle)的组件。也可以创建您自己的数据库支持。
虽然 OpenGL 接口在第二张 CD 上提供,并且可以从 www.delphi-jedi.org/DelphiGraphics/index.htm 下载,但很明显它没有经过广泛的测试(也表明缺乏全面的示例)。我在让 OpenGL 的 GLUT 工具包工作方面遇到了巨大的麻烦,最终放弃了努力。
Kylix 团队可能忽略了一件事,那就是 Linux 程序员可能想要开发一个命令行程序来执行一些后台任务。对于这类应用程序,通常使用 C/C++ argc/argv 参数来获取命令行参数。虽然在 Kylix 内部有几种可能的方法可以做到这一点,但似乎都没有奏效。我不得不在互联网上搜索,才找到一种相当晦涩的复制内存的方法来获取 argc/argv 数据。
Kylix 的主要吸引力之一是能够在 Linux 上开发应用程序,然后使用 Delphi 将其移植到 Windows。诚然,有一些限制,但如果您坚持使用 Kylix API 集 CLX,那么您就走上了一条干净的移植之路。
Kylix 不仅面临来自专有 Linux IDE 的竞争,例如 SNIFF+、SlickEdit 和 CodeWarrior,还面临来自开源项目的竞争,主要是 KDevelop、Qt Designer、KDE Studio 和其他几个项目。然而,这些都没有提供 Kylix 的组件数量和范围。在这一领域,Kylix 是当之无愧的赢家。
虽然 Kylix 是一款令人兴奋的产品,但它确实迎合了特定的受众:现有的 Delphi 程序员和旨在将企业/业务应用程序移植到 Linux 和 Windows 的开发团队。当然,主要问题是 Object Pascal 编程语言本身。这可能还不足以说服 C/C++ 编程商店转而使用 Kylix。
Borland 希望在今年年底发布一个支持 C++ 的 Kylix 版本。实际上可能可以使用此版本的 Kylix 编译 Linux 内核(或者我听说是这样)。现在,这真是一款令人兴奋的产品——一个可能的 GCC 杀手?
Borland 未来可能解决的另一个增强功能是支持 Intel 以外的架构。
Kylix 是一款功能强大的开发产品,通过其面向业务的组件,它提供的功能比任何其他 Linux 商业同类产品都多。Borland 认真对待成为 Linux 社区的一份子,并通过免费发布 Open 版本以供下载和以 99 美元的价格提供物理介质,以及将 CLX 组件作为开源提供,证明了这一点。如果 Object Pascal 编程语言不是问题,那么 Kylix 就是商业 Linux 开发的开发工具。Open 版本服务于开源社区。尽管存在一两个小问题,但 Borland 勇敢地为 Linux 上的商业开发铺平了道路。
