Both are probably too entangled with Windows internals. Windows Forms is essentially a wrapper around native GDI controls. WPF's rendering system is quite intertwined with the DWM
It's much easier to open-source the things with fewer dependencies, such as .NET Core, ASP.NET and other networking stuff. It's also invariably what customers are likely to want to run on Azure (or elsewhere), just maybe not with Windows underneath it.
For WPF I'm content with MS actually continuing development. WPF is the best UI framework I've used so far with a lot of good ideas that have sadly been ignored by most others. It's just sad that it got so little attention in recent years.
I use WPF everyday and it has many great features. But sadly it was conceptualized before many of the 'modern' and best features of .net. The striking lack of type support (generics), and frankly broken separation between form and function, makes it feel very clunky at times. Not to mention that while data-binding is first class, the predominant MVVM pattern is sadly bolted on. My last gripe is that in most WPF applications, the only reason the application hangs is due to rendering performance - which is truly unacceptable given every other part of my application can be multi-threaded or async.
Entirely true. Still, seems like if they were to open-source WPF, the Mono community would have an interest in trying to abstract out the DirectX dependencies and making it run on OpenGL. Shame we'll probably never see it happen - it would be great to see a true cross-platform GUI toolkit for .NET that's not GTK.
During the talk at Build on WPF there were some slight hints that it may be open sourced at some point in the future, I'm not holding my breath though.
I'm always surprised by the people asking "bring VB6 back". I'd like to know why - is it because you're stuck maintaining VB6 applications that can't be/haven't been updated to VB.net or C#? I used VB6 extensively back in the day, and I am very glad indeed that it's now dead.
It is ridiculously easy to create simple GUI apps with it, its limitations force you to write straightforward code (otherwise it becomes too much of a hassle and you go to another language) and provides a very good debugging environment which allow you to inspect and modify a program as it is running in a graphical way.
It is basically an extremely simple scripting language attached to a GUI designer (literally, originally VB was supposed to allow different languages to be used with it, but the feature was dropped).
Also it is instant fast on modern hardware.
Most people who have a grudge against VB1-6 have it either because they have no idea what they were talking about and are just parroting others (to be honest, i did that at the past), or were exposed to it via a project that abused it in ways that it wasn't meant to be (ab)used.
A while ago i made this little sprite editor in VB5:
It isn't anything special but it is actually quite useful if you're making low-res pixelart 2D games and personally i had fun making it (the first version also took me only a weekend although i added a few features since then).
Having said that, i do not expect Microsoft to bring back VB6 nor release the source code since now they seem to focus away from the desktop and VB6 is a full 1005 desktop technology.
To my mind, all of the points you listed as an advantage you can also find with C#/VB.net using WinForms. I've also never found WinForms or even WPF (most of the time) to be sluggish on even reasonably modern hardware.
What specifically do you find easier in VB6 than VB.net/C# when writing desktop apps, in particular in relation to WinForms?
You say "inspect and modify a program as it is running in a graphical way" - do you mean that with VB6 you could alter the UI as the application was running? If so, that's something I don't remember but I agree it could be very handy!
I've mostly had coworkers that had fond memories of VB6. Personally, compared to what we have now, I think it sucks. I'm no parroting. I suppose there's no way for me to know whether I "have any idea what I'm talking about". The language itself is terribly constraining. No try/catch. No generics. Crazy 1-based collections. No type-safe lists, just fixed size arrays. No function references. And so on.
Fun trivia: The first version of UnrealEd, the editor for the Unreal Engine 1 (used in Unreal, Wheel of Time, Rune, Deus Ex, UT99, Clive Barker's Undying etc.), was written in VB (of course, it used the renderer via interop).