1. David您好,很高兴接受InfoQ中文站的采访,您能给我们介绍一下您自己吗?
好的,我是David Intersimone,大家都叫我David I,现在是负责开发者项目和关系的副总裁、首席布道师,帮助全世界的开发者使用我们公司的各种产品。
2. 您来中国已经很多次了,这次来给大家带来了什么新鲜的信息呢?
我这次过来主要是来访问一些客户,还有学生,想听一下他们对我们的产品有什么反馈,并且向他们宣传一下,因为过去我们是Borland和JBuilder,而现在我们是英巴卡迪诺公司,我们主要关注的是数据库工具和开发工具,还有其他的程序,编程的工具。我还有一个任务就是向我们的客户介绍一下我们的一个新产品叫All Access,如果我们的用户加入这个All Access项目就会得到一个通用注册号,可以使用17到18个产品,因为我们的客户可能是做编程,也可能是架构师,也可能是数据库的管理员,所以用户仍然可以选择分别购买我们的工具,也可以购买All access整个的工具包。
3. 我们的读者大多数都是架构师和高级的开发人员,您想和我们分享那些资讯呢?
在英巴卡迪诺的公司旗下,我们有针对数据库架构师的产品名为ER Studio,用作数据库的建模工作,对于应用开发人员,我们也有IDE系列的UML模型来帮助他们进行开发。所以我们整个的数据库应用和数据库的设计方面都有相关的产品,可以帮助我们的用户,给他们提供最好的工具,来适应多框架以及多操作系统的环境。
4. 您负责的EDN(Embarcadero Developer Network,http://edn.embarcadero.com/)上个月进行了改版,新版的EDN较以前做了哪些改进呢?
首先我们所做的是把数据库方面的新和技术带到了开发者社区,在这个开发者社区里面,我们给应用开发人员和数据库开发人员提供了开发方面的内容、实例还有视频,还有一些教程,这些东西都放在一个网站上。其次我们实现了信息的整合,因为作为一个开发人员,他可能在一个项目的不同阶段,或者是在不同的项目上会担当起不同的角色,比如说他是架构师,有时候又做开发。不论他们是什么角色,我们把所有的信息都放在一个网站上,让他们寻找信息是非常容易的。所以我们把这些信息都无缝的放在一起,使他们使用起来更加方便。作为独立的开发人员来说,可能数据库、应用程序以及测试都是他一个人来做,他可以在这一个网络上找到所有需要的信息。
5. 请您谈一下目前您所理解的技术社区发展趋势?这些趋势有没有体现在新版的EDN中呢?
目前我们看到一些趋势,在社区方面,我们融入了Web 2.0还有社交网络,此外在开发方面,进行了多层以及分布式开发,我们END也应用了一些新的技术,比如Ajax。这些技术让我们整个网站的网络实现了同步化,你在寻找资料的时候,不用在这个网站的各处进行点击,因为我们有RSS Feed,如果出现了任何新的文章、信息,都会直接发送给订阅的人。无论你是做研究,做开发的,都能在浏览器上自动获取到这些信息。我们还有一种博客的系统,所有的开发人员他们要是在博客上有更新,这些内容也可以发送给相关的读者。我们还有点播的视频,所以我们在不断的增添新的功能。
6. Delphi 2009去年发布之后,开发者目前反馈如何?您认为2009最大的亮点是什么?
我们的反馈是很好的,收到的反馈都说Delphi 09在性能和稳定性等方面都有很大的提升,提供了很多新功能。我们一直在追踪着Delphi整个的发展历程,关注着使用者的反馈。在07年我们启用了一个全新的内存管理器,这为我们的产品实现了更好的性能,和更高的稳定性,反馈也不错的。
我们2009的亮点就在于它支持Unicode,所有的运行库,还有VCL、 编译器上都支持Unicode了,全球各地的开发人员都可以开发出本地化的,适用于全球的应用。中国、日本、韩国还有俄罗斯和欧州的一些客户,一直以来都在要求我们增加这项功能,他们原来都需要自己处理,或者是借助第三方库的帮助,来为他们实现多字节的支持。现在我们提供了这种无缝的字符串的支持,而用户只要做一个重新的编译就可以了。
7. 一个大家现在都比较关注的话题是如果想把以前的项目转移到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的外观,这些都是新的功能,我们都可以用在旧的应用上,使他们重新焕发光彩。
8. 对于.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的各种功能上面没有限制。
9. 现在各种开发平台都在努力迎合社区的发展,请问你们的开发团队如何选择支持或者是不支持某种新的技术呢?
很多开发人员他们是尽量希望能够采用最新的技术,用作多层开发或者WEB2.0的开发以及先进数据库的开发,同时还有一些开发人员,他们只是把现有的应用进行翻新,我们要做的是保证我们的用户能够在需要的时候用到最新的技术,用在他们的编辑器、IDE,还有单元测试的各种功能上面。对于我们的产品来说,我们还有DataSnap的功能,也可以用于客户的多层开发项目。
最终我们的新的版本会融入什么样新的功能呢?取决于我们得到的客户的反馈,所以我们经常倾听客户的声音,拜访我们的客户,了解他们遇到什么问题,如何给他们提供帮助,这样我们就可以决定是不是应该给客户提供一些新的语言支持,比如说Ruby,或者是新的技术,像我们说到的Web 2.0、Ajax,客户告诉我们的东西是最为重要的。那么作为开发人员来讲,他们对于自己的想法都非常的开诚布公,他们从来不会害羞。如果有需要新的程序,新的技术,新的功能、新的芯片或者是操作系统的支持,他们都会告诉我们。
此外我们还积极了解业界发展的方向,以及未来整个技术发展的趋势。比如说如果用户需要新的技术,新的用户界面的时候,我们会希望在未来的版本上也满足这些要求。我们也和很多的平台厂商,硬件厂商,操作系统的厂商沟通,这样当用户有了新的需求的时候,我们下一版本也就做好了准备。
10. 对于很多关注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,我们会给他们提供组件层的支持,让编程更加简化。
11. 下面我们来畅想一下IDE的发展趋势,您梦想中的IDE应该具备哪些必需的特性呢?
我们看到了在未来会有更多的团队式的开发或者是分布式的开发,不再是独立的一个开发人员来自己做这些工作。所以我们的JBuilder就会支持多团队,多项目的开发模式。像Delphi和C++ Builder也是如此,我们会有这种对于点对点的交流支持。我感到更令人兴奋的是,我们现在除了可以把工具集成到英巴卡迪诺的技术和数据库工具以外,我们还能够把数据库的开发功能和各种工具集成到IDE的产品之中。比如说你可能想要找到JAVA或者是Delphi基础的系统上性能的瓶颈在哪里,那么这个瓶颈可能在于代码,也可能是数据库,也可能是两者之间的接口。比如说我们有JOptimizer,它实现的是Java优化的功能,此外我们还有数据库的优化器,它做的也是对于性能的调试,让整个系统运行的速度可以加快。在我们的Delphi和C++ Builder里面,我们会看到有些情况下,数据库的参数会出现一些问题,无法得到正确的结果。在这种情况下,我们的产品能够允许你去介入编程的过程,然后对参数进行修改,找到恰当的逻辑。而且未来我们其会有代码和数据库的调试的功能,这两者结合起来,能够让你解决在编程中遇到的相关问题。
在未来我们会看到数据库中会有很多代码和数据库交互,在这上可能就会出现一些问题,我们也提供了一些解决方案,让用户可以对于数据、代码进行重构。从更长远的角度来讲,在编程方面要适应不同的平台,实现远程的调试,我们的产品会在未来支持多核系统,多处理器系统的编译功能,现在我这个笔记本是双核的,未来还有四核或者是八核的,或者是服务器有128个核,在语言扩展能力方面,各种库的支持,Prizm都有考虑。未来的IDE产品都会支持这种高扩展的多操作系统的环境。今天我们在开发应用的时候,可能最后的部署是在一个桌面电脑上,在一个台式电脑上做,或者是有一个光盘让你做安装,有一个安装键,服务器端也是一样,未来我们希望在IDE上也有这种项目的选项,比如说云计算的选项,可以让我们同时支持数据和代码。所以在未来我们的产品中会有这样一个选项,让你可以去按照不同的云来进行配置的选择,是Google、亚马逊、微软还是自己企业防火墙内部的一些应用。我们还有数据建模的功能,对于用户来说,他们可以实现DataSnap API的多层的运行,多层的编程。我们还会提供一些向导,语言的扩展组件,无论用户是编写适应于WEB2.0或者是云计算的应用,他们的代码编译一次就可以了,不用重新来做。
12. 您如何看待平台框架IDE还有语言他们之间的关系呢?
这些平台框架都是工具,这些工具在一起使用,就可以让用户尽可能的来开发更广更深的功能。让他们的开发项目尽可能的成功,我们作为提供软件开发工具的企业,我们也要实现这种跨平台、跨框架,跨开发语言的支持能力。尽可能的为客户的开发工作,让他们的工作更简化。无论他们选择什么样的平台,什么样的语言,都可以很轻松的来做。很多大型的软件企业,他们也提供了一些开发的工具,但是他们的工具只针对自己公司的平台、数据库和框架,而我们公司是最大的独立软件开发工具商,我们是帮助开发人员可以使用多平台、多语言,多框架进行编程和数据库的开发(因为企业内部也有多种类型的数据库)。我们所最关心的就是帮助用户使用同样的技术,就可以实现跨平台、跨数据库的开发。