Delphi 希望成为你的下一个跨平台编程语言,面向 Windows、OS X、iOS 及 Android 开发原生应用

  • 杨赛

2013 年 1 月 31 日

话题:移动语言 & 开发

2008 年,Borland 将 CodeGear 出售给英巴卡迪诺(Embarcadero)。从此之后,英巴卡迪诺成为了 Delphi 和 C++ Builder 的所有者,也同时成为这两个产品背后的直接支持厂商。

自从 Anders Hejlsberg 离开 Borland,投奔微软创建了 C# 之后,Delphi 一直面临极大的压力。20 世纪末,Web 开发逐渐成为主流,B-S 架构越来越多的取代了 C-S 架构,而 Delphi 在这个领域一直没有出现好的方案,进一步导致用户流失。

近几年移动设备的流行带来了 App 的爆发式增长,同时也带来了很多开发团队对于跨平台开发的困惑。同时开发和维护一个应用的 iOS 版本和 Android 版本,被很多开发团队视为一个负担和问题。目前,HTML5 及其周边的一些技术是最受人关注的跨平台解决方案,但是这个方案目前尚存在很多问题。

这个时候,英巴卡迪诺表示,将在 2013 年陆续为其开发工具产品 RAD Studio XE3 添加对 iOS 和 Android 的支持工具包,让开发者编写的 Delphi/C++ 应用可以同时在 Windows、OS X、iOS 和 Android 平台上运行。

按照目前的计划,Delphi iOS(Project Q)将在 3 月发布,Delphi Android(Zephyr)将在 8 月发布,而 C++ iOS 和 C++ Android(Zephyr II)将在第四季度中期发布。(注:RAD Studio XE3 本身已经在 2012 年 9 月正式发布。)

就此,InfoQ 于近日采访了英巴卡迪诺亚太区及日本业务高级总监 Malcolm Groves 先生,询问有关这几个项目的进展情况。Malcolm Groves 先生于 1989 年进入澳大利亚 Westpac 银行担任系统操作员,在 1997 年加入 Borland 从事 C++ 开发。2006 年 CodeGear 从 Borland 拆分之后,Malcolm 加入 CodeGear,任亚太区销售与市场高级总监。2008 年加入英巴卡迪诺之后,Malcolm 一直负责亚太区及日本的业务。他现在每个月都会在澳大利亚、日本、中国等国家之间穿梭,与客户和产品开发人员进行交流。

InfoQ:首先我想确认一下,RAD Studio XE3 未来会加入的这个 iOS 和 Android 跨平台开发(Mobile Studio),意思是不是可以同时开发 Windows、OS X、iOS 和 Android 上的应用,就是同时跨桌面端和移动平台?

Malcolm Groves(MG):产品搭配是我们一个商务上的决定,一般是在产品开发的最后阶段做出来的。但是我也可以和大家分享一下:我们把客户分成 2 部分,有一部分客户非常关注在 4 个平台上同时进行开发——这个主要是现有的客户,那么我们(针对他们)推出的这种工具包可以同时覆盖这四个平台。但是也有一些潜在的新的客户,他们可能只是关注在移动平台上做开发,对他们我们也有另外的一种工具包。我们这 2 种不同的工具包可以适用不同的需求。

InfoQ:有些开发者觉得 Delphi 不适合做 Web 开发和移动开发,对此您怎么看?

MG:对于 Web 开发的评论,我在一定程度上是表示赞同的,因为一开始 Delphi 和 C++ Builder 都是针对桌面平台做的设计,包括它用的表格或者是网页这些相关的样式,都是在原有的情况下来建立起来的,所以并不是完全适用于 Web。Web 应该有一个自己的、有特色的一个界面。如果要做 Web 开发,可能更好的选择是 HTML5 语言,所以我们也推出了 HTML5 Builder 这款产品。

关于移动这块,我们一直都没有一个 Delphi 编译器,所以 Delphi 不适合做移动开发这一点实在无从谈起。在 1~2 个月后我们的新产品问世后,就会来解决这个问题。

InfoQ:关于使用 Delphi,很多企业还存在这样的困惑,就是优秀的 Delphi 开发者现在很少,很难找,一方面是就算找到了成本也很高,另一方面要培训一个好的 Delphi 开发人员出来还是比较困难的。您对这样的疑问会如何解答?

MG:招聘 Delphi 程序员的人力成本比较高,这一点实话来说,我们英巴卡迪诺是要承担责任的。成本高的问题实际上是一个供应方的问题。我们一直以来都在关注 Windows 平台的开发,并没有着力在其他平台上发展,导致这方面人才的供应有限。我们希望能够通过新产品的推出,能够逐步的扩大这方面的用户数量,同时扩大使用我们这些编程语言的开发人员的供应。我们希望如果这方面成功的话,再过一到两年会有一个足够规模的人才库,能够为相关的开发企业和开发商们提供这方面的开发人员。

关于人员培训这方面,我想说的是,将懂得其他语言的程序员培训成为 Delphi 程序员并不难。我说一个我亲身经历的例子:我们有一个非常大的客户在印度,承接了一个需要用 Delphi 开发的项目,但是他的团队当时只有 C# 和 Java 程序员。通过交流,我们做了一个项目培训的安排:先给程序员们做一周的 Delphi 培训,然后直接让他们上手做 3~4 周的项目,最后再安排一周的培训,共计 6 个星期。通过这 6 个星期,虽然不能说他们成为了 Delphi 语言的专家,但是他们使用 Delphi 开发的生产效率已经相当高了,完全可以满足生产需求。他们对使用 Delphi 开发的熟悉程度增长的很快,这主要也得益于我们的开发工具所采用的直观的组件工作模式,可以大大缩短程序员培训和学习的周期。

InfoQ:RAD Studio 产品有没有一些优惠或者折扣的推广计划?比如针对学院或者新企业用户的合作伙伴计划。

MG:我们在学院的项目其实力度已经非常大了,我们针对学生和学术机构的许可证设置了非常低的价格,有时候甚至是零价格,完全免费。当然,我们会根据市场的发展情况来进行调整。

关于给新用户的特别折扣,我觉得这个是有可能去考虑的,因为今年我们要推出新的技术和新的产品,有了产品,就要找到新的用户,把产品提供给他们。具体的相关计划还要根据时间的进展来制定。

我觉得对于我们来说,第一步是要有好的技术,然后才是去找好的客户。如果技术本身不好,找到客户也白搭。我觉得现在技术最难的部分,我们已经做好了。

InfoQ:现在的 iOS 和 Android 的 Delphi 开发工具包还在 Beta 版,现在你们主要是邀请现有的用户来试用 Beta 版,有没有考虑将 Beta 版开放给更多的外部用户?

MG:目前我们会直接给我们 RAD Studio XE3 的用户发送邀请,他们可以直接登陆我们的网站,下载试用 Beta 版本的各个工具包。对于外部的新用户,其实他们一直可以试用我们的 Beta 版产品,只要登陆beta.embarcadero.com,注册一个开发者网络的账号就可以直接去使用了。我们只是因为不了解他们,所以没有直接给他们发送邀请而已。

一般在我们刚刚进入新平台的时候,产品是很容易出错的,所以我们会启动一个规模很大的 Beta,收集更多的测试反馈。我们在刚刚开始支持 OS X 平台的时候,就做了一个很大的 Beta。现在扩展到移动平台,我们也需要一个很大的 Beta。

InfoQ:目前有哪些使用了 RAD Studio XE3 开发出来的应用,能不能介绍一下?

MG:因为移动开发的工具包目前还在 Beta,没有正式发布,所以现在可以提的例子只是针对 Windows 和 Mac 的应用。我就说两个吧。

第一个是一款叫做 Beast 的应用,它主要是为警方、FBI 和其他司法部门提供证据追踪的服务。这个应用以前只是在 Windows 平台上的,客户一开始使用 RAD Studio XE2 开发,最近升级到了 XE3,直接将 Windows 应用移植到了 Mac 平台上面,所以现在已经有 Windows 和 Mac 这两个版本。现在开发团队也在利用我们 Mobile Studio 的 Beta 版制作 iPad 上的版本,那么等到我们的 iOS 开发工具包正式发布之后,很快就能推出 Beast for iPad 的正式版了。

第二个例子的用户规模更大一些,客户是澳大利亚的国税总局。在澳大利亚,我们有一个退税制度,所有的纳税人在每年可以做一次退税,为此他们需要填写很多表格来说明自己在今年赚了多少钱,交了多少税,然后根据这些提交的数据计算自己今年可以拿到多少退税。因为这个流程非常复杂,所以澳大利亚国税总局就推出了一款叫做 E-tax 的应用,纳税人可以去国税总局的网站免费下载这个应用,用这个提交自己的纳税数据。这个应用的用户数量达到了数百万,其中不仅有个人用户,还有税务会计师。这个应用就是用 Delphi 编写的,一直以来都是针对 Windows 平台的应用。过去几年,越来越多的用户表示希望这个应用能够支持 Mac 平台,所以国税总局就在大约 12 个月前启动了这个项目,开发跨 Windows 和 Mac 平台的 E-tax。他们一开始用 XE2,后来升级到 XE3 来进行这个开发。我同事和我每个月都要跟他们进行沟通,考察这个项目的进展情况。目前来看,还是很顺利的,应该能够在这个税务年度内发布这个新版本。那么这个项目一旦成功完成,将会是我们基于 FireMonkey(跨平台运行时)和 XE3 开发出来的、用户规模最大的一个跨平台应用。当然,我们很多老 Delphi 应用的用户规模是远在此之上的,随着跨平台这种趋势越来越发展,以后会出现更大用户规模的跨平台应用。

说到这里,我想回顾一下这张图:

为什么我们对这块业务的发展充满信心呢,是因为我们现在的状态跟上世纪 90 年代初期的状态有些相似之处。

90 年代初期,商业软件主要是企业内部开发,大量基于 dBase、DOS 系统。内部的开发者很多都是商务出身的,他们很聪明,但是他们对编程并不在行。所以 Windows 开始流行起来之后,我们当时看到很多企业里面,员工平时操作都在 Windows 下,但是要用企业软件的时候,会在 Windows 下打开一个 DOS 界面,进去那里面工作。因为把 DOS 上的应用移植到 Windows 平台上,对大部分企业内部的开发人员而言难度太大了。

那么后来,出现了 Delphi,Visual Basic,Access 这样的工具,Windows 上的企业软件才逐渐多了起来。这个过程中,很多以前做 DOS 应用的公司没有跟上变化,逐渐消亡了;同时,市场上诞生了很多新的独立软件开发商,比如做 POS 系统或是餐馆管理软件的一些企业,他们都在这个变革当中得到了壮大的机会。

在这之后,Windows 迅速成为了行业内的老大。

那么现在,我看到了同样的一种情况。越来越多的终端设备开始使用其他的操作系统而不是 Windows 了。企业用户目前又落在了后面,因为移动时代的 Access 或 VB 这样的工具还没有出现。的确,做 iOS 开发有 Objective-C,我自己是做 C++ 出身的,我个人感觉 Objective-C 比 C++ 要容易一些,但对于企业而言,还是很难。所以现在也是同样的一个趋势:业界很多一直做 Windows 应用的、垂直领域的大软件供应商,都还没有推出基于平板或者移动终端的应用,那么这就再次给一些小型的独立软件开发商提供了崛起的机会。大概 2、3 个月前,我接触到一家公司,他们从前台到后台完全使用平板电脑,一台 PC 机都没有。我想过一段时间,这样的公司会越来越多。

对于他们而言,在苹果和 Android 之间的选择也是一个两难,所以我觉得这是我们的一个机会。基于我们的跨平台开发工具,有可能在今年吸引到一大批新的用户。

InfoQ:这样听起来,RAD Studio 是不是主要还是面向企业客户,而并非主要面向消费级市场的开发者们?比如游戏开发者?

MG:我们的客户群体本身是比较全面的,有最大规模的金融机构、政府机构,也有个人级别的开发者,包括一些编程爱好者。我们在产品开发和推广方面,并没有特别的优先考虑。当然,对于不同级别的客户,我们会推出不同版本的产品,侧重不同的方面。

RAD Studio 当然是可以做游戏的。我在 3~4 个月前刚刚跟我们在韩国的一些游戏开发商们进行过交流。有时候这挺有意思的,因为你总是不知道你的用户会用你的产品开发出什么东西来,很多时候他们会做出很多令人惊喜的东西。

InfoQ:您刚才讲到上世纪 90 年代的那个变化,同时您也提到,Android 的市场占有率在短短的两年时间内,从 15% 上升到了 50%。英巴卡迪诺现在的策略是跨 iOS 和 Android 平台,但是您觉得这种 iOS 和 Android 分庭抗礼的状态还能持续很久吗?未来是会趋向于上个十年那样的单家垄断状态,还是会趋向于 20 年之前的那个群雄混战的状态?

MG:如果我能预测这样的问题,那我早就成为高帅富啦。我们能做的从来都是基于手头现有的数据做决策。

现在的情况是,苹果和 Android 的增长都非常快,那么 Chrome OS,Firefox OS 也获得很多关注,微软的 Windows Phone 也不知道能不能带微软东山再起。我上周在日本还听说一个传言,说联想可能会收购 RIM,如果这样的话,RIM 说不定也还可以重焕生机。总的来看,我觉得 Android 的发展非常快,但不可能完全取代 Windows。另外,在 Windows 霸权时代,当时只有一种终端,就是桌面机,这种单一性本身也会影响到操作系统的发展情况。那么现在既然有这么多种不同形式的终端,所以长期来看,这个市场应该是会越来越多元化的。

InfoQ:你们有没有跟苹果沟通过,他们对这种第三方的开发工具是个什么样的态度?

MG:实际上,我们这边有很多同事离开之后都去了苹果,也有同事是从苹果过来的,所以对双方的情况也都比较了解。我们的确看到之前 Adobe 跟苹果的一些矛盾,导致苹果禁用了 Adobe 的一些开发工具。所以是的,我们主动跟苹果做过沟通。沟通主要是向他们解释两点:第一,我们的开发工具具有很强的原生性。第二,通过我们的工具开发出来的 App,不会绕过苹果的 App Store,可以保证他们 30% 的提成。这两点沟通清楚,苹果也看了我们用 Delphi 开发出来的应用提交至苹果应用商店的流程,对我们的态度还是非常支持的。而且,苹果跟 Adobe 的矛盾,也是因为 Adobe 的规模太大,对苹果构成了威胁。我们的规模很小,对苹果不构成威胁,而且我们又遵守他们的游戏规则,所以他们还是很支持的。

移动语言 & 开发