::scr usability, languages and apis

Simon Batistoni scr@thegestalt.org
Thu, 15 Nov 2001 17:38:24 +0000


On 15/11/01 17:10 +0000, simon wistow wrote:
> I'm learning a new API.
>
> It's not immediatley obvious how things interact, sometimes
> because it goes through hoops to remain OO.

Hmm. We're back to that old chestnut, aren't we? The tightrope of
sticking to a programming paradigm or ideology enough that it's
meaningful, whilst not pushing it so far that it makes you do things
in a nonsensical way. I'm only really paddling in the OO pool at
present, and have little java, so I may be talking out of my hat,
but it looks as if you could do with a little multiple inheritance
in your API, so that ScrollingTile can inherit behaviours from
Tile and ScrollingSprite. But /shurg/, there may well be better ways
to do it.

> You get the picture. Most of you code Perl.
> 
> On the other hand English itself is a bad language for useability - it isn't
> predictable and there many exceptions to the rules and there are lots of
> rules, not alway intuitive.

Randomly mashed data from various college courses... I'm tired, so
I'll spew assertions without checking them. That'll be fun once
cleverer people have read this and bashed me into the ground with an
intellectual mallet.


The big problem with English is that it's been around in one form or
another for a hell of a long time. If English were perl, it would
probably be perl version 6,000 or so.

There are lots of cases that have added to ambiguities, confusing
rules and other problems:

1) English inherits from 2 completely distinct linguistic traditions
- latinate languages, and germanic languages. It has deeper roots in
the germanic ones, where Saxon english heavily inherited from Old
Icelandic and various Norse dialects. We used to have 3 cases for
everything, rather than just 1, for example. The latin influence,
with the Roman occupation, and later the heavy influence of French
on cultured English (it was the court's official language for at
least 400 years) introduced new rules which often conflicted with
old rules. Sometimes they overrode. Sometimes they co-existed.

2) Printing. A huge problem. Before the printing press was
widespread, written english was much more fluid. Spelling and
punctuation varied from author and author, and more importantly,
from region to region. Suddenly, with the advent of much cheaper,
mass-printing (preferable to getting a scribe to copy you "The
Canterbury Tales" in longhand), book production became tightly
focussed on London, and spelling began to be standardised into
London dialect english. A side-effect of this change is that, for
example, it's much easier for us to read the original "Canterbury
Tales" today than it is the (Lincolnshire?) poem "Sir Gawain and the
Green Knight", written at the same time.

3) English has a huge user-base. User bases subtly alter languages
over time, and some changes become more widespread. Look at the
stuff that's been done to perl with things like Symbol::Approx.
Okay, so it's not widely used, but it's an unpredicatable change.

And I know for a fact that I now utter in speech things like "slash
me slaps himself around the head" or "beer plus plus". Gramatically,
that's nonsence, but within a certain group it makes perfect sense.

Now multiply such changes over millions of people over thousands of
years.

4) Language has to evolve over time to deal with new concepts and
attitudes. Motor vehicles, space travel, our knowledge of the
universe (DNA, for example), computing, and social changes. Equality
and tolerance have had huge effects on our language. A favourite
quote is that "gay meant something quite different back in the
fifties", and at the time, someone who's now referred to as gay
would have been a queer or a nonce, and no-one would have flinched.



Erm, brain dump too. May be useful/interesting, dunno.