bongo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bongo-devel] System metaphor to replace confusing terminology


From: Daniel Brockman
Subject: [bongo-devel] System metaphor to replace confusing terminology
Date: Sun, 01 Apr 2007 15:49:19 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.92 (gnu/linux)

While putting together the manual skeleton, it struck me how
much easier Bongo would be to grasp were its terminology not
such a melting pot of terms from such an ethnically diverse
set of metaphors.

`Track', what we call the items Bongo plays, is a term that
was copied from railroad slang, in which it means `song you
listen to while laying down rail'.  (This usage derives from
the fact that when CD players read music data from disc,
they follow little grooves reminiscent of railway tracks.)

By metonymy, in Bongo it came to mean `anything you can play'.
Whenever I hear this word, I think about railway tracks.

`Backend' refers to the final stage in a compilation process
in which the target-architecture machine code is generated.
By identifying music with source code, and stereo equipment
with final-stage code generators, the logic behind this term
becomes apparent:  Bongo backends are like stereo equipment,
which are _machines_ for playing music _compilations_.

We employ this term with ease, without ever having to think
about any of this stuff, but the obscure etymology makes it
difficult for a newcomer to understand what we are saying.
In addition, it sounds quite technical and user-unfriendly.

`Buffer' is another such term.  This one was taken straight
out of hacker slang --- specifically, from Emacs terminology.
While Bongo is an Emacs application, there is no need to use
obscure Emacs words to describe basic Bongo concepts.

Humans use Bongo.  How are they supposed to understand this?

I say we need to think new; we need to think fresh.
We need a system metaphor.

Let's consider what Bongo essentially and basically does.
That's right, it plays music.  ...kind of like a pianist ---
nay, _exactly_ like a pianist!

That's our system metaphor.  Of course!  Bongo is a pianist.

What are its instruments?  Correct.  VLC.  mpg123.  ogg123.

What are its musical scores?  Right.  Files.  URIs.

What is its bench which it sits on while playing and which
opens up to provide storage place for sheet music?  Buffers.

So we have `benches', `sheets', and `instruments'.

These terms sound unfamiliar to us, but they are better in
the long run because they came out of a system metaphor.

Just imagine explaining Bongo to someone in these terms ---
basically, all you have to say is `Bongo is a pianist'.
If they have ever played the piano, they will understand!

Compare that to `Well, uh, Bongo is both a railway worker
and a compiler and it uses Emacs terminology.  Good luck!'

-- 
Daniel Brockman <address@hidden>

P.S. The manual skeleton isn't done yet, but I really did
     start working on it this morning.  I'll post it soon.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]