On Mon, 24 May 2010 11:01:06 -0400, Steven Schveighoffer <schvei...@yahoo.com> wrote: > It's done all the time in Java and .NET. For example, A GUI listbox > widget exposes its elements as an array of elements, which implement the > List interface. You don't ever see the implementation or need it. > Granted Java and .NET have less problems than C++ and D with binary > compatibility, since the function tables are dynamic, but the potential is > there for D to make binary compatibility possible with interfaces. >
Cocoa (NeXT's/Apple's framework for Objective-C) uses a very successful and well-thought-out delegation pattern, whereby GUI elements representing large amounts of data, like table views, have delegates (not in the D sense of the word) that provide them with the actual contents. Granted, Objective-C's runtime is much more dynamic than D, but a simplified version of such a pattern could still work in D. After all, user interfacing is typically where dynamism is more important than speed.