The trouble with existing systems
Tom Novelli
tcn@clarityconnect.com
Wed, 13 Jan 1999 05:21:05 -0500
On Tue, Jan 12, 1999 at 10:52:00PM +0100, Thomas M. Farrelly wrote:
>
> Look, we're not actually making a computer system here. TUNES is a group
> of people who emphasize the fact that "There is something wrong with
> current software systems". TUNES also goes a step further by saying "It
> could be better". But without warning - TUNES STOPS, missing the whole
> fucking point : "How can it be better?" as in "what would the system
> look like?", but instead goes shoking on variations of "TUNES should
> have this and that feature".
WHAT is wrong with existing systems?
1. They're unnecessarily complex
2. They're bloated, inefficient, too big & slow
3. They're insecure and unreliable, partly due to their complexity
(And the security used is too obtrusive - passwords, kernels, etc...)
4. They're difficult/slow to use (poor user interfaces, GUI's included)
5. They're disorganized (which exacerbates the complexity)
6. It's too difficult/slow to modify or extend them.. they're not
interactive enough (or as Fare says, they're not reflective)
7. They're not capable of running well on parallel computers, which will be
the machines of the future.
8. They're very platform-dependent
9. Hierarchies (i.e., filesystems, menus, networks...) are annoying
10. When you turn them off, they "forget" what you were doing (not
persistent)
11. Planned obsolescence (in many commercial systems)
12. Too damned expensive
These are issues I thought up on my own last summer, before I joined TUNES.
I wouldn't have joined TUNES if it didn't address most of these problems.
SIMPLICITY and ORGANIZATION is the solution to half of these problems.
Persistent storage solves #10. Reflection solves #6. An automated proof
system will really help with #3. A simple, functional programming paradigm
is more suitable for parallel computing, makes the proof system easier to
implement, and, I would think, makes programming easier. Hmm, anything
else..? #8 is being addressed.. #12, well, it's free, and therefore #11
isn't much of an issue.. we're not rushing it to market, and we're designing
it to handle any foreseeable changes in computing.
I'm not sure if you all are worried about bloat, but I am. Let's keep in
mind that there's just no way to implement some "paradigms" efficiently.
What if TUNES ends up being bloated? I'll continue writing my own OS, and
bloat will be the main difference between it and TUNES :)
Hierarchies help with organization, up to the point where it takes too much
time just to navigate the hierarchy. Everyone hates 5-level pulldown menus.
Deeply nested filesystems are also a pain. In programming, class hierarchies
can get out of hand. In essence, hierarchies are like mazes. There's only
one way out. If things were interconnected so you could go directly from one
place to another, navigation would be easier. Mathematically speaking, use a
graph instead of a tree.
USER INTERACTION is something I haven't heard much about in TUNES... just
the idea of "abstracting out the user interface", which sounds like it might
be an impossible task. What sucks about GUI's? The mouse - no
touch-feedback. Hierarchical menus. Windows get cluttered, piled up... what
use are windows when they're on top of each other? Why do so many windows
take up 80% of the screen, when they might as well take it all? These are
problems we could address pretty easily, when we're ready.. allow full
keyboard control, use popup menus instead of pulldowns, use smarter window
management.
I like to compare user interfaces with the way people interact with the real
world. (keeping in mind that it varies from person to person) I look for
metaphors... the office, kitchen, shop, desk, dashboard... filing cabinets
(a limited hierarchy), bookshelves (a hierarchy where everything is
visible), a messy room with stuff all over the place :)... Tool boxes, knife
racks, kitchen drawers.. pots and pans ("temporary containers" for working
with things)... and the old Trashcan (remember Mac's? :) My point? Current
GUI's have a few cheesy analogs to reality. What we need is a comprehensive
metaphor that users can customize to their style. And this concept need not
be limited to GUI's!
We have lots of work to do on user interfaces, and I consider that a high
priority. But first, we need a working system, and that's the hard part. And
it needs to be simple and elegant, or any interface will be superficial.
In closing, I think Tunes is going pretty well. I have a few suggestions:
1) Work together more closely, try to consolidate our work.
2) Spend less time bullshitting on IRC and mailing lists :)
--
Tom Novelli <tcn@clarityconnect.com>
http://www.clarityconnect.com/webpages5/tcn