home .. forth .. colorforth mail list archive ..

[ColorForth] Let's talk philosophy


You wrote:

> As if to stay in sync, our cult-fighting crusader
> returned to c.l.f today and could not help but
> bring me up in almost all his replies to other
> people about every other subject.  He got a
> few, but we weren't talking about Jeff? from
> other people.  One person said that he could
> not believe that he and I were still fighting
> over, and he inserted a subject from a thread
> a year ago. 

That would have been me then.

It seems my memory was at fault, but that was the first I saw
of Jeff and John fighting; I had no idea of the personal history
behind it, and especially no idea of what Jeff had had to put up
with because he's enthusiastic about something he thinks is great.
I do now, and I can see exactly where Jeff is coming from about
"the cult-fighting crusader", and why comments like "cult of
Chuck" would upset him so much.

So let me say for the record that I consider Jeff to be someone
who wears his enthusiasm on his sleeve, and isn't afraid
to say things that upset people where he has seen them to be true,
and who cares enough to want to speak up about something that he
feels is fundamentally misguided;
and that these are admirable qualities. And when he talks
about 10,000x speedups, I believe that he has seen such things, 
because I believe that such things are possible. For example,
how much slower is disk access than RAM access? RAM access than
cache access, even? Going through the x86's tortuous MMU rather
than just presenting an address to the RAM chip you're directly
connected to...?

The computer industry is dedicated to the idea that we need more,
to the headlong rush into giving us hugely complex processors,
hugely complex environments, etc. - because only by convincing
us that what we have already is somehow insufficient. It doesn't
matter that it was just fine when we bought it a couple of years
ago. And it means they don't have to reduce the entry price. But
it also means that even when we have essentially infinite memory,
let alone infinite hard disks, we're still using systems designed
to cope with a few hundred Kb of memory and a few Mb of hard disk.
Virtual memory is a good example. Somewhere we should have
reevaluated all of this, but somehow it's never happened. And of
course, it's led to machines whose $200 CPUs will melt when the fan
fails. (And believe me, it is "when".)

Even on a hugely complex processor, a simple, tiny program will
exhibit far more speedup than could necessarily be expected,
simply because the cache stays cooked. Imagine code than never
even leaves the P4's trace cache. I doubt OKAD would. On a more
conventional processor, the L1 cache stays cooked - so not only
does an instruction never have a cache miss, you never have to
wait for data because you need to load an instruction. Indeed,
if you optimise for that you can achieve even more.

But if you're running on top of even MS-DOS, you lose that gain
immediately, because every so often, your OS services will evict
your code from the cache. So an extra degree of minimalism is
required; you implement exactly what your chipset and application
need; no more. Then your whole environment can fit inside the
cache on a $100 processor which needs another $50 in chipset and
many megabytes of memory because it isn't supposed to know about
the cache.

Or you could spend $1 on a processor which interfaces directly
to memory and generates its own video, and has negligible power
requirements. In other words, a processor which fits its use. I
know which I think the better option is, but sadly I don't have
either the money to obtain a P32, or the hardware skills to use
it. But believe me, if there were a box within easy reach, I'd
be reaching it.

Hence my interest in colorForth. My smallest machine is a 486
notebook with a mono VGA LCD display and 8Mb of memory. Now all
I know about the history of computing tells me that this should 
be an enormously powerful device, that 8Mb is an almost infinite
amount of memory, and that I probably shouldn't need a faster
computer.

With other people's software, my choices are to make it a router
(not a good idea, since it doesn't have Ethernet), or an X
terminal (see above) or to leave it in a corner to run the odd
bit of DOS software, if it does anything at all. This does not
satisfy me; and colorForth suggests that there is another way.
However, I'm not going to adopt anything without putting my own
slant on it; I'd like to experiment with a more aha-lke system,
where source looks more like threaded code than text. Moreover,
colorForth won't run on a 486 (the Pentium timestamp counter is
apparently required, which makes sense). And lastly, I'm red-
green colourblind, and can't tell the difference between yellow
and green. So I'll be DIYing - soon, since I'll be made redundant
before too long.

If I can get it under 1k I'll be delighted. ;-)
------------------------

To Unsubscribe from this list, send mail to Mdaemon@xxxxxxxxxxxxxxxxxx with:
unsubscribe ColorForth
as the first and only line within the message body
Problems   -   List-Admin@xxxxxxxxxxxxxxxxxx
Main ColorForth site   -   http://www.colorforth.com