David I谈Delphi的现状及未来发展方向

自去年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中文站上,敬请期待。



你可能感兴趣的:(David I谈Delphi的现状及未来发展方向)