[All]
Interview with Danny Thorpe about Diamondback
By: Martin Strohal
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!