Look, I despise Windows and no longer use or program for it, but it is ignorant to say that GUI programming in Windows is still stuck in 1995. XAML adds a declarative interface to WPF control instantiation, and the out-of-the-box WPF controls are more powerful than most other GUI toolkits, including HTML.
In my expirience the the mix of XML and code quickly grows into a worse situation than just having a decent programming API in first place.
In Flex, which also sports a declarative layer, most seasoned developers seem to try to avoid it as much as possible - because it gets in the way when complexity grows.
Same story with XUL, which perhaps would feel a little less like broken glass if they had omitted the "X" from the name.
But well, I have never coded a win32 GUI, so quite possible XAML really is a step up from what they had before.
In my expirience the the mix of XML and code quickly grows into a worse situation
It depends on how you do it. In any environment, there are ways that scale and ways that don't.
We've had very good results (seperation of concerns, plugability, extensiblity, blendability) using the ViewModel pattern, an IOC Container and Command objects.
The good part of WPF is that you can do all this, or other things, if you want. The same is not true of Windows forms. WPF enables some nifty ways to scale that are just not there in Windows forms.
I'm doing all my current work in Flex and think it is great; If you apply some Cocoa-style discipline to structure, you can achieve stunning results while remaining nimble.
Of course, it's entirely possible that the book being reviewed didn't cover WPF. Maybe it's not fully supported, maybe the authors chose not to cover it, maybe any of a lot of things happened.
"Each button in the UI has to be tediously positioned and configured ... Windows UI programming is as tedious today as it was in 1995."
Clearly he's still doing Windows forms.
"When is Microsoft going to learn the real lesson about simplicity of HTML?"
About three years ago.
WPF ( http://en.wikipedia.org/wiki/Windows_Presentation_Foundation ) has been around since .Net 3.0 ( 21 November 2006 ). The XAML markup, where you don't have to "tediously position and configure" each element is heavily influenced by HTML, CSS and SVG.
That .NET 3.0 has been around since 2006 is a red herring. What really matters is the percentage of Windows machines that have it installed.
I know a few companies that write desktop .NET software, and they can't use WPF unless they add ~50MB to their download (or in the installer). That would be bad for their growth rate.
That will largely become a non-issue as more people migrate from XP onto Vista or 7; all installations of Vista come with .NET 3.0, and 7 will probably come with 3.5 or maybe even 4.0 if it's out in time. Perhaps they could make two downloads, one for XP users and another for Vista/7 users?
What really matters is the percentage of Windows machines that have it installed
I know, I've been bitten by that prerequisite. But the question asked was "When is Microsoft going to learn UI lessons from HTML", which has a simple answer.
Man, I created a Python GUI with WXWindows, and it was anything but rapid development. I used a RAD to learn the ropes, but once I did, it was faster to hand code the windows.
Ok, first this is Guido and there is the obligatory "we're not worthy" stuff but this is a pretty bad argument. UI development for Windows in .NET WinForms is not that difficult and you do not generally have to dig into the guts of UI subsystem.
Secondly, Guido brings out the old whipping boy of "clients are dead long live the Web." I think this is not a good view. Why is it either Web or Clients. Personally, if HTTP/HTML the best we're over going to do then I think it's a pretty sad state of affairs. It also seems like a big waste to have these powerful computers with many cores that do nothing but allow you to have more tabs open in your web browser.
The web is a great platform but there must be a world beyond HTTP/HTML/Javascript and the occasional Flash application.
Lastly, I think Guido is either being naive or coy treating HTML as if developing UI in it has no tedious aspect to it.
His viewpoint on MS technologies is pretty dated and ridiculous:
"When is Microsoft going to learn the real lesson about simplicity of HTML? Instead, Microsoft is doing the same thing to HTML that it does to anything it touches: adding cruft to the point where the basic functionality is buried so deeply that most people can't even find it."
Has he ever heard of ASP.NET MVC?
"It's no wonder that users are switching to the web as the platform for everything that used to live on the desktop"
I happen to have read both that book along with several on programming in cocoa (never done either professionally, I was just curious, so I claim no authority) and I thought that the systems (both what you can do with ironpython and wpf in general) turned out to be generally comparable in terms features, albeit grounded in differing philosophies and idioms. That said, what is the ideal to which WPF should aspire? If not Cocoa, then QT? Gtk?
I am curious mostly because I see a lot of this sort of nothing-new-under-the-sun critique of WPF, and while I have not worked with it in any great depth, what I've seen has been impressive enough to put doubt in my mind about such statements.