Like many of you, I've been watching the big changes in user interfaces over the past few years, trying to make sense of them all. Is there a common explanation for the controversies surrounding the Windows 8 UI and Unity? Where do GNOME 3, KDE, Cinnamon, and MATE fit in? This article offers one view.

The article here insinuates that running the same app on all 3 platforms could never work because of differences in interfaces and input methods. But if we can change the UI of a phone app somewhat to make it look nice on a tablet, why can't we alter the UI of a tablet app somewhat so that it works on a desktop? For example, if it's running on a desktop, maybe it has menus and toolbars to access, and if it runs on a phone or tablet, it doesn't. But otherwise, has pretty much the same functionality. I don't think this is too far-fetched

The thing is that the UI element sizes and locations are indirectly determined by the input method and the expected screen size. You literally have to reconsider every UI element location even when just moving from phone to tablet. The move from tablet to notebook + mouse is even greater.

The key difference between Apple iOS/OSX thinking and Windows 8 is that Microsoft makes the assumption that you can make one common UI cover all three usage scenarios. Contrast this with Apple where they have different UI toolkits for different input methods, and strongly recommends that you design two independent designs (storyboards + view controllers) for tablet and mobile, if your app is meant to run both places.

Apple could easily have used the OS X toolkit (NSWindow and friends) for iOS, but deliberately chose not to do so because while the abstract concept of i.e. scrolling is common for both input methods, the means you utilize to achieve the goal differs so greatly that trying to cover both use cases with the same control becomes increasingly pointless.