NOTICE: This is an odd little rant I came up with yonks ago. I'm posting it simply because I can, really. It might not actually make sense!
A major thing I've noticed recently in my programming and general computer usage is that most... no, make that
all Operating Systems have something of an interface consistency issue.
I'll start with Windows. Windows' popularity is both a blessing and a curse for the OS, as it's great for Microsoft, who can rake in the money from everyone who wants compatibility with 90% of programs.
Windows itself has gone through several iterations of its interface and general function. This has usually been due simply to the fact that Microsoft wanted to make it look and function better, which is fine. The problem is, what was seen as good, functional interface design and consistency on Windows 95 would be seen as a silly way to do things in the days of WPF and Vista.
The major problem is, so many people are working on Windows now it's almost becoming as inconsistent as Linux is. Some people prefer to use Windows style interface elements, some prefer their own library, some like WPF, and some like to make their interface entirely out of link labels. All are, really, valid ways of designing an interface, but the problem is, with Microsoft (at least claiming) they want to make computers easier to use and friendlier for those who are less computer-literate, someone needs to set a standard. In a way, Microsoft has started this, by creating WPF, which provides a solid toolkit for making apps that look and feel like Vista, and future iterations of Windows, want to look, however, the major problem, at least at the moment with Vista, is that even Microsoft aren't entirely following their new UI design.
Just take a look at the Control Panel; Most of the control panels have been integrated into the explorer-like control panel interface, however, one notable exception is the Display Properties (Now dubbed "Personalize") - The opening screen and some of the simpler operations follow the new UI, but the advanced options such as specifying the system theme, and changing the screen resolution, still hark back to the Windows 95 style tabbed window, and yet only have one tab. It's these kinds of inconsistencies that just kind of irk me. That one company, developing this operating system, can't even decide how it should operate and remain consistent. I know there are many, many people working on each version of Windows these days, so of course there's not the level of communication between, say, the Control Panel team and, for instance, the Internet Explorer team.
Now I'm not saying every programmer should immediately make all their interfaces exactly like Microsoft forevermore, because we know Microsoft will likely rearrange everything as it likes to do after Windows 7 is released, but in the interests of the newbies, i think it would be much better if even Microsoft themselves could achieve a higher level of consistency.
Now onto Linux. Linux suffers a similar, if not even more pronounced version of the problem. It's created and developed by a massive team. Thousands and thousands of people, and they're not all creating just one version of the operating system, they're creating hundreds.
On Linux, the issue is even more pronounced. Interfaces can be developed in straight X, GTK, QT and a bunch of other UI toolkits (And many of these have been ported to Windows just to exacerbate its problem, too) which means that no two applications have the same ideas about how things should look. This is true on Windows, too, as not everyone will want their layouts exactly the same, but again, this makes the OS far less beginner friendly than it perhaps could be were more thought put into this.
Mac OS has a much smaller version of the problem. Most of its programs can only be run on particular versions of the OS. The majority of the interface is extremely well laid out and designed for the average joe user. Even between versions, Mac OS, both Classic and X, have kept their UI elements consistent and functional. The only major difference, at least in terms of interface, between OS X 10.0 and the latest 10.5 is a new skin, and some rearranged buttons, so even coming from 10.0 to 10.5 would be a relatively straightforward exercise.