Few people know the name Peter Sollich, as he always chose not to be a public figure (for instance, he is absent on the Outstanding Technical Achievement video).
Peter has been very important for both the Delphi and the .NET worlds: he was the original author of the 32-bit product that became the Delphi x86 compiler.
A few interesting links came up when using his name in some Google searches.
I just watched this interview with Anders Hejlsberg for the first time. This is truly an amazing interview. It’s rather long, about 1 hour, but it is so worth it. I’m not giving anything away… you’ll have to just watch and enjoy.
I am giving a few things away: trip down memory lane, putting big parts of software development history into perspective,
Since Anders has been so versatile, influential and still humble, this is a must watch for anyone in the software field. To quote Research Channel:
This episode features industry luminary, Anders Hejlsberg. Before coming to Microsoft in 1996 he was well noted for his work as the principal engineer of Turbo Pascal and the chief architect of the Delphi product line. At Microsoft, he was the architect for the Visual J++ development system and the Windows Foundation Classes (WFC). Promoted to Distinguished Engineer in 2000, Anders is the chief designer of the C# programming language and a key participant in the development of Microsoft’s .NET Framework. In this show, Anders is joined by a surprise guest. This episode of ‘Behind the Code’ is hosted by Barbara Fox – former senior security architect of cryptography and digital rights management for Microsoft.
(PS: how a video published in the C# 3 era can be so current <g>).
And if you feel for more, here, here, here, here and here are some more, are a few lists of videos where Anders speaks.
From a historic perspective, I like these most:
All of the supported aspects are linked to articles from excellent authors. There is far more on the internet about Delphi and Generics, but those are a good start.
The correct answer is “it doesn’t”, but that is really dense.
IEnumerables are just that: being generic or normal, they allow you to enumerate things. They can get you an enumerator (generic or not) that has a notion of Current (generic or normal) and such, but no knowledge of the underlying data.
Comparing them needs you to think about the enumeration and the underlying data at the same time. You can get two kinds of comparisons: Read the rest of this entry »
public static void CreateUnderlyingDirectory(string path)
{
string directoryPath = Path.GetDirectoryName(path);
Directory.CreateDirectory(directoryPath); // NOP if it exists, will create all parent directories if not
}
Often when comparing characters with a list of characters, that list does not consist of consts.
It if were, you could make a switch statement:
switch (item)
{
case '/':
case '\\':
case ';':
addSeparator(separatorsUsed, item);
break;
}
But reality is that you cannot do things like this:
switch (item)
{
case Path.AltDirectorySeparatorChar: // Error: A constant value is expected
case Path.DirectorySeparatorChar:
case Path.PathSeparator:
addSeparator(separatorsUsed, item);
break;
}
However, you can perform a small trick and use LINQ to write some pretty elegant code based on Contains.