The Ghost In The Machine wrote: > Delegates. This Microsoftish concept is a bit hard for me > to pin down (it feels a lot like a C++ method pointer -- > or even a C function pointer) but is occasionally touted > as an advantage for such languages as C++ and the ill-fated > Java++, which had them as part of the language. > They're basically "method pointers" bound to an instance. With some syntactic sugar and (even in my opinion superfluous) typechecks thrown around. 2.0 also encompasses lambdas / closures under the concept. I'm eyeing Nemerle for functional goodness under .NET - some of the tricks up that language's sleeve look impressive. (Notably native or provided-with-standard-library pattern-matching against XML.) > C#'s event handling emulates this concept to some extent > using the += operator, though I doubt they do it all that > generally -- or all that well. > I have a slight hunch it just compiles to a list of event handler delegates that gets invoked sequentially - not really function combination. I don't even know how the return value of a composite delegate that's not defined to return void is defined. As to all that well, you don't want to get me started. First-class language support for events should NOT crash and burn in a torrent of tears on a null pointer EVER - an event just not being handled doesn't seem like an edge case worth the error to me. > GUI support -- this is primarily API/library but might > be put in the language if it makes sense Naw, not really. GUI toolkit holy wars are particularly intricate, and you'd either have to bind to one toolkit on supported platforms, or make an abstract abstract one. I can't decide which is worse. (AWT anyone?) David Vallner