关于Diamondback IDE——对Corbin Dunn的专访
摘要: Corbin Dunn, Borland软件工程师, 讨论Delphi IDE
Corbin Dunn, 软件工程师, 研究与开发, Borland软件公司.
采访于2004年九月; 提问者: Martin Strohal, Delphi-Source.de
您可以在这里找到德文版: http://www.delphi-source.de/vermischtes/interviews/cdunn0904.php
原文:http://bdn.borland.com/article/0,1410,32719,00.html
翻译:黄磊 (转载本翻译文章请保留译者信息)
Delphi-Source.de: 请问您在Borland工作多久了,怎样来到这家公司的呢?
Corbin Dunn: 我在Borland已经工作大约6年了. 我是从一个实习生做起, 工作于开发支持岗位. Some people from Developer Support came to the college I was attending and recruited new interns. 从加利福尼亚圣克鲁斯大学毕业以后, 我被雇于专职QA工作达一年之久, 之后我转向R&D.
您正在开发新的IDE. 它与过去一样, 还是用Delphi开发Delphi吗? 还是用其它语言开发IDE?
IDE的大部分是用Delphi开发. 某些部分是使用Delphi for .Net编译器, 少数是用C#完成. 使用C#是要测试C#Builder, 而且由于实际上在我们开始开发.NET IDE部分时, Delphi for .NET编译器还没准备好.
一些人反映, 在Delphi 8中没有了以前的版本的浮动窗口. 这个大的变动是出于什么原因呢?
实际上, 这是不准确的! Delphi 8 支持一个名叫 "classic" 的桌面布局配置, 它有浮动窗口. 人们主要谈到的事情是VCL for .NET设计器不是一个浮动窗口. 在Diamondback中, 我们现在允许这个作为一个选项. 内嵌它的原因在于提供一个更有效的使用桌面空间途径, 并保持与WinForms设计器的一致性. WinForms设计器来自Microsoft .NET Framework, 在它的感观上我们只有很少的控制. 即使我们有使用浮动设计器的选项, 我发现使用内嵌的设计器工作起来更有效.
Diamondback IDE将工作在与Delphi 8一样的浮动/固定窗口吗?
总之, 始终将有一个 "Classic" 桌面布局配置. 另外, Diamondback现在允许 VCL for Win32 和 VCL for .NET 窗体设计器被浮动. 由于设计器工作上的局限性WinForms 与 ASP.NET 设计器将仍然被内嵌.
在Diamondback IDE中有一些新的东西, 如HelpInsight及ErrorInsight. 您能给我们解释一下这些术语背后的东西吗?
ErrorInsight非常的精彩. 当您键入源代码时, IDE正不断分析和探测通常错误, 例如语法错误和某些警告错误(像未声明的标识符). 代码编辑器中所有的错误被加上下划线并有一条红色波浪红(译者注: 不知是不是指同一条下划线, 原文: Any errors are underlined in the code editor with a red squiggle line), 就像JBuilder. 另外, 我们也放置所有错误到一个新的结构视窗. 该结构视窗是一个通用的IDE窗口, 用于显示当前上下文的结构. 显示的东西包括: ErrorInsight消息, 您代码中的类型与变量(以前的代码浏览器), 以及当您在设计器上时的对象树型视窗信息. ErrorInsight工作于Delphi源文件, C#源文件, 和HTML文件.
HelpInsight则更酷了. 它包括两项功能. 当您移动鼠标到一个标识符上时HelpInsight窗口将弹出. 它显示一个包含该标识符帮助文件信息的小型HTML页面. 因此, 您可以立即看到给定项目的帮助而不必打开帮助文件. 另一个功能是CodeInsight. 当您激活CodeInsight窗口并在一个项目上悬停时HelpInsight窗口将弹出, 显示信息在CodeInsight项目上. HelpInsight工作于Delphi和C#.
HelpInsight是怎样工作的? 那些文本等是从哪里来的?
当您移动鼠标到一个标识符上面, IDE找出它来自哪一个部件或包. 再查找同名的XML文件. 例如, 如果您移动鼠标到 System.Windows.Forms.Form 上面, IDE将在 System.Windows.Forms.xml文件中查找帮助信息, 在framework目录定位. 如果您需要在VCL中的一个项目, IDE会在vcl90.xml中查找它.
这也能在自己的单位, 类和方法中工作, 或者只能在Borland的代码中使用?
One can use the XML documentation options for the Delphi and C# compilers to generate XML documentation. The IDE requires the XML doc file to be in the Microsoft format, so one will have to apply a transform to Delphi generated XML documentation files. 只要文件在部件/包相同的位置, IDE就应该能找到它. 最终, IDE将直接从被编辑源代码提取XML文档. 然而, 这个功能还不会出现在Diamondback.
Delphi 8 IDE不是很快.
我知道. 我正改进IDE以使它更快速.
因为全部的这些新功能, 新的IDE会更慢吗?
很不幸, 由于大量的代码要加载, 所以它将显得有点慢. 可是, 唯一慢的是在初始启动时. 一旦IDE已被启动, 它将是非常快的. 再加上所有新功能将使您得以更快的编程.
重构是Diamondback中的一项全新功能. 它给开发者带来什么呢?
开发者现在可以快速和安全的修改他们的源代码了. "更名重构" 允许您更容易的重命名一个标识符, 以使它能更好的体现它的用途. "提取方法"重构允许您将复杂的方法简单化和更容易的重用代码. "声明变量"和"声明区域"重构帮助开发者更快速编码和给变量添加声明. "查找单元"重构并不是一个真正的重构, 但允许您容易和自动地为未经宣布的类型或变量添加单元到单元列表. 最后, "提取资源字符串" 允许您非常容易地转换字符串常量为资源字符串, 这样应用程序就能更迅速的进行本地化.
"查找引用"使用重构引擎来查找所有引用一个特别的符号. 我发现这个功能非常便利, 而且经常使用它.
在Delphi下一个版本(指2005之后的下一个版本 译者注)上您有什么想法?
哦, 太多了! 我计划在IDE做更多的refactorings和更好的增强生产效率. 我充满了想法, 只是有多少时间去实现这些想法.
您在余暇时间也进行开发吗?
是的; 我出售一些共享软件作为兼职, 但我发现我空闲时间都用在了Delphi上了.
您最喜欢哪一种编程语言呢?
嗯, Delphi, 当然! 我更喜欢Win32的开发速度, 但.NET开发更轻松. 并且, 有了Delphi后, 可以一举两得.
非常感谢您!
----------全文完---------------