Interview with Danny Thorpe about Diamondback
Abstract: Danny Thorpe, Chief Scientist, talks about the next Delphi release
Danny Thorpe, Chief Scientist, 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/dthorpe0904.php
Delphi-Source.de:: On BorCon 2004, the next Delphi release (Code name DiamondBack) will be shown. Why did you choose this code name? Will the new release be a true diamond?
Danny Thorpe: DiamondBack is a codename from a series of snake names. C#Builder was codenamed Sidewinder. I'm hoping to break that pattern for the next product as I find snakes more of a nuisance and hazard than inspirational or cool.
What you have already planned for the last release, is now implemented: Win32 and .NET development in one IDE. Is this right? What about the support of other languages than Delphi in this IDE?
Yes! ;> This next release of the IDE is the realization of a long-term goal that we've been working toward since at least 2002.
Delphi "Diamondback" is a multi-lingual development platform, and will include support for developing Delphi for Win32, Delphi for .NET, and C# applications. All in the same product box, and in the same IDE. You can have C# and Delphi .NET and Delphi Win32 projects (.exe and .dlls) as members of one project group in the IDE project manager, and use that project group to "build all" using the respective compilers and tool chains.
Will there be integrated support for Kylix within the IDE (like CrossKylix)?
This next release will not include cross-platform targeting, but the IDE pluggable personality architecture is certainly capable of hosting such a thing without requiring major infrastructure work. CrossKylix is a great start.
Or are there any news about the future of Kylix?
We're working on our 2005 plan now, and have some ideas on the table for how to get some updates out for Kylix in the not too distant future.
At the Delphi product address Monday night, Michael Swindell announced that Borland is expanding the Kylix Community Project by inviting key members of the Kylix open source community to become maintainers of the OpenCLX repository on SourceForge. This will help us keep up with all the activity that's going on out there with OpenCLX. (Contact Michael for specific details, names etc)
Are there any changes in the IDE compared to Delphi 8?
Yes! Lots of new stuff, for both the .NET developer and the Win32 developer.
John Kaster's 4 hour preconference tutorial overview of the Diamondback product had more than 200 slides and 120 pages of printed content. The volume of hot new stuff is enormous.
The Delphi Diamondback IDE features source code refactoring for Delphi source (.NET and Win32) as well as C# code, new functionality for ASP.NET development, new pop-up help insight (drawing on XMLDoc comments gleaned from the source), multi-level local file history, tight integration with StarTeam source control and project management, and lots more!
What are the most important improvements in Delphi language and the compiler? You have mentioned the foreach loop in your blog. Will there be more?
Yes, there are a couple of significant compiler improvements in the works, in terms of syntax as well as internal infrastructure. There's the for..in loop enumerator syntax, as well as multiunit namespace support (lots of internal work, very little syntax impact), improved handling of Unicode string constants and literals in source code and Unicode identifier support.
One significant item that was announced for the first time at BorCon this week is new compiler support for code inlining. The Delphi Diamondback compiler now supports inlining function and procedure calls, copying the function body to the call site to eliminate call/return overhead for very small functions. You mark the functions you would like to have inlined with a new "inline;" directive (in place of a calling convention) and the compiler will consider placing that call inline at call sites. The compiler may choose to not expand code inline in certain contexts based on the complexity and register pressure at the call site.
This function inlining support was developed for the Delphi Win32 compiler, but it is also available in the Delphi for .NET compiler!
Are there special improvements only for the .NET part or only for the Win32 part
Well, multiunit namespace support really only provides value on the .NET side of the house, but the syntax is supported in Win32 as well. The Win32 compiler gets support for compiling UTF8 and Unicode encoded source files (locale free!) and a significant codegen feature that is of greatest value to Win32 code but is supported in .NET as well.
The .NET compiler gets new support for forward declared record types, and the Win32 compiler now supports nested type declarations.
Is support for .NET compact framework integrated?
The Delphi compiler will support targeting .NET CF by linking against the CF assemblies. The IDE will not provide any CF design or debugging support. Negotiations with Microsoft to obtain the pieces necessary to provide a complete CF solution are ongoing.
Microsoft has .NET 2.0 announced for the next year. When can we expect Delphi 10 and what have you planned for it?
Probably the biggest item in terms of the compiler/language is implementing parameterized type syntax (generic types) in Delphi. We've had parameterized type syntax sketched out on the whiteboards here for ages but other stuff (platforms) kept taking priority. The general goal is to have a product release in 2005, shortly after .NET 2.0 is finalized and released.
You have a new job at Borland - chief scientist. Congratulations! What are you doing now in this position?
Lots of email! ;> Actually, the new title adds additional responsibilities for long-term planning and research on top of my regular duties with the Delphi compiler and product team. It's my job to make sure upper management is aware of trends and upcoming events in the .NET and Win32 markets and help map out our course to reach the parts we want and avoid the parts we don't. Plus, more email and more meetings. (ugh)
Thank you very much!