I have used Linux Desktops for about ~15years and involved in the Development community it astonished me how frequent the APIs break specially at Desktop Application/libraries level. I remember several libraries, like GTK+ deprecating often APIs even during stable releases. The consequence of this is that the main application developer spends a big part of its time constantly updating its application instead of developing new features and make it feature rich.
The same can be said in order parts of the Desktop like the transition from X11 to Wayland/Weston and all the Desktop Environments that some years ago fragmented and decreased their quality. Unity, KDE and GNOME all failed in producing a Desktop that really appealed to all users.
Finally for me another failure is the package management. For the App developer he needs to get his app packages for all major distributions and imagine the effort of the App developer and App maintainer to support different libc and userspace tool versions.
All in all the Application developer has such a huge burden that he is most of the time updating his app to new apis/tools than actually developing new features.