The 3d desktop effects, however, don't seem to be the future. I loved the Compiz cube when if first came out and it impressed onlookers at the time but these things don't add to your enjoyment of using the system after a (fairly short) and they never make using it easier.
I like being able to log in to remove Linux machines, and run programs that show up locally on my desktop. And since it's not some framebuffer, I know the X commands are being send and then rendering on my side. That's loads better than some dumb pixel maps.
And X is extensible. Plugins aren't easy to write, but you can do it. We have Screen for X (Xpra), mpX (multiple pointer/keyboard), OpenGL, and loads more. Yeah, some could be considered cruft, or multiple ways to do the same thing, but that's the Unix Way.
That the X server doesn't do this, and provide knobs to control who is trusted and who isn't, is a shame. But again, we don't have to burn the entire graphics stack because security.
I'm honestly astonished at how quickly people jump on to wayland to complain about it, about how things are changing, about how it's not perfect etc. Wayland is an ongoing answer to a plethora of long term problems that Linux is facing. Display-level app sandboxing, screenlock security, high DPI (scaling) support, etc. Dropping support for 30 years of legacy that is no longer relevant is just a bonus.
In the real world, things like multi pointer never worked (neither GTK nor Qt really supports it). High DPI monitors on the other hand are getting more and more common. So yeah, priorities.
And the wayland devs aren't some cabal out to prevent people from implementing those things you mention; or creating a solid plugin interface. They're just lacking in manpower because 1. it's hard and 2. few are seriously paying for that development to happen.
So when a company like Canonical decides to do their own version of wayland, not only are they actively removing potential users from the display server, and duplicating the migration effort, but they're also impeding development on wayland itself. So if you're annoyed multipointer isn't supported in Wayland, I can point you towards whose fault it is.
I believe this happens because there is no real unifying force other than good feelings. In a company, people are forced to make reasonable efforts to work together or they imperil their paycheck. In the open-source world, people won't volunteer their time to work on your young project if it doesn't fit their taste profile quite exactly. Since it's rare for that to happen, lots of people spend lots of time re-inventing the same basic stuff and very few people spend time working on the difficult 20% of problems that would yield an 80% improvement in overall experience.
We see this over and over in the open-source world, and it's not without its benefits, but particularly in core underlying components like display servers, it can be very frustrating because you just want everyone to adopt something and move forward. The delays caused by the fragmentation can impair things for years as driver vendors play a "wait and see" game and talented developers look at it and say "Wow, that looks like a mess, I'll stick with Windows for now".
Personally I think Mir is straight up power grab. Canonical said "Why should we be bound by what these Wayland dweebs say? Even if their stuff is great, we are the biggest desktop Ubuntu distribution and we want to be in control. We will make our own display server." It is frustrating on the outside, but I guess you can't argue that it's not in Canonical's interests, and they may indeed end up winning the war (though it didn't work that way with Upstart).
I really don't fault them too much for their decision, especially depending on how much, or not their input was considered regarding Wayland... I'm also not sure when each respective project was started.
I do find a few quirks around Ubuntu... my HTPC box is about the only Ubuntu UI I work with, the rest are VM images running a server version. The intel audio (via hdmi) often doesn't come back after sleep/suspend, there are other issues there (i3-5010U nuc), but for the most part, I appreciate the Unity ui. That said, I don't do much beyond launch Kodi or Chrome and the terminal to fix problems after updates more often than I'd like.
Also, sometimes you need a dissenting opinion in order to make something better. As much as I've disliked some of the delays from MS wrt browser enhancements, a lot of the time what comes out after is arguably better than what came before... although I do still feel that MS should have just adopted SQLite for web-sql like everyone else.
It really does depend. In the end, canonical is dedicating developer resources to make something better, and is a much smaller company with far fewer resources than Intel.
If you use X11 forwarding with any application that uses a modern toolkit (Gtk+ 3, Qt 5, maybe also Gtk+ 2 and Qt 4) you are just pushing uncompressed pixmaps over the wire, as a bad substitute for VNC/RDP/etc.
Xpra adds image compression on top, AFAIK, so it should be slightly better.
The entire video (https://youtu.be/RIctzAQOe44) provides a good overview as to why people that have been working on X11 for many many years decided to start Wayland.
Most GUIs are relatively static. They are not Crysis. Even if you hate X's drawing primitives and believe absolutely in the power of client-side rendering, there are huge wins to be had simply by pre-rendering stuff and storing it server-side as pixmaps, then using XCopyArea calls to show them on the screen. Sheesh, I was doing that since I was 18 years old, and I figured it out using just the man pages. It's not hard. It's not even particularly burdensome. It's just a case of "herp, derp, we don't want to think about our rendering code" from the toolkit crowd. Do we have to burn the entire display stack to conform to toolkits written the stupid way around?
I also want network transparency. Right now, I can run a Windows program remotely, via X and WINE. I can't do that on Windows proper without a whole lot of setup on a Windows Server (I've done it). Yeah, X may be slow. It may have crappy security model. But in the end, it's better than what MS has and better than what Mac has.
I could imagine something different. Go back to core principles, and write a server using current design paradigm and knowledge of hardware. Get the server side running, and well. Write an emulation layer that will allow existing X apps to use it. And then start porting from X to.. say, Ywindows. :)
(Then again, I wished that DRM existed for Linux, so the graphical subsystem could have its own top, memory manager, process scheduler, and such. Then that would have set up Linux to be the dominant force in computation. Alas, it never happened that way.)
> I like being able to log in to remove Linux machines, and run programs that show up locally on my desktop.
I sure don't. I've had terrible experiences with this and end up going with VNC for any sufficiently complicated program (Firefox, Matlab, Cadence).
And you forget the constant churn of protocols, APIs, services, and whatsits in other domains not related to the display server. init to upstart to systemd is one example. It'd be one thing if there were a more robust rearchitecting in the spirit of the original (like runit in the init space), but nope -- it's always "that which exists is all legacy cruft, and must all be burned to the ground". And once problems come up, the new stuff too must be completely razed before starting afresh.
The current push to wipe X from the pages of history and pave the way for a Brave New Wayland World reminds me more of GNOME's troubled development cycle, marked by a complete churn of APIs, components, and UI standards every few years, than it does of Unix tradition which has kept knowledge alive and broadly transferrable from platform to platform for 40 years.
Canonical's attempt to powergrab over wayland, like someone else said below.
> init to upstart to systemd is one example
Upstart, another canonical brainchild.
As for initd, it's a similarly old system with a lot of cruft. Systemd brought the linux desktop and server an insane amount of QOL that it was sorely lacking.
Honestly, there's no nice way to put it: It's incredibly arrogant of you to claim that various systems are useless simply because you can't see why they'd be useful.
That OSS community that "loves churn", the people who are working on Wayland and such, it's a talented full bunch that is, in the majority of cases, giving its talent and time away for the good of the community. They're certainly not forcing you to use what they're making (like you seem to think they are), so it's incredibly thoughtless of you to shit on their work like that.
Had systemd been a framework like runit, which nicely combines Unix primitives into an easy-to-use and featureful framework, I wouldn't whinge so much about it. But its design is monolithic (despite having 60-odd binaries, they all mutually and tightly depend on one another), its code is not that great and it's basically an inner platform in its own right. And all that isn't necessary to achieve the goals of dependency-based startup, process isolation, etc.
Sendmail belongs in the dustbin of history. But its replacements, like qmail and exim, preserved its spirit while fixing its deficiencies. Thus it is with init and runit. The current environment does not favor keeping the spirit of the past alive, but burning it to the ground and erasing it from memory. And when serious deficiencies are found in the new hotness, the answer is to burn that to the ground too. I blame the GNOME project, whose manifesto was called "Let's Make Unix Not Suck"; Unix not sucking involved writing a Windows-like inner platform and encouraging or coercing developers to target that instead. Famously, GNOME has undergone at least two slash-and-burn cycles and its latest installation is known for its instability.
I agree though that Unity (in particular but not limited to) tries very hard to reinvent the wheel every 2 years.
Every major release breaks something. And it takes months and years for seemingly basic things to come back, if they come back at all. For example Shift+Del for files on the desktop https://bugs.kde.org/show_bug.cgi?id=344969 .
Right now I am especially pissed about the state of multi-monitor support for my Thinkpad + docking station. It is completely broken since KDE 5. I can't undock, dock, suspend + combinations without everything crashing. (That means I can't carry my laptop around the office.) KDE also has troubles arranging the desktops, keeping task bars on the correct monitor, or starting the desktop correctly at all. The middle mouse button of the external keyboard doesn't work after suspend. If I have two external monitors the frame rate drops significantly and I get screen tearing while moving windows around (Not sure whose fault that is. Maybe graphics drivers.) Etc. :(
I know, open source, payment, free time. You can't really blame anyone for this. The incentives and accountability, like for commercial products, aren't there.
With Microsoft's wish to be more like Google and the new telemetry features, I am either looking for a Mac next time or at least move to Gnome or Unity.
What also sucks is that these issues lead to me only using a small subset of programs like console, browser and gimp (no fancy editor, no mail client) to avoid anything important I use breaking.
Comparing with other desktop OSes, not only those UIs keep getting rewritten, there is a lack of common infrastructure for modern UI desktops, akin to Framework modules in other desktop systems.
So anyone that cares about UI/UX has a more enjoyable experience in other systems.
I'm running Ubuntu 15.04 and it's broken in so many basic ways; like, it crashes when you open the calender widget on the wrong day of the month, apps only refreshing the UI when you move the window around, isn't even able to format an USB stick with FAT out of the box, etc.
I can't back it up with numbers, but my feeling is that desktop Linux has peaked around 2010 (Ubuntu 14 LTS), and is regressing since. In times of shrinking desktop usage, rather than inventing new stuff all the time, it'd be nice if distros could focus on providing a robust runtime environment for the OSS desktop software we have. Maybe I should use Slackware 14.2 (systemd-free; its setup on modern hardware with nvme, uefi etc. seems painful, though).
But I'm not complaining; all the work is done mostly by enthusiasts, and commercial OSs don't work well either.
The 2010 version you speak of should be 10.04. Or do you mean 14.04, which was released in 2014?
16.04 isn't that different from 15.10, though, and I believe I can dist-upgrade to 16.04 LTS.