Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What Apple have done with both first and second generations of the Macintosh -- System 1 and OSX -- is pick a basic GUI metaphor and stick with it for at least fifteen years.

The original Mac released in 1984 and was produced through 2000, sixteen years. OSX released in 2000 and is now in its eighteenth year. Whilst each system has seen some evolution over time, the general metaphores and interfaces have remained consistent.

Apple have realised and internalised a core concept of GUIs: change is bad. There is a far higher cost to changing interfaces than can be gained through efficiency, and the retraining and unlearning costs are exceedingly high relative to benefits.

This is a message apparently lost on Microsoft and most of the leading Linux desktops.

Mind: I write this as someone who whilst using a Mac presently doesn't much care for the interface. My preferred desktop remains WindowMaker (itself based on Aqua's predecessor, NextStep), which has a key advantage of having changed almost not at all in the 20+ years that I've been using it. It's also configurable in ways I find useful, and I schlep around a configuration directory to new systems as needed.

That and a terminal window.



Microsoft hasn't been too different in that regard. In terms of interfaces with any real userbase to speak of, the only real Microsoft UI systems I can come up with could be characterized as

* MS-DOS/Windows 3.1-like * Windows 95-like * Windows 8-like

Windows 8 basically was born and died in a couple of years, to be replaced with Windows 10, which is very much the same basic set of metaphors as Windows 95. There's a start menu, a little dock of pinned icons next to it, a taskbar, a clock and some little icons for what are basically background processes. There's a maximize and minimize and close button on windows. There's a File/Edit/Whatever set of menus. You can right click for context items, many of which are consistent with Windows 95 20+ years ago. That basic system is now something like 21 years old now.

You can maybe argue that Microsoft forgot your message five or so years ago, but they obviously rediscovered it.


I'm largely familiar with the DOS -> Win2K period, and have made little use of Microsoft operating systems since.

Windows 3, 95, NT, and 2K each saw significant changes in where and how major system functionality was presented.

During the same period I was using numerous Unix and Linux platforms (and still do). Those have largely seen far less substantive change at the shell and system level, with a few notable exceptions.

I'm not discussing Linux GUIs, which have been all over the goddamned map. I've used twm, fvwm, fvwm2, VUE, CDE, WindowMaker (my preferred option), GNOME and KDE through multiple generations, Enlightenment, various of the 'boxes (black, open, flux, ...), ion, xfce4, ... And those are the ones I've trialed to some significant extent. I've at least fired up and looked at virtually all the options mentioned on the XWinMan page: http://www.xwinman.org/

There are several fairly central components which have changed fairly markedly. The shift from telnet to ssh, multiple iterations of firewalling, various scripting languages of preference (bash, perl, python, an oddment of others), mailers (sendmail, qmail, anything reasonably sane, mostly exim and/or postfix now), and of course, the whole init replacement clusterfuck.

But the notional concepts of files, filesystem, shell, utilities, pipes, etc., has remained consistent, and even across several utility / server replacements (particularly ssh and mailers), command-level compatibility has been preserved to a remarkable extent with previous options (e.g., rsh and sendmail syntax).

If Microsoft can only be relied on for five-year stints of "having learnt this lesson" then they have not learnt this lesson.


I fear though that command level compatibility is under attack these days, as fewer and fewer see shell scripting as something positive (never mind trying to do more and more via dbus rather than pipes and such).


Tools that fail to provide a stable scripting interface tend to be ditched early and hard by sysadmins.

This includes a hell of a lot of systems configuration tools. The corrective force on failure to adhere to this norm is strong.


And already with 8.1 the "start screen" could behave like a very large start menu.

Hell, you can today configure Windows 10 to behave much like 8.1. The one thing i see some people miss with the 8.1 to 10 transition is the charm bar. In particular that it gave easy access to printing and such.


Seem to me that Apple and MS focus on different kinds of change.

While Apple may retain the UI across time, they are more than willing to change APIs etc on a whim.

MS on the other hand may change the UI (though outside of 8.x, the core layout and behavior has remained much the same, and even 8.x could to a large degree behave like the older UI) but they bend over backwards to maintain APIs across time.


Very interesting point, and one that may play in subtle ways to each platform's audience and scale.

Microsoft was always more vendor / ISV / VAR oriented, and stable APIs matter there.


I get the feel that stable APIs are undervalued as a user retention element.

Being able to get a new computer but install from the same software library (i can hear the _sec people getting hissy already) as was used on the old one makes people more likely to pick the same "platform" over time.


Right, I see that point and would have acknowledged it more explicitly had I time earlier. That's the interesting part of this.

The counter is that Apple caters to a smaller software development community, though several of the tools also see extensive use and support (particularly photoshop). But there's a heck of a lot fundamental functionality on Apple's platforms that you can get without relying on third-party software, or at least, third-party proprietary software. Given the dynamics of proprietary software markets, particularly toward adware, nagware, and malware, this seems a possibly positive development.

(I've made much the same observation in recent years about the Android marketplace, which I see as a growing cesspit, and of the Windows application space, particularly at the peak of its crapware / spyware / adware period in the decade of the 2000s.)

Linux solves the software compatibility problem by allowing for recompiling of software for which the source is freely available, for the most part. This isn't a perfect solution, and there are complex systems which tend to not be particularly forward-compatible. One possible argument is that such complex systems are themselves inherently problematic and ought perhaps be avoided. You may not agree with the argument, but I'd expect you'd admit to its existence.

Microsoft was addressing a different space, and one in which there was a massive focus on desktop-distributed client software, much of it aimed at very specific business applications. This is a major application area for computers, though it's also one that's shifted significantly toward client-server Web-based solutions (or app-based, now). Which presents its own set of features and limitations.

And again, all this is what I was hinting at earlier with noting that you'd presented a very interesting point. I'll be thinking about this for a while.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: