Delphi XE2:這就是我們所期待的Delphi嗎?
Delphi是被一些人遺忘了的快速應用程序開發(fā)工具,但它與可視組件庫相結合,依然是開發(fā)Windows本機代碼的最佳選擇。我以前曾發(fā)布過關于Delphi的消息。那是兩年前,在我會見了Embarcadero的CEO韋恩?威廉姆斯(Wayne Williams)之后不久,他承諾要開發(fā)出一個能夠為Mac及Windows操作系統(tǒng)進行編譯的Delphi版本。
就在我?guī)缀跻サ却哪托闹畷r,Embarcadero發(fā)布了一個新的Delphi版本,而且從表面上看它的諸多功能都超出了我的預想。下面是它的一些亮點:
1.支持64位Windows操作系統(tǒng)的開發(fā);
2.稱為FireMonkey的新的跨平臺框架;
3.在Windows上開發(fā),用來編譯Max OS X的交叉編譯器;
4.FireMonkey支持iOS(Apple iPad及iPhone)的開發(fā)。
5.稱作LiveBindings的新的數(shù)據綁定功能,允許你將任何可視對象綁定到任何使用表達式的源對象。
尤其是與令人相當失望的首個版本Delphi XE相比時,這些功能都讓人十分驚訝。 Embarcadero似乎是在這個版本中超額完成了它所承諾的一切。
我很樂意去以一種最為流行的方式來嘗試為Mac進行交叉編譯,即在Mac上使用一個虛擬機來運行Windows,并在虛擬機中運行Delphi。當你安裝Delphi或是包括C++ Builder及其它功能組件的完整的RAD Studio時,它會安裝一些你將要在Mac上運行的組件,包括FireMonkey庫和所謂的Platform Assistant服務器。然后你在Delphi里創(chuàng)建一個連接Platform Assistant的遠程配置文件以及密碼即可。
首次嘗試時一切順利。當我把一個OS X目標添加到Windows操作系統(tǒng)的FireMonkey應用程序上,點擊運行時,我那簡單的程序就像一個Mac桌面上的OS X程序一樣奇跡般地打開了。
但是為iOS編碼需要付出更多的努力,因為你并不是簡單地在Windows中使用Delphi,而是最終要把項目導入到Xcode中并且使用Free Pascal編譯器進行編譯。不過它確實也能夠成功運行。
另外Embarcadero將來很有可能會增加對Android系統(tǒng)的支持,使之更能滿足那些需要支持多平臺的人的需求。但是它還存在不少的缺點,難道這就是我們所期待的Delphi嗎?不過當你從KSDev公司了解到在RAD Studio XE2發(fā)布前僅僅6個月 Embarcadero才收購了VGScene和DXScene來作為FireMonkey的基礎,這就不足為奇了。我并不知道2009年當我和威廉姆斯交談時Embarcadero計劃如何去發(fā)展跨平臺結構,不過現(xiàn)在看來KSDev確實為我們提供了答案。
這表明FireMonkey的結構還不夠成熟,與Windows的VCL(可視組件庫)相比還存在一些性能問題,并且功能也不夠強大。VCL可能會與Windows相結合,但是我們很難放棄已經發(fā)展了十六年的VCL而去支持FireMonkey。而且現(xiàn)存的程序也不能夠輕易移植,因為這不僅僅是從VCL移植到FireMonkey的問題,而是Delphi開發(fā)人員習慣于在必要時調用Windows API,生成無法跨平臺運行的代碼。
同時值得注意的是所有的FireMonkey控制都是自定義繪制。因此在FireMonkey存在的情況下,跨平臺的開發(fā)經常會放棄在Windows或是Mac上使用本機控制。
作為一個跨平臺開發(fā)工具,Delphi現(xiàn)在已經對Adobe Flash Builder,Appcelerator Titanium,PhoneGap等發(fā)起了挑戰(zhàn)。至于Adobe AIR,我對它印象頗深,而至于PhoneGap,從多方面來講都是開發(fā)移動應用程序的理想工具。
現(xiàn)在已經有跡象表明Embarcadero對FireMonkey非常看重并且正在為其未來進行投資。因為現(xiàn)在Delphi開發(fā)人員可以在使用FireMonkey的同時超越 Windows;并且FireMonkey的跨平臺功能很可能要吸引更多新的用戶。
最后我要補充的是盡管跨平臺最能吸引人,但VCL也并非是一成不變,在支持64位的情況下,Delphi會比以前單純作為Windows開發(fā)工具要出色得多。
原文:http://www.oschina.net/news/22707/delphi-xe2
【編輯推薦】