Linux: The Source of All Desktop Innovation
lunduke.com
lunduke.com
I can navigate around windows and launch applications on my computer using a customized wmii/dmenu combo much faster than is possible on a mac or in windows and I love that. If Apple switched to a similar setup in Lion, however, they would make some extremely small percentage of their users happy while turning away the vast majority of their customers. Apple and Microsoft can't be what they are without catering to the lowest common denominator and part of that is playing it safe. Every radical decision that they make is a huge risk with the potential for a negative impact on their business. If somebody wants to make some experimental window manager for GNU/Linux that attempts to change the paradigm then the worst possible scenario is that they wasted their time writing code that people don't end up using. If Windows tried the same thing then they could lose real business.
The beauty of the Linux ecosystem is that users have unparalleled freedom in deciding how they want their computers to work. This freedom allows people to create new programs without much risk to the community and it allows multiple projects with different goals and principals to simultaneously coexist and thrive. This is a major strength of GNU/Linux and I think it's part of the reason why we see so much innovation within that community.
However, what Cupertino and Redmond are up to isn't "nothing", it's just not the desktop. The Windows Phone "Metro" UI is downright amazing when you use it, and iOS isn't bad either. Sadly, and I was hoping this would be better this time around, the open source world is still years behind on mobile.
(I'm not counting Android here, and that's a shame. Honestly, I've used it, and the innovation there, especially in user experience, isn't anywhere near the levels in iOS, Windows Phone, or webOS. I would include Android 3.0, but that's not open source and won't be for a while.)
I haven't tried Gnome3 extensively and daily I use Snow Leopard (On my MbP while I'm out) and Win7 (Main desktop machine) and Gnome3 and more specifically, Ubuntu 11.04 with Unity, hasn't really caught my attention in any huge way.
The new sidebar on Unity reminds me of the Dock and the new Win7 taskbar with some differences, they've now adopted a similar MacOS top bar, 'Spaces' aren't new, quickly launching applications isn't new or unique (Startbar since Vista and Spotlight on Mac) and so on.
Even with things like Compiz which whenever I use is basically to emulate features available on Win or Mac. For example, the window snapping functionality of Win7 by using the Grid plugin and the Spacebar preview of Mac by another plugin. Actually, most of the default plugins of Compiz I never use, I always seem to be needing to install the extras or rather, the copied/heavily inspired ones.
I absolutely agree in regards to Android too. I do love it (I've had a Samsung Galaxy S since last year) and do suggest it to others but it seems most likely my next phone will by WP7 or an iPhone and not Android.
Linux isn't MacOS or Windows and never will be. I like using both of those OS for different reasons and I like Linux too when I boot into Arch with a nice tiling window manager going and do some work/play.
And I just read the linked Reddit comment by the other guy. Spot on.
They aren't new but they've been fairly common in Linux desktop environments since the 90's while OS X didn't introduce them until 2007. I'm not sure where they first appeared but at the very least they've certainly become a common idea because of Linux.
Also, while Project Looking Glass (Sun) may have borrowed some stuff from Quartz, Apple borrowed a lot of UI stuff from Project Looking Glass
Also, its not true that Compiz stole the Windows 7 snapping feature, that was in Beryl even before Windows Vista came out. They _did_ steal the Windows 7 auto-tiling and MacOS expose though - so you do have a point. Its sort of nice to see all the cross pollination between the different platforms, and nice to think that UNIX is contributing a lot to pushing forward the state of the art.
Reuse of components and events provided by other apps is at the heart of Android, the system notifications are better, it has desktop widgets that are actually useful, keyboard interaction for writing text is better (I love copy/pasting or moving the text-cursor around on my Android) and you can use the back-button everywhere (just as on the web).
The only problem with Android is that many apps available in Google's Market are really shitty. Skype itself, which works fine on the iPhone, will bleed my battery dry in only 3-4 hours, with that same battery being able to last for 3 days with 3G + email-sync enabled.
If they get the market story straight, I'm sorry for the contestants, but Android is a competition killer.
There's more, but while Android does have a lot of really awesome features, the interface and UX don't appear like anyone bothered to even try and design them.
The key word is "finally."
The proponents of the open source development model and, in particular, the proponents of X-Windows, promised that their way would lead to superior innovation in the user interface and user experience areas. That innovation has been a long time coming.
Now that those promises are finally coming true, momentum has switched from desktop computers to mobile computers, an area where everyone is still trying to catch up with Apple.
The top comment there pretty much nails it.
Actually, it's an advantage. Have you tried to use the menu on monitor 1 when the app is on monitor 3 of your Mac?
http://blog.boastr.net/?page_id=79
But his other points that Unitys "wonky" auto-hiding of the menubar is misguided UI seem reasonable to me.
Do we still hear people complaining the window buttons moved to the right?
Granted, they're not as new as Unity et al, but they offer a compelling, complete and fairly radical departure from tradition, and one that I really do miss on OS X.
But really we should be giving credit to Plan 9 here for pioneering the model of the modern tiling windows manager.
I don't want another window manager, even if it auto-tiles for me or has a really gosh-darn nifty way of hiding and revealing them. I want innovation in devices and apps that are designed to operate full-screen on all of them. It's as if I want a "tear off" function for windows that literally tears it right off the desktop monitor so I can put it in my pocket or shoulder-bag, or hang it on a wall, or prop it up next to a book. This is what the iPad and the iPhone have done to me.
Tabs, windows, task-bars, Expose, Spaces, ribbons and others are now making me feel like geeks are congratulating themselves on discovering a really nifty new way to organize their sock drawers and lunch-boxes.
The future of "the desktop" are cheap, wireless, mobile displays. Window managers should be replaced with pockets, wall hooks and stands.
Having each app on a separate device would actually make it worlds easier to perform real work, because I'm no longer Alt-Tabbing or Expose-ing back-n-forth between programs. I hate doing that because it forces me to stop thinking about my work in order to think about how to manipulate boxes of pixels into the configuration I want.
Right now I'm considering spending another $1K to get a 27" Cinema Display to go next to my $2k 27" iMac. But I'm wondering if I should have spent that $3k on a stack of wireless tablet computers of various sizes and leave some Bluetooth keyboards around the house instead.
Edit: Now that I'm thinking about it more, I believe this is the trend and the reason desktop innovation has stalled. In a decade we'll all have solid state hard drives and ten times more RAM, so every app can run in its own VM. You could suspend an app's runtime state to disk, transfer it to another device and resume where you left off. "Bump" your Final Cut session to your big-screen when you need to, then "Bump" it back to a tablet when you wanna continue editing on a park bench.
I don't know why we can't do this with web apps already. It transcends the whole idea of a desktop manager.
Nor is there anything impractical about process migration. I suspend and resume Windows VMs all the time, and Windows wasn't designed for that. Think of what's possible when the programming language and OS API makes it easier to write programs that can re-orient themselves.
And even if process-migration doesn't become a feature, there is still the inherent advantage of manipulating "windows" in physical space. It's more intuitive, it's more convenient, and it's direct. When people didn't "get" the iPad and dismissed it as just a big iPod Touch, it's because they didn't grasp the benefit of manipulating the UI directly instead of through a mouse.
When you manipulate windows with a desktop manager, you're two steps abstracted: you use the mouse to manipulate the widget that manipulates the windows. THAT is what's impractical.
I was sort of worried that the move to Wayland might hurt all of this. Compiz seems to be preparing to do double duty as a X windows manager and a Wayland display server based on what plugins you have loaded, but I wonder what might happen to other window managers in the transition? On the other hand, nobody is forcing anyone to give up X.
Wayland actually makes it easier to roll out your own window manager than X11. The Wayland protocol is a lot more straightforward and has fewer extensions. You no longer have to deal with XRender, XDamage, XComposite, etc. You also don't need to think about setups where some of these extensions are missing.
It also does away with network transparency and replaces the protocol with a simpler, more unified OpenGL ES based solution. You have more freedom to develop something original as you aren't stuck in X11's rendering system which is a glorified painters algorithm. You can use XComposite to obtain more freedom under X11 but so far few window managers use it (compiz, KWin, metacity). The default for Wayland is very similar to what you find in XComposite but is faster (given a decent video card driver) and simpler.
The only drawback to Wayland is that it is rather new and the protocol hasn't been finalized. As soon as it gains wider adoption and there are a few example Window Managers, expect to see some interesting and innovative WMs.
How many people actually do that?
I have Python 2.5, 2.6, 2.7 and 3.x, but I am a programmer who writes lots of Python. And they were all very easy to install (2.6 and 3.x from packages, 2.5 and 2.7 from source). I also have two different releases of Eclipse (I also write lots of Java).
Package management frees you from managing the software you don't want to manage, like MySQL or Apache. I want to manage my languages.
As a programmer, I would need this all the time. Sometimes you need several versions of a certain programming library or language implementation like Python or Ruby interpreters. I also need several versions of GCC, I have one native compiler for C++0x, a cross compiler x86_64-pc-elf for my hobby operating system project and another cross for arm-eabi-none that I use to hack system-on-chips at work. I get my GCC from Git sources.
Nix (http://nixos.org/) is a package manager that allows you to install multiple versions of the same software. NixOS is a Linux distro based on that package manager. You can also use Nix in your home directory on top of another distro.
Unfortunately I have not had the time to try Nix. Anyone else tried it?
PS. I was visioning a "versionless package manager" that downloads sources from Git repos, builds and installs them and keeps the build files for fast updates via incremental build. I only need a name for the thing, which is better: "vpm" or "dll hell 2.0"?
[1] http://www.freebsd.org/ports/index.html
[2] http://www.freebsd.org/cgi/man.cgi?query=pkg_add&sektion...
But, KDE's Plasma Desktop is highly innovative (through a wide range of interesting plasmoids). The fact that it can be easily scripted in JavaScript makes it even more awesome.
Gnome shell, while innovative, I don't see it as aimed for the typical end user, instead it's aimed for the more technical users.
gtk2 is still present in Unity and it's still a major anti-innovative set back.
To be honest, I like Unity as a desktop better than OS X, but as applications, OS X is still ahead. (As a Unix I still like Ubuntu better, that's a different subject).
Much quicker to open what I need than either Windows 7 autocomplete or OSX spotlight.
I played with the new google correlate tool today and every search metric for Linux stuff is merely "meh".
Linux is constantly falling:
http://correlate.googlelabs.com/search?e=linux&t=weekly
Gnome and KDE are also getting not more popular, but _less_ (at least in Google trends).
Ubuntu peaked in 2007 and is sliding sidewards:
http://correlate.googlelabs.com/search?e=ubuntu&t=weekly
Why is that? As I said I would like to see a few more representative numbers. (I remember in seeing in 2008 a statistic, that the then nascent iPhone overtook Linux desktops in internet traffic. That was an astonishing eye opener.)
http://en.wikipedia.org/wiki/Usage_share_of_operating_system...
The usual caveats apply, of course. According to the web browsing data, iOS indeed overtook Linux-based OSes, even when one includes Android.
It also has a page discussing Linux adoption:
http://en.wikipedia.org/wiki/Linux_adoption
It lists the reasons or barriers for using Linux. When you compare these for different systems, you'll note that -- on the one hand-- the reasons to adopt Linux have become less convincing. For instance, stablility is not that relevant, anymore, since competitors are often sufficiently stable, too.
On the other hand, there was nearly no change concerning the barriers for adoption: Android made a dent in the 'pre-installed' barrier, but that was it, basically. On netbooks, Linux had a lead initially but lost it to Windows.
While the article states that Linux is on par concerning application and peripheral support, I have my doubts. It has no third-party ecosystem that is able to compete with its competitors, which is probably due to the lack of a viable business model for desktop applications, lack of a decentral installer, higher fragmentation, in general, and consequently less public support.
Emacs have it. http://www.emacswiki.org/emacs/WinnerMode
Can we also get a way to move windows on the z axis or change its z-order? Windows/Apple/Super + scroll wheel. I want to push back or pull windows.
How about a way to multi-select windows (like Ctrl/Command + click with files/listboxes) and move or tile only selected windows?
> Every application should have an undo/redo stack related to view operations.
> The way I see it, applications currently focus on allowing users to undo operations performed on the model. I submit that applications need to provide a similar mechanism to undo operations that affect the application's view of the model.
> E.g., if you have a sidebar open and are deleting the items listed there, you can generally undo the deletion. But suppose you close the sidebar. Generally, you can't undo the sidebar close.
You're talking about window management changes, and what I've written about mentions only application-level changes, but the example I gave doesn't preclude desktop-level change management you talk about. After you've established keyboard shortcut scoping conventions <http://news.ycombinator.com/item?id=2495838>, accomplishing this is straightforward, from a software design perspective.
What a trollish statement.
But MacOS had some very interesting ideas - they did right more-than-one-user thing (copied from Windows) and Exposé.
(That's one of the things that display managers like xdm/gdm/kdm do -- handle starting and stopping of X servers for user logins.)
The videos linked from the article show a Spaces'esk virtual desktop and a more interactive Growl'esk notification box. Both very slickly done but not really anything mind blowing. The features in the other videos on the Gnome 3 site seem equally derivative; clones of the Window snapping from Win7, the icon view from Lion etc.
Am I missing something? Should I be looking somewhere else? KDE?
More examples:
http://people.collabora.co.uk/~cassidy/talks/2009-07-07-lets...
now you get very comparable effects (customizable and evolving with 11.10 too) with all of the customizability and flexibility of Linux.
I don't mind the UI/UX of my MBP, but I prefer both Unity and GNOME3 and my heavily customized GNOME2 installs. The app-indicators and control center in Ubuntu are actually easier to use than in OS X. ICS to my Xbox took 10 seconds in Ubuntu. It took 10 minutes of Googling and editting a configuration file to get it in OS X. My phone works out of the box as a router in Ubuntu, it's not detected as an Internet device at ALL in OS X, who knows why. (And those tasks took less than a minute or two to access directly from the app-indicators or control center. (And very excitingly, there is a whole new connection center planned for 11.10 which out to be even cooler/faster).
I wish more people would come back and really spend the time to give modern DEs a chance. I personally can't stand KDE even after a lot of customization, but even Qt apps are indiscernable from GTK+ apps in Ubuntu (yes, even file selection dialogs, etc).
It's also funny that no one seems to know the history of these UX elements. Spaces have been a *nix feature since the late 80's, early 90's. The Grid plugin existed in Compiz as an unstable plugin for a long time before Windows 7 came out. They simply refined it for Natty.
Also, anyone on a MBP should try Unity just to see the power of the uTouch API they've built. Compiz is actually multitouch enabled. You can move and resize windows with gestures as well as expose the dock.
I still haven't found a Linux distro that really behaves 100% reliably on a laptop either. Suspend/wake issues and flaky wireless behavior eventually became dealbreakers for me, even if the blame lies with the hardware vendors.
Speaking of which, I'm fairly sure that NetworkManager fails to select the strongest Access Point when many routers are broadcasting the same ESSID. It's a nightmare to try to use Ubuntu on my MBP at my University. It seemed better in 10.10, I didn't get a chance to try it in 11.04 but that was my biggest frustration.
I don't want a damned cell phone UI on my laptop or desktop, and I sure as hell don't want a damned web browser as my desktop UI. My computers aren't "appliances".
What do you think Android is - and its not just the kernel. I have a working userspace on my phone. In fact, when I have spotty connectivity, the first thing I do is fire up the terminal and do a ping/traceroute.
Gnome != Linux.
It doesn't help that most people say "Linux" to actually mean "GNU/Linux", but Android is certainly not GNU/Linux and it can't be "Linux" either, because that's just the kernel.
The differences between Android/Dalvik and Oracle/JVM are few and far between (that's why they're getting sued :P). The important thing is that you write your apps in Java and you run them under a VM.
Not really. They are being sued because it's a threat to Oracle's control of Java. Dalvik may very well look a lot like JVM, but reason alone doesn't have any influence on Oracle's legal department.
The source of desktop innovation today is mobile operating systems. He believes that features from mobile OSes are being "forced" onto desktops, without explaining why it's bad to be adopting mobile features. Full-screen display, automatic document saving, and removing the need to manually quit applications are major innovations that simplify desktop computers even more, moving them closer to the long-sought idea of appliance computing.
I'm tempted to think the article was intentionally written as flamebait. The writing is poor, and there are no examples given to explain why exactly Unity and Gnome are so much more innovative. The absolutist claim that Microsoft and Apple have "completely dropped the ball," as if their operating systems haven't changed in 10 years, is just false.
The source of desktop innovation today is mobile operating systems, or more accurately, appliance computing devices that finally remove extraneous aspects of computer interaction (e.g., manual saving, manual quitting, filesystem management, and so on).