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

[ColorForth] The Forth Future


I read the list archive last night.  Took me
5 hours.  I think a lot has come into focus;
I think I'm starting to understand what Jeff
is jumping up and down about.

What I have in mind is a "Forth Machine"
that can be used for developement of software
for "Forth Appliances".

Lets start with the big picture.  If every application
runs on its own little computer, instead of being
multitasked, how do they communicate?  Do they need to?

I have the beginnings of a vision.

Take the world of Forth Appliances that Jeff Fox has
painted.  It strikes people that something is missing.
Think it through.  There are more pieces that need to
be added, but the ones Jeff and Chuck are working on
are the fundamental ones that will enable the rest.

1 part is the developement box; a Forth Machine.
Think of the old Commodore 64's.  Now imagine instead
of BASIC, it had FORTH, and it came in a chassis that
looked something like an iMac.  Something colorful and
glossy that would make people drool, then when they
see you typing in cryptic forth words, their jaws drop.
It would be a developement box, but would let you play
games and run a few well defined applications.  Probably
have 75 Forth Chips inside. It would have a few incredibly
cool graphic and sound demos to make people think "wow,
this is a fun platform, and it will let me program this
kind of stuff myself??? It won't hide the essential bits
from me???"

Another part is "storage" devices.  Not every application
will need a filesystem, but persistent storage is a common
need.  Why not take an 80G harddrive, stick a forth chip
with some kind of network or fast serial circuitry on it,
and provide a very simple protocol for other forth
applications to request a file and get data, and store
data?  "Storage" would be an application itself.  Heck,
why not use fiber optic?  Mainframe computers right now
use fiber optic line to connect the "computer" to the
"harddrive" which can be up to 9 miles away.  Let the
harddrive handle any "concurrency" issues if it must be
shared among applications.

Storage is important, because you need a place to put your
webpages, graphic images, MPEG movies, MP3 music files,
and important documents.

I am assuming a common data store has benefits.  I'll have
to mull it over.  Maybe a bunch of small data stores would
have benefits, maybe not.  Whats needed is a good, efficient
way to network a home-size area, like the M$ concept of a
"workgroup".   Bluetooth is trying something along these lines
but it requires use of patented IP that is NOT royalty-free.

Another issue is graphics and sound.  Are stereo speakers
and television screens going to become cheap and ubiquitous?

See, we may no longer be tied to the CPU as we were to the
central motors of yore, but what about computer monitors,
stereo equipment and the like?

I don't have a problem with each of these "devices" presenting
itself as an "appliance" in its own right, which other appliances
could talk to with some very efficient protocol.  The device
itself would have to handle any contention and concurrency issues.

However, I am not everyone.  Does anyone else see a problem with
that way of doing things?

For instance, an application that prints a page may instead ship
itself over to the printer, run itself on the printer device,
and print the page directly...  It would all depend what was
faster or more efficient.

Jonathan Walther

PS: I was involved with USB driver developement.  I saw the
Microsoft header files used to make it "work right".  It is the
most BLOATED piece of CRAP I have ever seen.  For every single
bit of information you send over USB, you are almost guaranteed
to send 64 unused bytes.  And thats conservative.

--
I am working to subvert from within ...
umm ...  by writing shoddy code ... and
charging too much. -- Colin, Aug 21, 2001

Attachment: pgpnugxPhlzUC.pgp
Description: PGP signature