Delphi是被一些人遗忘了的快速应用程序开发工具,但它与可视组件库相结合,依然是开发Windows本机代码的最佳选择。我以前曾发布过关于Delphi的消息。那是两年前,在我会见了Embarcadero的CEO韦恩?威廉姆斯(Wayne Williams)之后不久,他承诺要开发出一个能够为Mac及Windows操作系统进行编译的Delphi版本。
就在我几乎要失去等待的耐心之时,Embarcadero发布了一个新的Delphi版本,而且从表面上看它的诸多功能都超出了我的预想。下面是它的一些亮点:
1.支持64位Windows操作系统的开发;
2.称为FireMonkey的新的跨平台框架;
3.在Windows上开发,用来编译Max OS X的交叉编译器;
4.FireMonkey支持iOS(Apple iPad及iPhone)的开发。
5.称作LiveBindings的新的数据绑定功能,允许你将任何可视对象绑定到任何使用表达式的源对象。
尤其是与令人相当失望的首个版本Delphi XE相比时,这些功能都让人十分惊讶。 Embarcadero似乎是在这个版本中超额完成了它所承诺的一切。
我很乐意去以一种最为流行的方式来尝试为Mac进行交叉编译,即在Mac上使用一个虚拟机来运行Windows,并在虚拟机中运行Delphi。当你安装Delphi或是包括C++ Builder及其它功能组件的完整的RAD Studio时,它会安装一些你将要在Mac上运行的组件,包括FireMonkey库和所谓的Platform Assistant服务器。然后你在Delphi里创建一个连接Platform Assistant的远程配置文件以及密码即可。
首次尝试时一切顺利。当我把一个OS X目标添加到Windows操作系统的FireMonkey应用程序上,点击运行时,我那简单的程序就像一个Mac桌面上的OS X程序一样奇迹般地打开了。
但是为iOS编码需要付出更多的努力,因为你并不是简单地在Windows中使用Delphi,而是最终要把项目导入到Xcode中并且使用Free Pascal编译器进行编译。不过它确实也能够成功运行。
另外Embarcadero将来很有可能会增加对Android系统的支持,使之更能满足那些需要支持多平台的人的需求。但是它还存在不少的缺点,难道这就是我们所期待的Delphi吗?不过当你从KSDev公司了解到在RAD Studio XE2发布前仅仅6个月 Embarcadero才收购了VGScene和DXScene来作为FireMonkey的基础,这就不足为奇了。我并不知道2009年当我和威廉姆斯交谈时Embarcadero计划如何去发展跨平台结构,不过现在看来KSDev确实为我们提供了答案。
这表明FireMonkey的结构还不够成熟,与Windows的VCL(可视组件库)相比还存在一些性能问题,并且功能也不够强大。VCL可能会与Windows相结合,但是我们很难放弃已经发展了十六年的VCL而去支持FireMonkey。而且现存的程序也不能够轻易移植,因为这不仅仅是从VCL移植到FireMonkey的问题,而是Delphi开发人员习惯于在必要时调用Windows API,生成无法跨平台运行的代码。
同时值得注意的是所有的FireMonkey控制都是自定义绘制。因此在FireMonkey存在的情况下,跨平台的开发经常会放弃在Windows或是Mac上使用本机控制。
作为一个跨平台开发工具,Delphi现在已经对Adobe Flash Builder,Appcelerator Titanium,PhoneGap等发起了挑战。至于Adobe AIR,我对它印象颇深,而至于PhoneGap,从多方面来讲都是开发移动应用程序的理想工具。
现在已经有迹象表明Embarcadero对FireMonkey非常看重并且正在为其未来进行投资。因为现在Delphi开发人员可以在使用FireMonkey的同时超越 Windows;并且FireMonkey的跨平台功能很可能要吸引更多新的用户。
最后我要补充的是尽管跨平台最能吸引人,但VCL也并非是一成不变,在支持64位的情况下,Delphi会比以前单纯作为Windows开发工具要出色得多。
原文:http://www.oschina.net/news/22707/delphi-xe2
【编辑推荐】