Interview with Corbin Dunn about the Diamondback IDE 
Rating:      Ratings: 41     Rate it
Abstract: Corbin Dunn, Software Engineer at Borland, talks about the Delphi IDE 
Corbin Dunn, Software Engineer, Research and Development, Borland Software Corp.
Interview September 2004; the questions are asked by Martin Strohal, Delphi-Source.de
You can find a German translation here: http://www.delphi-source.de/vermischtes/interviews/cdunn0904.php Delphi-Source.de: How long do you work for Borland and how did you come to this company?Corbin Dunn: I've been working at Borland for about 6 years. I started as an intern, working in Developer Support. Some people from Developer Support came to the college I was attending and recruited new interns. After I graduated from the University of California Santa Cruz, I was hired full time and worked in QA for about a year, and then I moved on to R&D.You are working on the new IDE. Is it now like in the past, that Delphi is developed in Delphi? Or what language do you use developing the IDE?The majority of the IDE is built in Delphi. Some portions are built with the Delphi for .NET compiler, while a few are done in C#. The reason for using C# was to test C#Builder, and due to the fact that the Delphi for .NET compiler was not ready at the time we began development on the .NET IDE pieces.Some people have claimed, that in Delphi 8 there are no floating windows like in the previous versions. What are the reasons for this big change?Actually, this is not true! Delphi 8 supports a "classic" desktop layout scheme, which has floating windows. The main thing people mention deals with the VCL for .NET designer not being a floating window. In Diamondback, we now allow this as an option. The reason for making it embedded is to provide a more effective use of desktop space and consistency with the WinForms designer. The WinForms designer comes from the Microsoft .NET Framework, and we have very little control of the look and feel of it. Even though we have the option of using a floating designer, I have found the embedded designer to be much more efficient to work with.Will the Diamondback IDE work in the same way as Delphi 8 related to the floating/fixed windows?As always, there will still be a "Classic" desktop layout scheme. In addition, Diamondback now allows VCL for Win32 and VCL for .NET form designers to be floating. The WinForms and ASP.NET designers will still be embedded due to limitations on how the designers work. There are some new things in the Diamondback IDE like HelpInsight and ErrorInsight. Could you explain us, what is behind these terms?ErrorInsight is really cool. While you type source code, the IDE is constantly reparsing and finding common errors, such as syntax errors and some sematic errors (like undeclared identifiers). Any errors are underlined in the code editor with a red squiggle line, just like JBuilder. In addition, we also put all the errors in the new Structure View. The Structure View is a common IDE window used to show the structure of the current context. Things shown include: ErrorInsight messages, types and variables in your code (the old Code Explorer), and Object Treeview information when you are on a designer. ErrorInsight works for Delphi source files, C# source files, and HTML files.HelpInsight is even cooler. It involves two features. When you hold the mouse over an identifier the HelpInsight window will pop up. It displays a small HTML page that contains the help file information for that identifier. This way, you can instantly see the help for a given item without actually having to bring up the help file. The other part to the feature involves CodeInsight. When you invoke the CodeInsight window and pause on an item, HelpInsight will pop up to the right of it, displaying information on that CodeInsight item. HelpInsight works for Delphi and C#.How dose HelpInsight work? Where does the text etc. come from?When you hold the mouse over an identifier, the IDE finds out what assembly or package it came from. It then looks for an XML file of the same name. For instance, if you hold the mouse over System.Windows.Forms.Form, the IDE will look for help information in System.Windows.Forms.xml, located in the framework directory. If you request help for an item in the VCL, the IDE looks it up in vcl90.xml.Does this also work with own units, classes and methods or only with Borland code?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. As long as the file is in the same location as the assembly/package, the IDE should be able to find it. Eventually, the IDE will do grab XML documentation directly from the source code being edited on. However, this feature will not be in Diamondback.The Delphi 8 IDE is not very fast.I know. I have been profiling the IDE and making it faster.Will the new IDE be slower because of all the new features?Unfortunatly, it will be a little slower due to the amount of more code that is loaded. However, the only thing that is slow is the initial start time. Once the IDE has started, it is very fast. Plus, all of the new features make will make you a faster programmer.Refactoring is a great new thing in Diamondback. What are the possibilities a developer has thereby?The developer now has the ability to rapidly, and safely, modify their source code. The "Rename Refactoring" allows one to easily rename an identifier to better describe its intended use. The "Extract Method" refactoring allows one to simplify long methods and more easily reuse code. The "Declare Variable" and "Declare Field" refactorings help the developer code faster and add declarations for undeclared variables. The "Find Unit" refactoring isn't a true refactoring, but allows you to easily and automatically add units to the uses list for undeclared types or variables. Finally, "Extract Resource String" allows one to easily convert string constants into resource strings so applications can more rapidly be enabled for localization.A releate feature is called "Find References". It uses the refactoring engine to find all references to a particular symbol. I find this feature very handy, and use it all the time.Are there any ideas left for the next releases of Delphi?Oh, plenty! I'm planning on doing more refactorings and more productivity enhancements to the IDE. I'm full of ideas and it is just a matter of how much time I have to spend developing those ideas.Do you also develop in your spare time?Yes; I sell some shareware on the side, but I have found that my spare programming time has become dedicated to Delphi itself.Which is your favorite programming language?Well, Delphi, of course! I prefer the speed of Win32 development, but the ease of .NET development. And, with Delphi, one can easily do both. Thank you very much! 
--------------------------------------------------------------------------------
NOTE: The views and information expressed in this document represent those of its author(s) who are solely responsible for its content. Borland does not make or give any representation or warranty with respect to such content.