The original sin of the Linux desktop was the kde/gnome split over licensing. Had Linux had one good desktop, like the other operating systems, it could have had a future on the desktop.
Instead it has had a number of almost-good desktops that are still fragmented by hate and the desire to thwart interoperability. For instance, the GTK team won't fix certain bugs that affect running in a rootless X server because they can't stand the idea that you'd run Eclipse on Linux and view it on Cygwin/X.
DEs are one thing, but the biggest issue was a split over programming interfaces. One that has yet to be rectified even with the efforts of Freedesktop (in large part "Hijacked" by Gnome, Icaza's creation in the DE schism).
In the end the problem is likely the same as we are seeing on the web. People loves to code, not write specifications and sticking to them.
Another problem here is that unix DEs in general (and this includes even proprietary ones like CDE and 4Dwm) tended to solve problem that was cool in the mid 90's but then stopped to be relevant: having consistent cross-application object-oriented model for documents and preferably everything the user wants to manipulate. When you have multiple competing frameworks to implement this (and each KDE and Gnome went through at least one backward-incompatible reimplementation of this) you end up with applications that work only as part of the same framework. The whole OLE/COM/ActiveX on Windows is mechanism meant for exactly this and is used almost everywhere (Explorer window is COM component that displays COM components and the whole thing has exactly zero concept of files and directories).
This whole mechanism is in fact one great waste of time because the probably only meaningful user-facing application for this is embedding Excel charts in Word documents and in that case it is too generic and has some surprising behaviors that confuse users (I assume that what happens when you open document that has embedded OLE object for which there is no installed application has at least something to do with why Microsoft started selling Office instead of separate components) and can perfectly be implemented completely internally by the office suite, LibreOffice has internal system for this and nobody seems to care. One would assume that the useful use-case is more general, like "embedding picture-like things into Word documents", but I've never seen Word document that is actually useful and embeds something other than Excel chart or maybe worksheet, particularly I've never seen Visio diagram in Word document as an OLE object instead of image.
Currently KDE has it's KParts that are actually used in the implementation of KDE and KOffice, but Gnome seems to have completely dropped any such idea (which probably makes sense because their implementation that involved CORBA and could at least in theory work between X clients running on different physical computers was horribly over-engineered and probably was never used for anything that both worked reliably and was actually useful for end user).
I think he was well meaning. And at some point he just gave up.
As a long time Linux user I agree with him. FOSS is just not conducive to the kind of development needed for a high quality, long term stable desktop experience.
Why do you assume the correlation that he wrote this kind of articles to be hired be Microsoft? Isn't it much more likely that he had the posed point of view for all the time, but it did not become accepted in the GNU/Linux world. On the other hand Microsoft wanted to expand their .net ecosystem to Linux and mobile devices, so they bought Xamarin and hired Miguel de Icaza.
How common is this in Linux development? Is it better to have two competing solutions and "may the best one win"? Or would it be more effective for those two teams to work together on one project?
Part of the problem about KDE vs GTK is that it comes down to C++ vs C, which is a pretty big dividing line in the Linux programmer community. (You can have API wrappers, but the "native" language of the desktop environment influences the core abstractions, and so it'll probably seem more "natural" to use the same language the DE was written in.)
Maybe someone will come along and write a new desktop environment in Rust or something that's better than the other two. My fear that then we'll have three desktop environments.
Another option is to accept that these old debates will never be resolved and to start over with something new that isn't Linux. I've had a feeling like that's the best option that's been growing for the last few years. It's an enormous amount of work, though.
Of course it would be more effective, but it's hard to coordinate individual ambitions and goals within one project, so much so that it will cause splits or over-engineering of features just to please developers.
I don't know if GNU for example can get around that by having Stallman there to give the final say, or the Linux kernel with Torvalds there. Perhaps a similar approach would be good for DEs.
Instead it has had a number of almost-good desktops that are still fragmented by hate and the desire to thwart interoperability. For instance, the GTK team won't fix certain bugs that affect running in a rootless X server because they can't stand the idea that you'd run Eclipse on Linux and view it on Cygwin/X.