User Interface stuff:
With all this talk about GUIs lately on Advogato, osOpinion (the stuff about Jef Raskin), and Slashdot (which linked to both the osopinion and advogato articles), I thought it would be good to put up a new diary entry -- it's been almost three months since my last one anyway. I recently picked up Jef Raskin's book, The Humane Interface. It's really cool stuff. I mean really amazing, to me. It was like discovering a new religion and realizing you agreed with everything they taught. :) Based on the posts at the three sites, it doesn't sound like anybody has read it. When I'm not reading it, I'm constantly thinking about the ideas put forth in it. It convinced me that the current Windows/Mac GUI system is severely lacking in usability. Personally, I think GNOME and KDE's efforts to duplicate those features (and doing a worse job in the process) is not done with human interaction principles in mind. (In the articles, Raskin was criticising Apple for sticking with the same old wimp paradigm with OS X, but I think the same should apply to GNOME and KDE). I should say that he doesn't just want to get rid of windows and icons but files, and the distinct sets of commands we call applications.
So anyway, I've been thinking about creating a humane interface as described in the book. No specifics yet but I have been thinking about whether or not I would make it something that integrates itself with unix, or whether it should essentially be its own operating system altogether (ditch posix altogether) -- even though I would probably use the Linux kernel and maybe even X11 to provide access to a raw hard drive partition and the frame buffer and input devices. Just get the bare minimum running in existing OSes, then start providing functionality within the environment itself. Kind of like how emacs uses Lisp. (I think. I don't use emacs.) Although I don't know to what extent regular programming would need to apply to this new environment. Since ease of firing off commands is part of the idea behind the interface, I'm sure some way to combine commands would be part of the interface.
I realize this is a pretty enormous task. Not only am I basically creating an operating system from scratch, but most of the things we now consider "applications" will have to be scrapped and reimplemented but in a completely different philosophy. When I think about ways to attempt to do the things in the system I am imagining we now do in applications, I get very excited about the possibilities.
... more later I'm sure.