Kylix----Linux平台上的快速开发工具
对于开发人员而言,它的出现将极大地解放生产力;对于Linux的爱好者而言,它的出现将丰富Linux上的应用程序;对于Borland公司而言,它是15年以来最重要的项目之一;对于Linux世界而言,它的出现将会深深影响其今后的发展。这就是Kylix----Linux平台上的快速开发工具。
对开发人员而言,Kylix将会是Linux下的Delphi和C++ Builder,其支持跨平台的CLX组件库将会带给Linux开发人员前所未有的全新感受。
历史背景
Linux是当今最具竞争力的企业环境之一。由于其可靠性、易于升级和低廉的价格,Linux系统被广泛应用于Web应用服务器,并迅速成为Windows操作系统的竞争对手。这种情况下,市场对Linux的应用软件的需求也空前增长。然而,不得不承认,使用Linux的传统工具进行应用程序开发是非常困难的。它不像Windows上的开发工具那样符合开发人员的习惯,并具有极高的开发效率。这一弊端也严重影响到了Linux在操作系统市场的占有率。
在Windows环境下,可视化集成开发环境已有许多成熟的产品,如VC++、VB、Delphi、C++ Bulider和PB等,而基于Linux 操作系统的RAD软件则少之又少。无论是从Linux今后的普及与发展角度考虑,还是为基于Linux平台上的开发人员考虑,推出一款基于Linux的高性能RAD开发工具势在必行。
Kylix运行界面与Delphi运行界面的运行界面对比图
Kylix运行界面
Delphi运行界面
由于微软公司出于自身原因,不会开发基于Linux的RAD开发工具,因而这个责任也就义不容辞地落到了曾经开发过Delphi、C++ Builder等著名RAD软件的Borland公司身上。
1999年9月28日,Borland公司在咨询大量程序开发人员后,声明要开发一个“支持C、C++和Delphi的高性能Linux应用程序开发环境”,自此,Kylix正式启动,它也是第一个基于Linux平台的高性能RAD开发工具。
下面,就跟着我们一起来揭开Kylix美丽的面纱吧!
Kylix与Delphi
宝兰-英博思公司刚刚发布的Kylix确切地讲只是Delphi for Linux,而C++ Builder for Linux的Kylix将在今后一段时间发布。那么,Linux下的Kylix究竟与Windows下的Delphi有何异同,这是每一个开发人员都非常希望了解的问题,下面我们将根据一些对比图片来得出一些有用的结论。
集成开发环境对比图
从Kylix和Delphi的运行界面来看,无论是工具栏、窗体设计器、代码浏览器、代码编辑器,还是Object Inspector,我们几乎都很难发现二者的区别,如果要想辨别谁是Kylix、谁是Delphi,我们似乎只能看底下操作系统的工具栏了。
从集成开发环境上比较,Kylix与Delphi最大的区别在于Kylix采用的是支持跨平台的CLX组件库,而Delphi采用的是VCL类库,CLX与VCL有很多相似之处,但CLX不仅是一个可视化组件库,更是一个跨平台的组件库。Kylix上所使用的支持跨平台的CLX组件库是基于Qt的,而Delphi采用的VCL类库是基于Win 32 API的。Borland公司称,在下一个Delphi版本中,将会同时支持CLX和VCL,就是说Delphi开发的应用程序只需要进行必要的修改就可以移植到Linux平台上。
对于开发人员而言,Kylix是一个将把C++ Builder和Delphi带到Linux操作系统上的强大工具,并将为Linux开发人员带来快速开发的全新概念。它将leading edge开发环境、交互式调试器、直观的可视化设计器和覆盖各种功能的组件集成在一起,使用户快速开发Linux应用程序成为可能。Kylix还无缝集成了Borland的最优化编译器,可以快速编译高性能的应用程序。重用和定制Kylix的扩展的Web、桌面和数据库的特征和功能,极大地缩短了产品推向市场的周期,并优化了开发环境。
如果说Visual Basic的出现彻底改变了Windows平台上的应用开发环境的话,那么Kylix的出现也将改变Linux的应用开发环境,并真正成为Linux平台上的Visual Basic。
下面就让我们一起来了解一些Kylix针对开发人员而设计的强大功能及其特性。
Kylix将会让更多的Windows程序员平滑过渡到Linux平台上,同时,最大限度地保证跨平台的代码可重用性,使得基于Linux的开发人员能够像Windows开发人员那样高效地进行程序开发。
高性能原生Linux应用程序
在具有复杂计算或处理大规模数据集记录时,代码的执行速度变得非常重要。Kylix高性能、最优化的32位原生编译器可直接生成机器代码,而不是低效率地解释执行代码,因此Kylix的应用程序比使用解释执行的应用程序快5~50倍。
Kylix为开发快速且易分布和维护的高效应用程序提供了解决方案。使用Kylix可以编译动态装载包(Dynamically Loaded Packages),从而在数量级上减小执行程序的大小。动态装载包是一种独特的、居于领先地位的编译技术,能够把应用程序分成独立的、可重用的编译模块,并保证应用程序的高效执行。动态装载包使应用程序模块化,使代码等到需要执行的时候才调入内存,这种机制使主要执行代码精简快速,当进行功能扩展时,只需将那些要改进的模块进行替换即可。
Kylix使用编译指示支持内嵌汇编程序,因此可以在Object Pascal和汇编代码之间进行轻松切换,方便使用最新处理器技术,包括对Intel x86指令、MMX、SIMD和AMD 3D now !指令的全面支持。
Kylix只需编写一次共享对象代码,就能在任何可使用共享对象(.so)的应用程序或语言中重复使用。开发人员能创建独立于运行时的可执行程序,而且可以自由分发,不再另外增加分发成本。
快速集成应用开发环境(IDE)
在开发应用程序时,开发人员不再为从选单中寻找工具或设置个人编程环境而浪费时间。他所需要的全部功能都汇集在一个高度集成的开发环境中,包括当今最优秀的代码编辑器、调试器,以及更易理解的错误提示和高亮色彩语法显示。完全可定制地集成开发环境和可停靠可浮动工具条,使开发人员能够定制极具个人风格的工作环境,从而提高开发效率。
Kylix数据模块的树形视图显示了数据访问组件间的相互关系,并简化了数据模块中项与子项之间的导航。其数据视图以可视化方式显示和设置所有数据组件之间的从属依赖关系,通过这些视图可以帮助开发人员明晰数据模块的结构。
应用开发环境中,To-do lists也是值得介绍的,它使项目的任务列表更加条理化和易于管理,保证项目的顺利进行;To-do lists还可将任务直接定位到源代码中需要完成它们的地方,从而使开发人员轻松管理项目范围内的任务及其源代码。
Kylix代码编辑器具有智能识别、代码模板、自定义热键、过程函数事件的参数自动提示以及类定义代码自动生成等功能。
先进的集成调试环境
优秀的RAD开发工具必须具有高度集成的调试环境,以方便开发人员调试应用程序。Kylix的调试环境具有许多易用特性,如拖放支持、剪贴板支持、改进的集成化的调试工
具以及编辑器。
Kylix的Breakpoint ToolTips使监视断点的行为更为容易、调试过程更加快捷。将鼠标放在断点处,会自动显示相关信息,包括状态、计数、关联操作和组名称。Breakpoint Actions和Groups使开发人员可以快速控制对复杂应用程序的调试。Breakpoint Actions不仅能设置传统意义上的执行处断点,还能进行异常处理、表达式赋值、事件记录以及控制断点组的触发开关,增加了调试的灵活性。使用Breakpoint Groups可以轻松组织管理多个断点。
Kylix的Debug DCUs和Debug符号搜寻路径能够使开发人员在调试中,遇到已编译单元(如CLX库)时,不必面对二进制代码。编译器自动搜寻其源程序,然后重新定向到其中进行调试,从而使用户更加了解程序的执行情况。
Kylix还支持多进程调试。可以在Linux上同时调试多进程程序代码。
强大的数据库开发功能
对于数据库开发人员而言,Kylix的数据库开发功能也非常强大。主要表现在开放的数据结构、集成的数据库开发工具、MyBase Personal XML数据库引擎和高度可伸缩的DataCLX开发等几大方面。
通过dbExpress高性能数据库驱动可连接任意所需的信息。dbExpress将通过MySQL、InterBase、Oracle和DB2等数据库引擎连接到所需数据库上。
应用系统利用MyBasePersonal XML数据库引擎能够处理大量数据类型,包括BLOBs。MyBase“连接master/detail表关系”的功能使分布式瘦客户应用更加易于维护、修改和更新。所有关系型数据库信息,包括表结构都能够被发布到瘦客户端,而无需编写任何代码,而且对于所有master和client数据的更新都是完全自动的。
在开发人员利用Kylix创建高效Internet应用时,Kylix对XML数据的支持使用户能够快速创建灵活、可扩展的系统,从而简化数据分发和优化数据交换。
其他的数据库开发功能包括了高级InterBase支持、高级Oracle8i支持、Multi-byte开发环境和强大的第三方组件等。
跨平台的可视化开发
作为RAD开发工具,可视化开发功能是否强大是决定其易用性的根本标准。Kylix Server版的面向对象的组件框架中包含了160多个CLX组件(可视化或非可视化),这些组件都是完全可重用和可扩展的。
CLX(Component Library Cross-Platform),即“跨平台组件库”,其构成基础是跨平台的C++图形用户界面应用软件框架Qt。Qt和CLX的关系就好像Win32 API和VCL的关系一样。选择Qt有以下一些明显的好处:
1.它是一个广泛使用的Linux下的构件集(widgets),被流行的KDE桌面采用;
2.它的开发风格和Win32 API非常相似;
3.它的图形模块和VCL的图形模块相似;
4.它的类看上去非常像VCL控件;
5.它引入了大量标准构件,并且具有消息循环。
CLX跨平台组件库包括BaseCLX RTL类和组件、VisualCLX Native GUI组件和数据感知控件、DataCLX组件和VisualCLX GUI显示组件、数据感知组件、输入组件以及控制组件和NetCLX组件。
在CLX的帮助下,开发人员可以轻松编写跨平台的组件,就像你不必理解Win32 API的复杂性而去写VCL控件一样。下面是一个CLX计算器控件的工程文件CalcTest.dpr:
program CalcTest;
uses
SysUtils, Classes, QControls, QForms, QStdCtrls, Qt, QComCtrls, QCalc, T
ype