自去年 CodeGear 被英巴卡迪诺(Embarcadero Technologies)收购后,大家对 Delphi 的未来发展非常关心。特别是在 Delphi 2009 发布后,开发者以及 Delphi 社区出现了很多不同的声音,而对这其中的种种议论,最有发言权的当属现任英巴卡迪诺副总裁的 David Intersimone(简称 David I)了,他在 CodeGear 工作已超过 25 年,一直负责开发者社区的相关工作。近日,InfoQ 中文站有幸对 David I 进行了独家专访,以了解更多关于 Delphi 的相关信息。
InfoQ 中文网站:Embarcadero 公司给我们带来了什么新的变化?
离开了服务多年的 Borland 公司确实是一件让人伤感的事情。当然了,我有理由相信,更应该感到悲伤的是那些留在 Borland 中的旧同事,因为他们必须和 Delphi、C++Builder、JBuilder 等最优秀的开发工具说再见了,必须和全球的三百万开发者说再见了。对于我来说这是绝对无法想象的,我无法离开 Delphi、无法离开全球的开发者社群。 值得欣慰的是,Embarcadero 公司作为一家老牌的数据库工具开发公司,其固有产品和客户群和 CodeGear 开发工具有着非常大的互补性,这次并购对于 Embarcadero 和 CodeGear 来说都是一件好事。两个产品线在得到对方的技术之后,都能够在原有的基础上得到极大的提升,双方原有的客户也都可以得到更好的服务。Embarcadero 公司的 CEO Wayne Williams 也是一个技术出身的人,他非常喜欢大家可以在一起讨论技术问题,我记得这种情况只出现在过 Borland 的首位 CEO 的身上。Embarcadero 和 Wayne Williams 都非常重视 CodeGear 产品线的发展和 CodeGear 现有客户的感受,并愿意为此投入大量的人力和金钱。
Embarcadero 是一家完全中立的独立软件供应商,我们开发的数据库工具和开发工具产品能够帮助客户在他们自己选择的平台上更快捷的设计、构建更有品质的数据应用系统,并能够帮助用户维护、优化和管理他们的数据库系统,不论用户选择的是 Windows、Linux、Solaris、Mac 或者 Delphi、C++、Java、PHP、.NET、Ruby、SQL 还是 Oracle、Sybase、MSSQL、DB2、MySQL、BlackFish 或 Interbase。
InfoQ 中文站: Delphi 2009 去年发布之后,开发者目前反馈如何?您认为 2009 最大的亮点是什么?
我们的反馈是很好的,收到的反馈都说 Delphi 09 在性能和稳定性等方面都有很大的提升,提供了很多新功能。我们一直在追踪着 Delphi 整个的发展历程,关注着使用者的反馈。在 07 年我们启用了一个全新的内存管理器,这为我们的产品实现了更好的性能,和更高的稳定性,反馈也不错的。 我们 2009 的亮点就在于它支持 Unicode,所有的运行库,还有 VCL、 编译器上都支持 Unicode 了,全球各地的开发人员都可以开发出本地化的,适用于全球的应用。中国、日本、韩国还有俄罗斯和欧州的一些客户,一直以来都在要求我们增加这项功能,他们原来都需要自己处理,或者是借助第三方库的帮助,来为他们实现多字节的支持。现在我们提供了这种无缝的字符串的支持,而用户只要做一个重新的编译就可以了。
InfoQ 中文站:一个大家现在都比较关注的话题是如果想把以前的项目转移到 2009,需要有哪些工作要做呢?要注意哪些事情?
在 2009 的版本上,我们会兼容所有过去的 Delphi 的版本,会存到一个专门的迁移功能,还会对原有的代码进行备份。所以过去 Delphi 6 和 7 开发出来的远吗,我们的 2009 版都可以对其自动更新。作为开发人员来讲,他们只要点一下 compile 这个 button,那么就可以开始新版本的运行了,只要注意一些警告和提示信息就可以了。现在我们使用的字符串是 Unicode 的,过去用户可能使用指针来进行字符串的管理,将字符串用于内存的缓冲或者是信息的队列,他们一般是采用这种比较容易的方式,尽可能节省内存。而现在支持 Unicode 以后,单个字符的长度可以是一个字节到四个字节,编译器向用户发出警告,向他们建议应该做什么样的修改。 对于开发人员来讲,如果他们有很多代码的话,他们可以用指针的算法,我们对编译器进行了修改,让它适应 VCR 下面的运行时库,这样用户就可以把旧的版本无缝的迁移到新的版本上,再做重新编译即可。
我们增加了一个项目的选项,对于开发人员来讲,他可以选择是否要把一个项目警告(warning)转变为错误(error)。这样如果他们认为这是一个可疑的指令的话,那么就可以按照自己的需求停止改指令的执行。可能会因为支持 Unicode 而带来一些冲突,那么用户可以选择把所有的警告都设定为错误,或者是把某一个警告设置为错误代码,然后用户可以自己选择去调查是不是需要改变某一个类型的变量类型。
对于用户来说,他们需要把自己的开发项目迁移到新的 Delphi 上面,我们为此也增加了一些语言特性、运行库和 VCL,具体怎么做要取决于用户原来使用的版本是 5、6 还是 7,我们的网站上也有一些相关的文章,向用户介绍了我们的新版本带来的什么样新的语言特性和工具。这样用户就可以知道如何利用新版本的功能。
此外对于用户来说,他们还可以把现有的应用,利用新的组件来翻新。比如说他应用的界面,可以让适应 Windows XP 或者是 Vista 新的风格和主题,比如说还有一个 Ribbon 组件,可以让你的产品拥有类似 Office2007 的外观,这些都是新的功能,我们都可以用在旧的应用上,使他们重新焕发光彩。
InfoQ 中文站:对于.NET 的开发人员,他们最关注的就是 Delphi 的 Prism,您怎么看现在的 Prism 跨平台的开发能力,他的发展方向如何呢?
Prism 是一个新的产品,它使用的是 Object Pascal 语言,对于用户来讲,他们如果是在开发.Net 的应用,他们可以看到这个工具支持.Net 3.5 版本的很多功能,像信息的查询,还有平行扩展等等,都可以支持。此外我们还有语言扩展的能力,像 C#的语言,我们就支持同步的功能,如果你是在运行一个多线程的应用,它可以为你生成一段代码,规定代码只在一个线程上活动。此外我们的另外一个语言扩展就是对于变量未来值的设置,我们可以宣布一个变量的未来值,在多线程运行环境下,我们也可以让编译器来生成一段代码,让应用来等待这个未来值的最终生成,在生成这个值之后再运行计算。对于开发人员来说,在多线程,多核处理器的环境下,他们做开发就更方便,更容易了。 我们还支持多操作系统的项目,如果你是使用.NET 或者是 ASP.Net,这些应用也可以在 Linux 和 Mac 的操作系统上运行。在语言层面上,我们同时支持原生代码和.Net,这两种语言之间实现了完全的兼容,他们可以通过对逻辑的共享,来实现分布式计算和数据库应用的编写,我们使用的 DBExperss 数据库框架,通过这个框架我们能让 Windows 的原生代码和.Net 同时得到支持。今年我们还会推出单元测试的功能,也会支持.Net 4.0,所以在.Net 的开发方面,我们一直是处于技术的前沿。可以在 Prism 上支持.Net。作为 Delphi 的开发人员来说,他们可以利用他们多年以来积累的语言编程能力和数据库开发技术,开发 Windows 原生代码或.Net 的应用,而且他们在利用.Net 的各种功能上面没有限制。
InfoQ 中文站:对于很多关注 Delphi 的人来说,最关心的是他们的现状和未来,请给我们介绍一下现在的 Delphi 的开发团队以及他们近期的打算。
我们的开发团队中,有的成员负责对现有产品进行更新,有的负责开发新一代的产品,此外还有更长远的规划,就是专门有一些人来做未来技术趋势的研发。我们在开发下一代的 Delphi Prism 的同时,也在考虑将来要为 Delphi 和 C++ Builder 增加一些什么新的功能。比如说在 C++ Builder 和 Delphi 上面的原生代码开发,这方面我们会考虑基于触摸式的界面新特性,现在已经有这种基于触摸技术的显示器,在下一代的 Win7 也会有新的 API 和新的技术来支持这种手指触摸式的应用。在过去不论是使用键盘还是鼠标,我们只能点击,但是现在我们能够使用这种对于手势的识别,我们可以有这种可编程的手势的语言,这样用户在下一代的产品在编制中也可以利用手势的变化来进行控制。在 Delphi 和 C++ Builder 里面,我们还会增加更多的 VCL 对于多媒体图形图像的支持。对于数据库,我们会按照需要来添加一些新的驱动程序,以支持更多更新的数据库平台。在 Prism 方面,我们刚才提到了有一个支持 Mono 的功能,所以用户可以把他们的.Net 应用发布到 Linux 或者 Mac 的操作系统上。从长远来说,我们的 Delphi 和 C++ Builder 可以使用原生代码的 VCR,我们期望能够支持用户在不同的操作系统上实现交叉编译。 在 Java 和 JBuilder 上面,我们也要支持 JAVA API 和 JAVA 各种各样的改进和增强版本,并且不断的增强我们的应用程序工厂。我们还将提供 Eclipse 4 版本的支持。
此外我们 Embarcadero 的 3rdRail 这个产品还要支持 Rails 2.3,今年晚些时候还要支持 Rails 3.0。 在我们的 PHP 产品方面,我们 Delphi for PHP 支持 Google Maps API,还有像 Amazon、Facebook,他们都使用开放的 API,我们会给他们提供组件层的支持,让编程更加简化。
部分采访视频,我们稍后会发布在 InfoQ 中文站上,敬请期待。
评论