|Home » Learning Curve » Red Hat Diaries
The New Open Sauce Desktops
Who was it said form was over function?
One of the recurring (and for some stinging) criticisms of Apple is that their ideal isn't to make things work well but primarily to make things look good - to place 'form' continually above abstract (and remote) concepts such as 'function' - the ability to just get something done.
And certainly Apple - and Steve's NeXT - are companies where appearances meant a lot.
But appearances also mean a lot to Ferrari, Maserati, and BMW. And yet no one would fault them on forgetting function.
That great champion of open sauce in all its forms Mark Shuttleworth has declared he wants 'desktops' for the various Ubuntu/Kubuntu releases that match or better Apple at their own game.
Ubuntu uses the GNOME desktop; Kubuntu uses the KDE desktop. Here are some screenshots of the latest GNOME 2.26 release and the KDE 4.2 release.
The GNOME 2.26 control centre:
The KDE 4.2 desktop with lots of stuff running:
The GNOME 2.26 desktop with lots of stuff running too:
None of them really look bad (although GNOME at times comes close) but that's not the point. Or points actually. Plural.
- They say imitation is the sincerest form of flattery but it doesn't apply in graphic design and it certainly doesn't apply when you're imitating a whole slew of other designs all at once. KDE doesn't have an Apple menu bar but GNOME does. GNOME uses push buttons taken right out of the old Borland graphics handbook. KDE takes the Microsoft task bar and swallows it hook line and sinker. When Keith Ohlfs designed the NeXT interface he was one person; he kept to a unified concept. There are more borrowed concepts in these open sauce screenshots than there are pixels.
- It's always nice to see open sauce (especially GNOME) copy Microsoft shamelessly. The good old 'Marlett' character glyphs in the upper right for minimise, maximise, and close (and hey why not gussy it up with an extra button in the upper left haha).
- But above all it's one thing that irritates on both: the menu bar on the application window.
Time and again you'll see blinkered Windows or open sauce users come to the Mac and complain the menus are across the top of the screen and not where they're used to be. It's like wondering why their rich friends don't wash their dishes when they take them out of the cupboard.
Then too Mac users trying out open sauce offerings such as Firefox will run into bewildering mind blinking moments as the developers on those other platforms don't quite understand how the components of the 'Mac' desktop are supposed to work. They put about boxes into sheets and whatever. They don't get it. They've never used it, worked with it, lived with it.
GNOME and KDE can't have sheets anyway. For those who don't know: a sheet is a document modal panel that comes out of (and is visually attached to) a document window. It is document modal as opposed to application modal.
'Modal' in this context refers to how the system directs user input. A modal window (temporarily) blocks other user input. The system (temporarily) channels all user input to the modal window. Open sauce and Windows can handle application modal and system modal (which blocks everything in the system) but they can't handle document modal: they can't handle it because they don't have document windows.
Apple's desktop is the only object oriented desktop in use today. Apple's object oriented desktop can handle 'document modal' because it has document windows.
And open sauce can't handle it because they didn't copy Apple or NeXT - they copied Microsoft. Bad Move™.
Copying Microsoft may have been a good idea ten years ago. If open sauce really thought they were going to get Windows punters to switch platforms. But that hasn't happened. Open sauce continue to dominate with an impressive 1% of the total personal computer market.
But copying Microsoft - especially in the long run - means porting all the same mistakes and inadequacies to what very well could otherwise have been great platforms.
Function? Or Form?
Again: there's a worn out assumption that Apple put form over function. That desktops such as GNOME, KDE, and even Windows might in some perverse way be easier to use than Apple's (or NeXT's). Yet even a casual look at the 'Mac' forums shows Apple users are more intent on function than most. Part of the reason might be they don't have to waste time fighting computer malware. Another part is they're just used to getting things done.
Good taste in design leads to eminently useful software. Apple interfaces are clean and as simple as possible. Those 'advanced' buttons can still be there but starting with the cockpit of a space shuttle is not the easiest way to work. Not even for the pros.
And the driving force of the open sauce desktops seems to be 'let's put that in too!!1!' - with predictable results.
But to get to the kernel of the issue one must dig deeper still.
- KDE is built with the C++ programming language. C++ builds on C (and in particular the C struct) with elements of Simula thrown in. C++ is not an object oriented language - it is a hybrid language that can to a limited extent provide certain 'object oriented features'.
- GNOME (which came about as a response to what was perceived as the overly busy, overly complex KDE) is written in straight vanilla C. C is the basis of both C++ and Objective-C but it is a systems programming language rather than a 'GUI' programming language. It's great for writing kernels (just ask Linus or Cutler or anybody) but the kinds of things Kay wanted to do with a GUI aren't covered here.
- Alan Kay originally looked at Simula as a possibility for the basis of his work at PARC - but discarded it. He needed something better. Something which didn't exist at the time. So he made it himself. And he called it Smalltalk. Smalltalk wasn't a compiled language - it was an interpretive language. Which made it perfect for the research laboratory but not really the thing for production use.
- Brad Cox' Objective-C is (more or less) Smalltalk rewritten with C syntax as a compiled language. It's fully object oriented and it's a lot friendlier to other languages and to developers both.
- Many are the programming teams and software houses that have noticed they can produce software of a far better caliber in one fifth the time (or less) they normally need using other environments. Many are the teams and companies that keep hush about this improvement for several rather obvious reasons.
But the fact remains that with the unique programming language, the impressive feat of the NeXTSTEP (Cocoa) classes, and the space age tools available there is a symbiosis between user and developer that can't be attained on any other platform.
Apple software is invariably built faster, to work better, be far less buggy, and in a fraction of the time needed anywhere else.
Yes Apple's 'GUI' still looks better. And probably always will. Even though some parts of the open sauce desktops are showing some improvement. And today there are finally some halfway decent graphics designers 'donating' to the cause.
But even if Mark Shuttleworth were to choose one of those designers as his main man and have said designer come up with a cohesive consistent interface for everything - even then there'd still be something sorely lacking.
Red Hat Diaries: Form or Function