"Let me give you an example of an application in which not only can you
reduce the amount of code required by 90% and here is a case where you
can reduce the code by 100% and it is a topic that is dear to our hearts
it's called FILES. If you have files in your application, in your Forth
system then you have words like
OPEN
CLOSE
READ
WRITE
REWIND whatever
and they are arguably not going to be such short words, They are going
to be words like OPEN-FILE because of all kinds of things that you want
to be opening and closing like windows.
If you can realize that this is all unnecessary you save one hundred
percent of the code that went into writing the file system. Files are
not a big part of any typical application but it is a singularly useless
part. Identify those aspects of what you are trying to do and saying we
don't need to do that. "
So. Files are useless, then. He doesn't like local variables much, either.
Unfortunately, he doesn't give any examples, and I was wondering if
someone could give some.
I'm working on a small program that prints a random proverb from a file.
The file contains a selection of aphorisms, each separated by a line
containing the % sign. Here's the code I have, written in Gforth:
: mod ( a b - a-mod-b ) \ modulus
2dup ( a b a b )
/ ( a b [a/b] )
* ( a b*[a/b] )
-
;
: random ( n - 0..n )
utime drop abs 10000 / \ based on time
swap mod
;
1000 Constant max-line
Create line-buffer max-line 2 + allot
0 Value buffer-length
: read-in { fid -- }
line-buffer max-line fid read-line throw
swap to buffer-length
;
: nquotes { fid -- n } \ number of quotes in the file
0
begin fid read-in -1 =
while
line-buffer buffer-length s" %" compare 0 = IF 1+ then
repeat
;
: quoth ( -- )
s" quotations.txt" r/o open-file throw
dup nquotes random . ( FIXME - produce one of them at random )
close-file throw
;
I know that the code is incomplete - that's not my bone of contention.
Not withstanding that, how could the code be improved, preferrably to
eliminate the use of files? And local variables (I ask this question
more in the light of good programming style, than in the light of the
mechanics of stack-swizzling).
Mark Carter wrote:
>So. Files are useless, then. He doesn't like local variables much, either.
>
>Unfortunately, he doesn't give any examples, and I was wondering if
>someone could give some.
It isn't Forth, but any PalmOS PDA will serve as a fine example
of a system that does many useful things without files.
Gforth has the answer. Looking at sokoban.fs, they do something like:
001 new-maze
m: #####
m: # #
m: #$ #
m: ### $##
m: # $ $ #
m: ### # ## # ######
m: # # ## ##### ..#
m: # $ $ ..#
m: ##### ### #@## ..#
m: # #########
m: #######
002 new-maze
m: ############
m: #.. # ###
m: #.. # $ $ #
m: #.. #$#### #
m: #.. @ ## #
m: #.. # # $ ##
m: ###### ##$ $ #
m: # $ $ $ $ #
m: # # #
m: ############
where m and new-maze are defined earlier in the code. So, interesting.
Quartus Forth uses memos in the built-in MemoPad application as its
primary filesystem, though it can also read from 'Doc' format files (a
compressed e-book format).
--
Neal Bridges
Quartus Handheld Software http://www.quartus.net
If you can get ahold of the original Starting Forth there is a random
"buzzphrase" generator that does something similair using blocks
instead of files. I've misplaced my copy of Starting Forth and the
"online" version has changed this example significantly. Hopefully
someone will post the origianl code. If not, hopefully you can find
a copy at your local library.
Regards,
John M. Drake
I managed to spot "Starting Forth" over at:
http://www.amresearch.com/starting_forth/
I might get HTTrack to suck off the web pages from it - that'd be easiest.
I'm in the process of rr-working my code, and the core of it so far is:
: mod ( a b - a-mod-b ) \ modulus
2dup ( a b a b )
/ ( a b [a/b] )
* ( a b*[a/b] )
-
;
: random ( n - 0..n )
utime drop abs 10000 / \ based on time
swap mod
;
001 Constant numquips
0 Value which-quip
numquips random to which-quip
: new-quip
which-quip = IF type type ELSE 2drop 2drop THEN ;
Well, new-quip will require a bit of work because there aren't
necessarily 2 lines to a quip. But, given the way I've reworked it, the
code modifications will be fairly straightforward.
When I saw the Moore's comments, and took a look at the Sokoban code, I
found it all a bit of an eye-opener. When I redesigned how my code
operated, I realised that the new way I approached it was radically
simpler.
From my nano-experience of Forth so far, it seems things are blindingly
simple if approached from the right way, but nightmarishly complex if
approached in the wrong way. Do not try to bend the spoon, for that is
impossible, merely realise that the spoon does not exist (The Matrix, as
if you needed to be told). Interesting.
Nonsense. PalmOS most certainly does have files. They aren't called
that, but PalmOS stores application data inside "databases" (or roughly,
directories) as "records" (which are the files).
Let's define terms: A "file" is some collection of data managed by a
software layer which insulates the programmer from the physical details
of the storage. It's that software layer that Charles Moore is
objecting to, not the name "file."
PalmOS databases insulate the programmer from the physical storage
details of records. In order to get data from a PalmOS "record," one
asks the database manager to look up a record by a unique ID. The
physical storage of those records has no relationship to the unique ID--
that is, record 1 is not necessarily followed by record 2. Also the
existence of record 1000 doesn't imply there are 999 records prior to it.
It is this separation from the physical that Charles Moore's comments
about files are really about. He objects to erecting an abstraction
between the programmer and the most simple and direct storage of that data.
And he's absolutely right, at least in those situations where the
storage of data is private to the application. For example, consider an
embedded system like a serial data logger. It records data to some
media and later allows that data to be downloaded serially. How the
data logger stores data is private, and doesn't need files at all. The
outside world doesn't interface directly to the stored data.
But there are plenty of examples where Mr. Moore is wrong-- where the
abstraction of files are useful, necessary, or just plain obviously
better than the direct-storage alternative.
I have a digital camera that writes images to flash memory. Let's say
the camera was designed by someone who believes blocks offer the best
solution.
As the camera stores images with variable compression, images can range
from a few dozen kilobytes up to a couple megabytes. Because I want to
store as many pictures as possible on the flash media, I would minimally
need some kind of directory structure that recorded the starting block
and length of each image. So we start with a trivial directory. It's
not files, because the image data is still being stored in a simple and
direct way. We just have a directory of some sort to find the data.
But that's not enough. As I take pictures, I might decide to delete
some images and leave others. So now I have to make a decision. If I
want to keep the images on the flash media contiguous, I now need to
either "fill the hole" left by deleting an image, or I have to reuse
those holes and store images that will fit inside them. The former is
bad because of the speed of flash media (it will take a long time to
fill the hole) and the latter is bad because now we will have wasted
storage.
More likely, the decision made will be to allow image data to be
non-contiguous. And that means that now we need some means to link
non-sequential blocks of storage together. So now we add a software
layer to deal with that-- we have files.
And so it continues. We need more than just image data. We have
metadata (minimally the time of the picture). And many cameras allow
voice annotation, so now we need a way to associate audio files with
image files. We have to store that somewhere-- looks like our directory
is going to get more complicated.
The point of all this is that files-- defined really as some software
layer to manage storage-- are useful when your storage requirements are
more complicated than simple sequential storage. If you can't predict
ahead of time the sizes of streams of data; if some of those streams
will need to be deleted over time; if there is a desire to efficiently
manage storage space-- all of these are reasons for files.
There are other reasons for files, such as interoperability between
different systems. I can plug my camera into a USB port on Windows,
Linux, and MacOS computers and instantly have access to the image data
as files. If the camera stored data in some block format, I would need
software on the computer side that knew how that data was organized.
And I would need to install that software on every computer I want to
work with.
So the use of files (or more specifically, standardized filesystems)
serves the purpose of allowing systems to interoperate.
Is Mr. Moore right or wrong? The answer-- as usual-- is that it depends
on the specifics of the situation. To try to take the koan-like things
he says without considering the specifics of your own situation is,
well, stupid.
I commented on the notion that "files are evil" in the previous message,
but I wanted to comment on the code you wrote. One thing I noticed is
that you have a word ("nquotes") that returns the number of quotes in a
file, by looking for a delimiter. This isn't necessary. All you have
to do is get the size of the file and pick a random location inside it.
Once you've done that, search forward (or backward) for the next or
prior quote.
In much the same way, if you were to apply this to blocks, you would
only need to know the first and last block, pick a random location
within those files, and then search forward (or backward) for the next
or prior quote.
MOD is already part of Forth, you don't have to define your own. UTIME
is not part of ANS Forth. If you want a simple random number generator,
try this (assuming your Forth is 32-bit). You'll need some way to pick
a random seed, like KEY? in a loop.
hex \ a cheap RNG by CGM
7549D83B constant rmult \ other good values: 07DCB7DC 6A364C22 62AFDC7A
decimal
2variable rloc 111 rloc ! \ seed with nonzero
: rndm ( -- u )
rloc 2@ rmult um* rot 0 d+ over rloc 2! ;
: random ( n -- 0..n-1 ) rndm um* nip ;
I think you're misunderstanding the usage of THROW. The ior of file
words after an error is nonzero but otherwise undefined. The
interpreter in most Forths will display the returned value as an error
code that probably isn't very meaningful. THROW is normally used in
conjunction with CATCH. You should put off learning about THROW until
you have a good handle on the basics. In your program, it makes more
sense to use ABORT" to report errors.
Some purists will complain that your use of locals is unnecessary,
which is true but it's mostly a matter of style. If you can use them
without making a mess, go ahead.
You should strive for natural language. Usually NOUN VERB order. As
long as you're making the input buffer global, you might as well make
fid global too.
0 VALUE FILE would be good, since you only have one file. FILE is a
noun, which makes the code more readable.
Brad
> I'm in the process of rr-working my code, and the core of it so far is:
Another approach:
$ cat quot.fs
warnings off \ avoid redefinition message
: random ( limit -- rnd)
utime drop 1 rshift swap mod ;
: " postpone \ ;
0 include quottest.fs random dup . ( quote )
0 ( quote current )
: .matching ( quote current addr len -- )
2over = and type ;
: " ( "str" -- )
0 parse .matching newline .matching ;
include quottest.fs
bye
And the quotes file:
$ cat quottest.fs
" quote 1 line 1
" quote 1 line 2
" quote 1 line 3
1+
" quote 2 line 1
" quote 2 line 2
" quote 2 line 3
1+
" quote 3 line 1
1+
" quote 3 line 1
1+
Run as:
gforth quot.fs
The quotes file is included twice: The first time it is used to count
the number of quotes (with 1+) discarding the lines starting with ".
The second time, we use it to find the exact lines.
Greetings,
Jorge Acereda
> I managed to spot "Starting Forth" over at:
> http://www.amresearch.com/starting_forth/
> I might get HTTrack to suck off the web pages from it - that'd be easiest.
>
> I'm in the process of rr-working my code, and the core of it so far is:
>
>: mod ( a b - a-mod-b ) \ modulus
> 2dup ( a b a b )
> / ( a b [a/b] )
> * ( a b*[a/b] )
> -
> ;
What I don't get is why your Forth doesn't have the word /MOD
or a variant UM/MOD FM/MOD etc.
It returns the quotient (on top of the stack) and the remainder
(beneath that) as well. Remember that a stack language can return
more than one result at the time, unlike C, Pascal, Java etc.
You can define MOD like this than (if it doesn't already exist!)
: MOD /MOD DROP ;
--
Coos
> prior quote.
But then longer quotations would be more likely to be chosen than
shorter ones, no?
> What I don't get is why your Forth doesn't have the word /MOD
> or a variant UM/MOD FM/MOD etc.
> It returns the quotient (on top of the stack) and the remainder
> (beneath that) as well. Remember that a stack language can return
> more than one result at the time, unlike C, Pascal, Java etc.
> You can define MOD like this than (if it doesn't already exist!)
>
> : MOD /MOD DROP ;
He wants a MOD for unsigned divison. That won't suffice.
See you,
Jorge Acereda
>...
> When I saw the Moore's comments, and took a look at the Sokoban code, I
> found it all a bit of an eye-opener. When I redesigned how my code
> operated, I realised that the new way I approached it was radically
> simpler.
>
> From my nano-experience of Forth so far, it seems things are blindingly
> simple if approached from the right way, but nightmarishly complex if
> approached in the wrong way. Do not try to bend the spoon, for that is
> impossible, merely realise that the spoon does not exist (The Matrix, as
> if you needed to be told). Interesting.
Another example along these lines is Marcel Hendrix's version of the
game Eliza. A more portable version (eliza.4th) may be found on the
kForth Examples Page:
http://ccreweb.org/software/kforth/kforth4.html
Another way in which one can get the Forth system to "do the work"
in parsing external files is to write the file data so it is
readable by the Forth interpreter. Then, one can simply INCLUDE the
external file and perform any post processing to move stuff off
the stack, etc. I use this approach frequently in dealing with data
files (files containing integer or fp numbers in text format). Then,
INCLUDE filename
or
s" filename" INCLUDED
will read the file and place the numbers on the stack. Following
the above statement, I would execute a word (e.g. put-xy) that
moves the data from the stack to the destination array(s). Of
course this approach requires the stack to be sufficiently deep.
Krishna
... ok quoting from something that I produced. ...
> So. Files are useless, then.
A better characterization of his position is that he does
files like everything else, when it is needed and then in
some simple way. He sees that other people around him
write code to access information in hundreds of separate files
in dozens of directories to do things he would simply avoid
or do as a simple search of a continuous region of memory.
Still, we were joking the other day about how when you
bring up this topic people just don't get it. When you say
I can search all the sources for this project for this
string with this code it has to be simpler because it is
just searching one continous block of memory. I say it
has to be simpler that way. But other people will say
that it is simpler because they just search a hundred
files in a dozen directories and insist that that has
to be simpler!
But characterizing Chuck's position as 'files are useless'
is the sort of straw man arguement that goes nowhere. What
he says is he sees a lot of file abuse. We were talking
about an example a couple of days ago. We laughed about how
completely different an approach another programmer was using
to solve a problem where Chuck would use no files and he used
hundreds of thousands of files. And of course I am the one
trying to convince Chuck that just using hundreds of thousands
of files as expanding pipe processed buffers when he would
cut to the chase and compute the exact same result without
opening and closeing hundreds of thousands of files is the
sort of real example that is more interesting to discuss than
'therefore files are useless.'
> He doesn't like local variables much, either.
Yes. And he has made it clear exactly why he says that
they are actually harmful.
> Unfortunately, he doesn't give any examples, and I was wondering if
> someone could give some.
It is at my site in many places and if not explicity, between the
lines at his site. Anyway, you are free to ask serious questions
about to access files, or whatever else you think you can get
useful answers to. But is "So. Files are useless, then." and
the 'Files are evil' thread name some sort of initiation prank
of Moore bashing that you need to get a serious answer to your
questions about your gforth programs?
So. Did the devil make you do it? ;-)
Best Wishes
Yeah. So? Would a human notice? Does it matter?
John Passaniti wrote:
>Let's define terms: A "file" is some collection of data managed
>by a software layer which insulates the programmer from the
>physical details of the storage.
So a PowerBASIC array is a file? A spreadsheet formula is a file?
a set of MIDI notes in masked ROM on an EMC/Elan microcontroller
(they come with "black box" routines that handle sound through
system calls) is a file? A Usenet article is a file? An Email
is a file? A formula on my programmable calculator is a file?
They all match the description above.
-- Trey
The quote that Mark Carter extracted was what Charles Moore said to you
in an interview you conducted. In it, Moore himself is quoted offering
the statement "files are not a big part of any typical application but
it is a singularly useless part." So I don't understand how you can
turn around and charge Mark with "Moore bashing" when he says "so, files
are useless then." Mark is only "bashing" if by "bashing" you mean
quoting and taking Moore's words at face value.
I'm glad your clarified Moore's position on files, which paraphrasing
I'm guessing is something like "use them when they make sense, don't use
them when they don't." But reading the interview, I can't see how
someone would see that as being his position. Suggesting that someone
should read all the content on your site and read between the lines on
his own site to understand Moore's position on files is nutty. You flip
out every time someone makes an honest attempt to capture Moore's views
by reading between the lines. So why would you tell Mark to do that?
So you can later go off on a tirade about how Mark doesn't know Charles
Moore and isn't qualified to comment on his views?
Instead of an undirected search through your site, how about specific
links that clearly show his position? Instead of reading between the
lines, how about a non-rambling essay or two that makes his position on
such things clear?
This is part of a repeating pattern with you. Moore will say something
that reads like a Zen koan (like "all applications should fit in 1k")
and it is left without further comment. It's only later (often *much*
later) when you or someone puts the comment in proper perspective (by
more clearly defining what Moore means by "application" and by pointing
out MISC packs multiple instructions per word) that his statements
become rational.
I believe you do this on purpose. You offer statements from Charles
Moore you know full-well will be misinterpreted in comp.lang.forth,
often because we don't have the necessary context (which you
conveniently omit). You then sit back and watch as people try to make
sense of the statements and then swoop back in to save the day by
saying, "no you Forth haters-- you clearly don't understand what Charles
Moore is saying." It's a silly game you play. Please stop.
Why don't you take things at face value. Instead of assuming that Mark
is "Moore bashing" why not assume he is what he says-- someone new to
Forth. And not only is he new to Forth, but he has a strong enough
desire to learn how the inventor of Forth himself approaches the
solution to problems-- so much that he went to your own site and took
the time to read an interview Moore's own words. Don't blame him for
coming to an incorrect or naive conclusion. And put away your silly
persecution complex and instead just help the guy.
Sure. Why not?
The key idea in defining a file isn't if it is in RAM, but if access to
the data in the file needs to go through some kind of software layer to
access its contents. If I can't calculate with a simple multiplication
the location of element X of a single-dimension array, then yes, it's a
file. To the programmer it may have the semantics of an array, and some
people may be hung up thinking files must exist as persistent streams of
data on a DASD. But thankfully, I don't have those problems.
> A spreadsheet formula is a file?
I would say no. Here you have taken my definition of file and applied
it to a context where it doesn't make sense. When talking about files
verses blocks, we're really talking about the directness of storage.
I might consider a spreadsheet as a file. If it was stored in a
block-like fashion (that is, so that with two multiplies you could
calculate the location of any entry in the spreadsheet) it wouldn't be a
file. But most spreadsheets don't do that-- they store a spare
representation of the cells, so that referencing a particular cell
requires a layer of software that does some kind of index into a
structure to find the data.
> a set of MIDI notes in masked ROM on an EMC/Elan microcontroller
> (they come with "black box" routines that handle sound through
> system calls) is a file?
Possibly. Can you calculate the location of any of these sets of notes
by a multiply? Or do you have to call a routine to do a more complex
index into some data structure. If it's the former, it's not a file.
If it's the latter, sure.
> A Usenet article is a file? An Email is a file?
In the general case, I would say no. Usenet articles and Email may be
*stored* in files, but the articles and email themselves are not. They
are best thought of as long strings of data with a specific formatting.
However, there are cases where yes, these too are files. I'm thinking
specifically of MIME-encoded messages that have multiple parts. For
example, I can send you email that has a plain text part, an HTML
portion, and various media (images, file attachments). And indeed,
these parts of the message can have names and other metadata (such as
their type). One can view the article or email message as a kind of
filesystem.
> A formula on my programmable calculator is a file?
Possibly. For example, on my HP-42, the program memory is not a file.
I can put labels in program memory, but my understanding of the internal
mechanism by which these work is that a linear search through program
memory is made for the labels. So to call that a file would be a stretch.
Other programmable calculators might work differently. I know someone
with a calculator that very definitely *is* a file. Each formula is
stored in a named file that shows up when the calculator is connected
via USB to a computer. The memory of the calculator looks like a FAT
filesystem.
> They all match the description above.
To varying degrees. Isn't lateral thinking fun?
A file is a reference to an array (or string, that is) with information
how to refer to it. This might be a file/pathname or an ID for the
PalmOS DB.
I think all of the above ARE files in a way, even though typically you
wouldn't store every spreadsheet formula in an extra file. But you could.
There could be a Forth (or whatever) IDE that uses directories for
dictionaries and stores each defined word in an extra directory. Java
typically uses one file per class, but you don't have to (if the class
is not public).
http://www.xs4all.nl/~thebeez/4tH/download.html
Native Linux, Win16, Win32 and DOS versions available; Sun, AIX, OSX,
BeOS, BSD you should be able to compile yourself.
Hans Bezemer
> But characterizing Chuck's position as 'files are useless'
> But is "So. Files are useless, then." and
> the 'Files are evil' thread name some sort of initiation prank
> of Moore bashing that you need to get a serious answer to your
> questions about your gforth programs?
>
> So. Did the devil make you do it? ;-)
No prank is intended. It was merely a rhetorical device to dramatise a
radical thought. So rather than say that programmers are apt to think in
terms of files when there may be other, simpler ways of doing something,
it is more pithy, and more in keeping with my sense of humour, to say
"files are evil".
Apologies for any offense taken.
> turn around and charge Mark with "Moore bashing" when he says "so, files
> are useless then." Mark is only "bashing" if by "bashing" you mean
> quoting and taking Moore's words at face value.
My comment "files are evil" was perhaps taken by some way too seriously.
Actually, I wasn't bashing Moore at all, I meant it as a kind of
complement. He is clearly challenging us to think about the approaches
we take to solving problems.
The scope of what Mr. Moore is talking about in the interview isn't
clear. He doesn't qualify his statement by saying files are useless in
*his* typical applications. His statement is that "files are not a big
part of any typical application but it is a singularly useless part."
The key word in the quote is "any."
I'm not putting words in his mouth. I'm not reading between the lines.
It's great to learn that Mr. Moore has a pragmatic attitude regarding
the use of files. But my question to you is how would anyone know that
from reading that interview?
> I would hope that anyone, everyone could see that. I mean he talks
> about the file access in okad2, he talks about the flash file access,
> he talks about exchanging files with other people, he talks about
> generating the standard GDSII cad files in okad2. So anyone who
> jumps from all his statements about working with files for all these
> years, and saying that they are not a significant part of these
> applications to characterizing that as 'files are useless' is just
> trolling.
It is my understanding-- and please correct me if I am wrong-- that the
only time Mr. Moore deals with a filesystem in his applications is when
he is forced to exchange data with someone else. It is my
understanding-- and again correct me if I am incorrect-- that the native
storage of data in OKAD isn't in files, but in blocks.
Or put another way, the fact that Mr. Moore can *translate* data into
files says little about his attitudes regarding files. I can for
example translate a database I'm working on into XML so that I can
exchange data with others. My ability to do that doesn't mean I find
value in XML.
> Given that they are likely to hear many distortions of Chuck's
> position, ones that claim that Chuck has said things he never said
> are likely to start out confused. But hopefully they won't miss all
> the references to how files can be used reasonably by Mr. Moore.
The references I find talk about files used as a means to interchange
data so he can work with others, not as a native format. I would enjoy
seeing references to his work where files are used not as an
intermediate format for exchange, but as part of the actual solution to
a problem. If such references exist, then yes, that would reinforce
your point. A simple URL is all that is necessary.
> When he sees people in the workplace adding file io that he thinks is
> just a lazy way to buffer things, and opening and closing literally
> hundreds of thousands of unecessary files, sometimes leaving them as
> garbage for someone else to clean up after these windows based C
> programs crash and burn, he notes that they defend these practices as
> just the way programs are suppose to be written. After all, if one
> is thinking that 'everything should be a file' then that's the sort
> of factoring that takes, place. People make file access into
> significant parts of programs where they don't need it at all. They
> bloat up the code, they give the chance to write lots and lots of
> file access that isn't needed. And they simply don't see this as an
> opportunity to factor things in a Forth like way were they aren't
> basing everything on 'everything is a file.'
I largely agree. And while files can be abused (like anything else), I
would hope Mr. Moore could also see that *proper* application of ideas
like "everything is a file" can also lead to considerable power. For
example, Unix and derivative operating systems illustrate that the cost
of adding files can pay you back with a system that is simpler and uniform.
> Well, I'll admit that reading what Mr. Moore has actually said, and
> studying his code requires more effort than reading the nonsense that
> people who like to distort his position post in places like c.l.f. I
> think that anyone who thinks more than 10% of what they read about
> Mr. Moore's Forth in c.l.f is nutty.
And that leads exactly to the point I was making. I seriously doubt
there is anyone in comp.lang.forth who has an agenda of distorting Mr.
Moore's work or what he has said. What you see in comp.lang.forth are
people who are trying their best to get a handle on his views, his
philosophies, and the values by which he designs things. And we're all
trying to do this with the very limited information we have.
You for better or worse are the primary conduit by which we get our
information. You've had the benefit of actually working and talking
with him. When you want to know about his views regarding files, you
can sit and have a conversation. You can extract from him those
situations where he sees value in such an abstraction.
We don't have that. When we read an interview (such as the 1x
interview), all we have are the words that are laid out for us by you.
You characterize people who get things wrong as "distorting" Mr. Moore.
Why can't you accept that there is no active effort towards distortion
here, and instead what you see are people trying their best to
understand the bits and pieces that you dangle before us and put them
together into something that has meaning.
> I tell anyone who want's to explain Mr. Moore's ideas to others to
> read what Mr. Moore actually said, and to study his code. I tell them
> that it isn't good to just repeat absurd negative comments made by
> Forth haters. It is not a nutty thing to tell people if they are
> serious about wanting to understand Forth. It must seem silly to
> those who would prefer to repeat absurd anti-Forth sound-bites which
> is antithetical to any real understanding.
But when what Mr. Moore actually said leads to an incorrect conclusion
(again, his comment was files were useless in *any* application, not
just *his* applications), you can't blame people for coming to an
incorrect conclusion.
I can appreciate there is a larger context here and that his statements
need to be viewed in that context. But you keep forgetting that you are
somewhat unique in this regard. Your context comes from actually
working with him. Our context comes from scattered interviews, random
comments, bits of code, and whatever else you (and yes, it's primarily
you) choose to release to us.
> I will ignore your above comments as the nonsense they are.
Yes, you're free to do that. Unfortunately not recognizing your own
responsibility for at least some of what you call "distortion" from
others is a constant theme of yours. You're like the teacher who is
convinced he's been given bad students because they can't pass his
tests, never once considering that the problem isn't with the students,
but with his ability to teach.
The code that I'm referring you to is not available at that link.
That's may actually be a good thing. The person who made Starting
Forth available electronically felt the "need" to "update" it to
reflect "modern" Forth ideas like files. Personally I wish the
historical version was still available. I find Forth's virtual
memory scheme to be "post-modern". Files systems were in existence
when Chuck Moore first came up with Forth, he just choose to go
a different route. And there are times to use files, especially
when you have Forth running on top of an OS such as Linux or
Windows. Anyway, I wish Starting Forth was available electronicly
both in it's "historical" original format and it's "updated"
format. If I can ever find my hardcopy of Starting Forth I
may take this up myself.
> I'm in the process of rr-working my code, and the core of it so far
is:
>
> : mod ( a b - a-mod-b ) \ modulus
> 2dup ( a b a b )
> / ( a b [a/b] )
> * ( a b*[a/b] )
> -
> ;
Mod is a primitive in most Forth's I've seen.
Regards,
John M. Drake
> software layer which insulates the programmer from the physical
details
> of the storage. It's that software layer that Charles Moore is
> objecting to, not the name "file."
Good point. Sometimes when Chuck is explaining this to people
after he uses the word file, he addes, a file is a collection
of blocks with a name.
That's one reason it is so bad to claim that he said that
files are useless. He never said that.
He has no objections to files. He objects to file abuse.
He sees those who follow common practices on common operating
systems doing a lot of unecessary file abuse and he simply
contrasts that to how he deals with files in Forth.
Best Wishes
> Anyway, I wish Starting Forth was available electronicly
> both in it's "historical" original format and it's "updated"
> format. If I can ever find my hardcopy of Starting Forth I
> may take this up myself.
We (that's the team which already did the Thinking Forth reprint) discussed
this already, and there seems to be some consense (at least within John
Hogerhuis and me) to go that way - we did the same for TF (though the
updated format is work in progress). So far, Elizabeth doesn't like to see
a reprint of the original, and we haven't asked Leo yet. And two out of the
three examples are block-centric (the database and the nonsense text
generator, the heap calculator isn't).
Making these two examples file-oriented IMHO is not optimal. Unfortunately,
the ANS Forth TC forgot to make the block wordset (which is part of the
file wordset) useable in a file-centric environment. Most Forths *have*
ways to assign files to the block words. But there's no standard, rendering
BLOCK quite useless.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/
Let's assume for now that your serious and not trolling.
Mr. Moore is of course talking about the typical applications that
he has been writing for fourty years, where he has shown that
files are not a big part of these typical applications. It is a
huge jump from there to 'files are useless.' It is such an
extreme leap from a sensible statement to nonesense that it is
clearly nonsense.
> I'm glad your clarified Moore's position on files, which paraphrasing
> I'm guessing is something like "use them when they make sense, don't
use
> them when they don't."
I would hope that anyone, everyone could see that. I mean he talks
about the file access in okad2, he talks about the flash file access,
he talks about exchanging files with other people, he talks about
generating the standard GDSII cad files in okad2. So anyone who
jumps from all his statements about working with files for all
these years, and saying that they are not a significant part of
these applications to characterizing that as 'files are useless'
is just trolling.
> But reading the interview, I can't see how
> someone would see that as being his position.
Given that they are likely to hear many distortions of
Chuck's position, ones that claim that Chuck has said
things he never said are likely to start out confused.
But hopefully they won't miss all the references to how
files can be used reasonably by Mr. Moore.
When he sees people in the workplace adding file io that
he thinks is just a lazy way to buffer things, and opening
and closing literally hundreds of thousands of unecessary
files, sometimes leaving them as garbage for someone else
to clean up after these windows based C programs crash
and burn, he notes that they defend these practices as
just the way programs are suppose to be written. After
all, if one is thinking that 'everything should be a file'
then that's the sort of factoring that takes, place.
People make file access into significant parts of programs
where they don't need it at all. They bloat up the code,
they give the chance to write lots and lots of file access
that isn't needed. And they simply don't see this as
an opportunity to factor things in a Forth like way
were they aren't basing everything on 'everything is a file.'
> Suggesting that someone
> should read all the content on your site and read between the lines
on
> his own site to understand Moore's position on files is nutty.
Well, I'll admit that reading what Mr. Moore has actually said,
and studying his code requires more effort than reading the
nonsense that people who like to distort his position post in
places like c.l.f. I think that anyone who thinks more than
10% of what they read about Mr. Moore's Forth in c.l.f is nutty.
> You flip
> out every time someone makes an honest attempt to capture Moore's
views
> by reading between the lines.
I don't 'flip out.' You don't like it when discussions become
'about you' so I will ask you to not try to make this 'about me.'
I haven't flipped out. I have merely pointed out that saying
'files are evil' or 'files are useless' are silly straw men
arguements that insult everyone who uses Forth.
And yes, I know that there are serveral people who's hobby is
to insult everyone who uses Forth in c.l.f regularly. And
that doesn't make me flip out. I just commented that it is
a distortion to claim that this was representation of the
position of Mr. Moore on Forth.
> So why would you tell Mark to do that?
I tell anyone who want's to explain Mr. Moore's ideas to
others to read what Mr. Moore actually said, and to study his
code. I tell them that it isn't good to just repeat absurd
negative comments made by Forth haters. It is not a nutty thing
to tell people if they are serious about wanting to understand
Forth. It must seem silly to those who would prefer to repeat
absurd anti-Forth sound-bites which is antithetical to any
real understanding.
But again John, you seem to be going off on a, about Jeff's
personality rant that is probably best avoided.
I will ignore your above comments as the nonsense they are.
Yes, he took the time to take something I had done to help
educate people, and turned it into something absurd to
join the Moore bashing club in c.l.f. I am sure he will get
your support for doing that and that you will hate if it
anyone points out what Mr. Moore's position on files really is.
But, let's not make this about your personality problems... ;-)
Best Wishes
Similarly, if you have a help file that is alphabetically sorted,
you can search forward to the next item. You can then use a generic
binary search, applied to the offset in the file.
Groetjes Albert
--
--
Albert van der Horst,Oranjestr 8,3511 RA UTRECHT,THE NETHERLANDS
One man-hour to invent,
One man-week to implement,
One lawyer-year to patent.
But he still uses the (signed) / in his formula ;-)
--
Coos
CHForth, 16 bit DOS
http://home.hccnet.nl/j.j.haak
> My comment "files are evil" was perhaps taken by some way too seriously.
> Actually, I wasn't bashing Moore at all, I meant it as a kind of
> complement. He is clearly challenging us to think about the approaches
> we take to solving problems.
File nature is in the interface. A printer is not a file, but /dev/lp
is. Disk "filesystems" are built on constructs much like classic Forth
blocks. The difference is the extra abstraction layer. Abstractions are
like the girl with the curl on her forehead: when they're good, they're
very very good, and when they're bad, they're horrid ;-).
I wish CS Professors would teach about the "horrid" part. Programmers
idolize abstraction uncritically. And I think that's the substance of
Chuck's point here.
-jpd
> The person who made Starting
> Forth available electronically felt the "need" to "update" it to
> reflect "modern" Forth ideas like files. Personally I wish the
> historical version was still available.
Personally, I wish it were available, but with footnotes and
commentary about modern Forths and such. This way a novice could read
it and be able to make some headway if the Forth that they're using is
incompatible.
Plus, I know this may offend some people, but there are lots of places
within Starting Forth (and Thinking Forth) that are myopic or
anachronistic. Which is true probably of a lot of 25 year old books
about computing. It assumes a small 16-bit system and words specific
to only a few Forths, it claims outright that Forth is faster than
other high level languages, assumes specific implementation methods,
etc.
What it really needs is a lot more commentary about how the user's
mileage may vary. It does have a great way to teach beginners to
computers about Forth, if they could get the examples to work.
> And there are times to use files, especially
> when you have Forth running on top of an OS such as Linux or
> Windows.
Or if you have multiple users, or want to keep projects separate,
or are tired of the manual bookkeeping, etc.
--
Darin Johnson
The opinions expressed are not necessarily those of the
Frobozz Magic Hacking Company, or any other Frobozz affiliates.
If that's what Mr. Moore says, I think that's not a very good definition
of what separates files from blocks and may lead to more confusion.
When he (and most people) talk about block-based storage, they are
talking about storage in sequential, contiguous blocks. He's talking
about a simple and direct correspondence
If it has a name or not is irrelevant:
42 constant Application
There, I just gave my application code starting at block 42 a name. Is
that a file? I'd say no. What separates files from blocks is a layer
of software that handles the management of the underlying storage, not
if a stream of data has a name. That storage management layer makes the
data stored look logically as if it was sequential and contiguous, but
the underlying physical storage isn't necessarily managed in that way.
It's the difference between physical and logical storage that I think
matters, not if you give things names.
> That's one reason it is so bad to claim that he said that
> files are useless. He never said that.
His statement (at least in the 1x interview) was "...files are not a big
part of any typical application but it is a singularly useless part."
Again, it's good to hear that his position isn't that files are useless,
but it is understandable why people might think that considering what he
did say.
> He has no objections to files. He objects to file abuse.
> He sees those who follow common practices on common operating
> systems doing a lot of unecessary file abuse and he simply
> contrasts that to how he deals with files in Forth.
It would be helpful to hear about examples of what Mr. Moore *doesn't*
consider file abuse.
Absolutely. Much of what Mr. Moore says about Forth is in the
context of what he does with Forth. So he uses terms in this
context that simply mean other things to programmers in other
environments.
> When he (and most people) talk about block-based storage, they are
> talking about storage in sequential, contiguous blocks. He's talking
> about a simple and direct correspondence
Right. And he is talking about the Forth programmer setting the
rules for the file name (in the dictionary) instead of an external
file system setting up the rules for the file names, and organization,
and location and all the corresponces at runtime. He is talking
about early binding into Forth with an integrated 'files' as
needed. It can have files that are compatible with some other
system with only a tiny amount of code, usually far less than
simply the glue to an external file system.
> If it has a name or not is irrelevant:
>
> 42 constant Application
>
> There, I just gave my application code starting at block 42 a name.
Is
> that a file? I'd say no.
Ok. In the past I though that you had argued that that sort of
thing was a file. And I thought that you were arguing for that
earlier in this thread. Maybe I was wrong, or maybe you switched
position when I said that it was a good point because it agreed
with what Mr. Moore had actually said about files.
> What separates files from blocks is a layer
> of software that handles the management of the underlying storage,
not
> if a stream of data has a name.
That seems arbitrary to me, as Chuck's definition includes both and
you are exluding simply calling a range of blocks a file such as
: application1 100 20 thru ;
But you are free to favor your own definition over the one Mr. Moore
has used when he discusses the subject. Just so people are clear
and don't get confused or somehow interpret what he said as
meaning 'files are useless' etc.
> That storage management layer makes the
> data stored look logically as if it was sequential and contiguous,
but
> the underlying physical storage isn't necessarily managed in that
way.
Right, but it could be, and I could still call it a file.
> It's the difference between physical and logical storage that I think
> matters, not if you give things names.
I agree that it is a layer of abstraction, as you say, and that
isn't necessarily an optimized one to one direct mapping.
> > He has no objections to files. He objects to file abuse.
> > He sees those who follow common practices on common operating
> > systems doing a lot of unecessary file abuse and he simply
> > contrasts that to how he deals with files in Forth.
>
> It would be helpful to hear about examples of what Mr. Moore
*doesn't*
> consider file abuse.
He has given lots of examples where he talked about his
various versions of file code in various programs. He would
not consider it file abuse I am sure. He would probably call
it optimized for programmer time and runtime performance within
a restricted range of requirements.
But of course he has done general purpose time file system in
Forth before. There is sane code and there is crazy code.
Probably what Chuck considers the most common form of file abuse
would be what he considers excessive use of files as temporary
storage or as the main way to pass data between programs. To
those who have programs that might fight each other or get
clobered by something else in their os the only really safe
way for their programs to be able to exchange anything
with persistent storage is by wrapping it in a file. And
people who have to do that just see it as the way things
should be, everything should be a file.
Forget for now that Unix has a sane way of piping data
from multitasking program to multitasking progra by using
this OS 'everything should look like a file' concept. And
forget that MS based software doesn't have nearly so sane
implementations. Just consider that programs do have to
wrap most everything in files, and let the os deal with
the file names etc., because it is the only way to get
stuff safely from one program to another.
But in Chuck's world of Forth programming, programs
cooperate, like cooperative multitasking, they don't
have to worry about having to wrap everying in named files
and let the OS sort it out at runtine in order to exchange
data between applications. So from Chuck's decades of
experience he sees it as other people having to deal with
wrapping things in files where he doesn't have to.
Like many other things, it is something that he can avoid,
because by choosing not have his programs run in a cooperative
environment, with early binding of safe data exchange, he
can avoid all that complication that other people see as
necessary in their OS world and which Chuck sees as uncessary
in his Forth os world.
But as to good examples of code. I like to point to his
examples, and those of others, that show that one can
write a 'real' file system in Forth, one that is compatible
with say a DOS floppy, in a few blocks, and that it likely
to be less code than just the glue layer to a foreign OS's
file system. I think Chuck has been showing examples like
that for years because he doesn't consider his examples
of programs reading and writing (sometimes standard) files
as examples of file abuse.
Best Wishes.
> "files are evil".
>
> Apologies for any offense taken.
No offense taken. However such 'humorous' threads or
conclusions such as those you posted are often taken as
an invitation for some to agree that Chuck's ideas about
Forth such as 'files are evil' are glaringly wrong. Had
you cross posted it to other newsgroups it might have
looked like serious trolling. Spreading it as serious
in other forums wouldn't help things. Even the 'evil'
reference is walking on thin ice without a smiley unless you
enjoy speading the 'Forth religion' type anti-Forth sound-bites.
I hope my last post about why Chuck would see most file use
as an unnecessary complication to (Forth) programs was helpful
in understanding the 'radical' thought that all that file
access that is necessary for all those people isn't necessarily
required in a Forth software environment. That's why it
remains an opportunity for people to factor their solution
using Forth to avoid all that unnecessary file stuff.
Best Wishes
So here we have a newcomer to both Forth and c.l.f who asks
a perfectly legitimate question. What happens? He is taken
to task for doing so and feels compelled to apologize.
I hope we can do better with future newcomers.
Welcome to Forth, Mark! Your question and posting was just fine. No
need to apologize.
Regards,
-Doug
Yes, you are wrong; I haven't switched positions. Your confusion likely
comes from the colloquial way you (and probably Mr. Moore) are defining
the word "files." It looks like you are defining file in the broadest
possible term as simply "a collection of data."
That's vague and I don't think very useful because it leads to
overloading terms and using them in a fuzzy way. Isn't a big part of
Forth programming supposed to be about carefully choosing the words so
they accurately reflect what you are doing? Why then use such a fuzzy
definition for "file?"
This thread is about the difference between file-based and block-based
approaches. So if we're going to have any kind of rational discussion
between the two, we need to define terms and highlight the differences.
I've done that two different ways so far. Here's a third:
A block-based approach is one where data is stored sequentially and
contiguously. The most important property of this is the ability to
directly address data by nothing more than knowing the starting block
and the offset into the data you want to access.
This is different from a file-based approach because there is a layer of
software that manages the underlying storage. So with files, there is a
distinction between the logical and the physical. Logically, the file
*looks* like it is stored sequentially and contiguously. But
physically, that's not necessarily the case. Physically, the data may
be stored sequentially and contiguously, but much more commonly it
isn't. A file may be broken into chunks, or portions of the file may
not even be stored (as in the case of sparse files). A file may be
stored in a compressed form and then expanded on demand. A file may be
spread across multiple disks.
>> What separates files from blocks is a layer of software that
>> handles the management of the underlying storage,
>> not if a stream of data has a name.
>
> That seems arbitrary to me, as Chuck's definition includes both and
> you are exluding simply calling a range of blocks a file such as :
> application1 100 20 thru ;
>
> But you are free to favor your own definition over the one Mr. Moore
> has used when he discusses the subject. Just so people are clear and
> don't get confused or somehow interpret what he said as meaning
> 'files are useless' etc.
But he *did* say files are useless. Shall I go back to the quote you
yourself provided in the "1x" interview *again*? Honestly Jeff, you
should be supporting what Mr. Moore said, not denying he ever said it!
Especially since Mr. Moore is absolutely right-- files *are* useless, at
least in the specific context he works in. The problem isn't with his
statement, the problem is that his statement is unbound. It's the word
"any" in the quote that I object to.
> But in Chuck's world of Forth programming, programs cooperate, like
> cooperative multitasking, they don't have to worry about having to
> wrap everying in named files and let the OS sort it out at runtine in
> order to exchange data between applications. So from Chuck's decades
> of experience he sees it as other people having to deal with wrapping
> things in files where he doesn't have to.
And that's a critical weakness in Mr. Moore's statements. In the
systems you describe, the totality of the system is designed
specifically for a set of applications. And that's fine for things like
embedded systems that do a specific thing or for systems dedicated to a
particular set of applications. He's absolutely right in that case.
But that's not the only way computer systems are used. The computer I'm
on right now is letting me type these words, running a simulation in the
background, playing some music, alerting me that I have mail, and
scanning a dozen weblogs for updates. This system isn't built for a
specific, dedicated purpose, for which I'm very glad. If I had to have
a dedicated systems for everything I use computers for, I would have
dozens of systems. That would be insane.
Mr. Moore's design principles are absolutely right-on when he talks
about the kind of specific, dedicated systems he works on. But they
start to make less sense when they are applied to things outside his
domain. He can't take his experience in embedded systems and
specific-purpose and think it necessarily applies to general-purpose
systems. It's two different worlds, and the problem is that many people
don't appreciate the differences.
> Like many other things, it is something that he can avoid, because by
> choosing not have his programs run in a cooperative environment, with
> early binding of safe data exchange, he can avoid all that
> complication that other people see as necessary in their OS world and
> which Chuck sees as uncessary in his Forth os world.
The "complication" is necessary in the "OS world" because people aren't
dedicating their systems to one specific function.
> But as to good examples of code. I like to point to his examples, and
> those of others, that show that one can write a 'real' file system in
> Forth, one that is compatible with say a DOS floppy, in a few blocks,
> and that it likely to be less code than just the glue layer to a
> foreign OS's file system.
The last time I read about this (and again, feel free to correct me), he
was cheating. It was more a hack than anything else. He wrote a
compatible directory structure to a floppy which was fixed, and then
wrote the data sequentially. It's cheating because it didn't respect
the file system-- he just used a template that happened to be
compatible. That is, the floppy couldn't have had prior data on it
because that would mean he would have to implement the actual semantics
of the filesystem. He would have to implement (for example) allocating
and linking non-contiguous blocks since other files on the floppy might
be occupying the space he wanted to use.
> I think Chuck has been showing examples
> like that for years because he doesn't consider his examples of
> programs reading and writing (sometimes standard) files as examples
> of file abuse.
I guess I should have been more specific in my question. I'm not so
much interested in what Mr. Moore considers good use of files in his own
applications. I'm more interested in what he considers good use of
files in *other's* applications. The answer to that would say more
about his views on files by exposing application domains he thinks files
make sense in.
I acknowledge that it is difficult for people to grasp that Mr.
Moore mostly talks about his experiences with the language that
he invented and that they apply what he says to their experiences
with other languages and get confused about what he means. I
acknowledge that it has always been a problem, and I don't blame
people for coming to an incorrect conclusion.
I do blame people who spread these incorrect conclusions after
Chuck has explained to them that they incorrectly interpreted
what he said and explained it again to them. I do blame people
who spread these incorrect conclusions after I have explained
to them that they are speading false information and just
repeating popular anti-Forth sound-bites that simply aren't true.
I acknowledge that most other newsgroups are full of people who
know nothing about Forth except these incorrect conclusions that
other people have made and repeated as popular sound-bites.
c.l.f isn't as bad as the rest of the world, but it also has a
high percentage of people repeating popular untrue but damaging
sound-bites about Forth.
Examples of subjects where people like to preemptively defend
their own practices by totally distoring what Chuck does in
Forth are such things as locals, error handling, files. The
popular sound-bites that get repeated just add momentum to
the popular incorrect conclusions. So if you ask for a
popular vote, most people think that those incorrect conclusions
are the truth. And so lots of people repeat these untrue and
insulting comments about Chuck Moore, and others often join
in a sort of Chuck bashing festival.
It is no wonder that Chuck Moore thinks that c.l.f simply isn't
worth reading. A large percentage of it is people repeating
untruths and attacking anyone who doesn't join the Chuck bashing
club on the subjects of locals, files, error handling, os use,
etc.
I don't think c.l.f is completely junk. I learn some stuff
here. And I see a lot of threads that look like they work out
some ideas. And I am probably a little less sensitive than
Chuck to seeing people repeat insulting incorrect characterizations
of his work than his is. But I understand why he thinks that c.l.f
isn't even worth reading. And I try to steer threads that invite
people to join into contests to see who can exagerate the
incorrect conclusions the most.
> I can appreciate there is a larger context here and that his
statements
> need to be viewed in that context. But you keep forgetting that you
are
> somewhat unique in this regard.
I don't forget it. I remind other people of my position in regard
to documenting and explaining Chuck's work professionally. I know
it puts some people off. Everyone has a right to an opinion and
when I tell people that they have what Chuck said exactly backwards
they often ask just who do I think I am.
No I don't forget the position that I am in. I have been the
sole messanger facing an angry mob in c.l.f too many times to
forget the position that I put myself in here when I try to
explain to all the people who think that they know more about Forth
than Chuck that maybe they don't really understand that he means
by Forth.
No I don't forget, it is hard to forget that if you have actual
experience with this stuff, and get paid to explain it to people,
that in c.l.f it will get you called a cultist, a mindless parrot,
a sicophant, a liar, etc., or that people will say that others
should simply discount whatever I say because it doesn't follow
the party line. But I will forget that for now.
> Your context comes from actually
> working with him. Our context comes from scattered interviews,
random
> comments, bits of code, and whatever else you (and yes, it's
primarily
> you) choose to release to us.
I will not accept responsibility for being the sole clearing
house for information about Mr. Moore. Elizabeth Rather was
the first person I know of who had the responsiblity of documenting
and explaining Chuck's Forth for other people. She has written
lots of good stuff and made it available. It isn't about what
Chuck is doing today, but nonetheless her body of work is an important
source of information. And there are others. Brodie wrote some
good books, so have dozens of other people. Chuck even has his
own website.
I feel that I have done more than my part in explaing, documenting,
and making available educational material on Forth. But I would
not expect anyone to think that they will get a complete understanding
by reading the 'scattered interviews, random comments, bits of
code, and whatever else' I have released. I would tell them to
grow up and learn to do some research. I will also not take
any blame for not providing 'everything that one could possibly
know about Forth' in one consise location that they can read
while standing on one ear.
> > I will ignore your above comments as the nonsense they are.
>
> Yes, you're free to do that.
I will not ignore things that are not simply nonsense, like
most of what you have said in this post. That nonsense that
I ignored is now in the past as far as I am concerned.
> Unfortunately not recognizing your own
> responsibility for at least some of what you call "distortion" from
> others is a constant theme of yours.
No, I recognize that. I resemble that remark
> You're like the teacher who is
> convinced he's been given bad students because they can't pass his
> tests,
No, I have been given lots of great students in real life.
Of course, c.l.f, and usenet is a place where there are almost
no students, and only masters who all know better than I about
almost all aspects of Forth. So given the number of people who
love to argue about anything I say in c.l.f, I will say that
if anyone thinks of them as students they must think of them
as very bad students indeed.
> never once considering that the problem isn't with the students,
> but with his ability to teach.
Students who try to shout down the teacher, who don't want the
other students to hear what the teacher has to say, will often
make that sort of noise. That's why usenet is not a classroom,
its a forum.
Once in a while, between the personal attacks and insults,
the subject of Forth is touched. ;-)
Best Wishes
I think it is a very good definition. And not incidentally it agrees
exactly and completely with what Unix systems (and poor replicates
alike, you know what I mean) define as files.
<SNIP>
A:\aap\noo\mies\qqq.html
There is a name (adorned with some conventions), but anyway.
And what is underneath? Sectors, aka blocks.
Jeff Fox wrote:
>I acknowledge that it is difficult for people to grasp that Mr.
>Moore mostly talks about his experiences with the language that
>he invented and that they apply what he says to their experiences
>with other languages and get confused about what he means. I
>acknowledge that it has always been a problem, and I don't blame
>people for coming to an incorrect conclusion.
In this case, any incorrect conclusion is squarely on the shoulders
of Mr. Moore. When he writes "Files are not a big part of any
typical application but it is a singularly useless part", his use
of the phrase "any typical application" is a direct contradiction
to your claim that the statement should be narrowly applied.
In addition, I believe that you err when you say "they apply
what he says to their experiences with other languages" This
is not about people using other languages. It's about them
having other applications. I, for example, use Forth in small
embedded systems - the sort of thing Mr. Moore does. For my
applications, files are indeed useless. Other folks use Forth
to write desktop applications that run under Windows. For their
applications, files are vital. Same language, different
applications.
>I do blame people who spread these incorrect conclusions after
>Chuck has explained to them that they incorrectly interpreted
>what he said and explained it again to them.
You are incorrect in applying the above to someone like the first
poster in this thread, who is a complete raw beginner at Forth and
who started reading Chuck Moore's page and ran into the statement
we are discussing. Chuck never explained anything to them. Or to
me, for that matter. You, on the other hand, are in an excellent
position to write something like "Chuck Moore clarified his position
in <insert url> where he wrote <insert quote>. That would, to my
way of thinking, have been more productive that your current course of
action is.
>I do blame people who spread these incorrect conclusions after
>I have explained to them that they are spreading false information
>and just repeating popular anti-Forth sound-bites that simply
>aren't true.
I do not agree that the readers of comp.lang.forth are "just
repeating popular anti-Forth sound-bites." Perhaps your perception
is skewed.
>c.l.f isn't as bad as the rest of the world, but it also has a
>high percentage of people repeating popular untrue but damaging
>sound-bites about Forth.
That has not been what I have observed.
>Examples of subjects where people like to preemptively defend
>their own practices by totally distorting what Chuck does in
>Forth are such things as locals, error handling, files. The
>popular sound-bites that get repeated just add momentum to
>the popular incorrect conclusions. So if you ask for a
>popular vote, most people think that those incorrect conclusions
>are the truth. And so lots of people repeat these untrue and
>insulting comments about Chuck Moore, and others often join
>in a sort of Chuck bashing festival.
Again, the above description does not match my observations.
Does not "people like to preemptively defend their own practices
by totally distorting what Chuck does" imply that their practices
are under attack?
>No I don't forget the position that I am in. I have been the
>sole messenger facing an angry mob in c.l.f too many times to
>forget the position that I put myself in here when I try to
>explain to all the people who think that they know more about Forth
>than Chuck that maybe they don't really understand that he means
>by Forth.
It has been my experience that in those few rare cases where there
really is a mob in a newsgroup, they have several targets. In a
case where there is conflict after conflict always involving just
one person, it seems reasonable to look at the common factor.
>> never once considering that the problem isn't with the students,
>> but with his ability to teach.
>
>Students who try to shout down the teacher, who don't want the
>other students to hear what the teacher has to say, will often
>make that sort of noise. That's why usenet is not a classroom,
>its a forum.
If one "teacher" has these kinds of problems over and over again
with a wide variety of students while other "teachers" have no
such problems with their students, it would seem to be reasonable
to look at the common factor.
http://www.forthos.org/fs.html
Regards,
Andy Valencia
Not true. The interface makes the file. Underneath the interface there
is often a collection of blocks, but there are many other
posssibilities. Printers, tape drives, frame buffers, communication
channels, views into virtual or physical memory, even programs that
generate dynamic reports on the system state from privileged viewpoints.
The blessing of files is that you get a common interface to all of
these. The curse is that the common interface can get in the way.
-jpd
Well I'm glad you're looking at it. I don't understand why Elizabeth
would
be against it. I always understood her opposition to be "people would
think
this is the way 'modern' Forth is done" but if it the page that hosted
it
had a link to the "updated" version no reasonable person could come to
that conclusion.
> Making these two examples file-oriented IMHO is not optimal.
Unfortunately,
> the ANS Forth TC forgot to make the block wordset (which is part of
the
> file wordset) useable in a file-centric environment. Most Forths
*have*
> ways to assign files to the block words. But there's no standard,
rendering
> BLOCK quite useless.
>
> --
> Bernd Paysan
> "If you want it done right, you have to do it yourself"
> http://www.jwdt.com/~paysan/
Well I wouldn't say "useless". Anyone using blocks has to take the
extra step to look up the documentation of how to open a block-file
on his system. There aren't any standard "file directory" words
either but that hasn't been a show stopper.
Regards,
John M. Drake
> Yes, you are wrong; I haven't switched positions. Your confusion likely
> comes from the colloquial way you (and probably Mr. Moore) are defining
> the word "files." It looks like you are defining file in the broadest
> possible term as simply "a collection of data."
>
> That's vague and I don't think very useful because it leads to
> overloading terms and using them in a fuzzy way. Isn't a big part of
> Forth programming supposed to be about carefully choosing the words so
> they accurately reflect what you are doing? Why then use such a fuzzy
> definition for "file?"
>
Well, for one thing, perhaps because the more general definition, by
which a file can be some blocks with a name, is useful. It is your more
specialized definition that makes files and blocks antagonistic.
> This thread is about the difference between file-based and block-based
> approaches. So if we're going to have any kind of rational discussion
> between the two, we need to define terms and highlight the differences.
As you say.
Jeff:
> > But you are free to favor your own definition over the one Mr. Moore
> > has used when he discusses the subject. Just so people are clear and
> > don't get confused or somehow interpret what he said as meaning
> > 'files are useless' etc.
>
> But he *did* say files are useless. Shall I go back to the quote you
> yourself provided in the "1x" interview *again*?
OK, here it is:
> "...files are not a big
> part of any typical application but it is a singularly useless part."
Now my high school English teacher and I would read that as saying that
the files part of a typical application is singularly useless, not that
files, per se, are useless.
Best regards,
Bill
Or the parse
"...files are not a big part of any typical application but it [the
application] is a singularly useless part."
The case is a better match. Perhaps the application is the useless bit,
and it's the files that give it usefulness...
--
Regards
Alex McDonald
Nobody has to read everything. I guess most people here skim the
headers and follow discussions they find interesting.
Couldn't it be that people "repeat these untruths", because Mr Moore
never posts anything to the contrary? I think nobody intends to bash
him for anything; after all without him this newsgroup wouldn't even
exist. But if every stream of words that he did or didn't say comes to
this newsgroup only through you, and that information is sometimes
missing context or is simply misunderstood (that happens), and Mr Moore
doesn't clarify things because nobody here can ask him, then there's a
real possibility for confusion.
> I will not accept responsibility for being the sole clearing
> house for information about Mr. Moore. Elizabeth Rather was
> the first person I know of who had the responsiblity of documenting
> and explaining Chuck's Forth for other people. She has written
> lots of good stuff and made it available. It isn't about what
> Chuck is doing today, but nonetheless her body of work is an important
> source of information. And there are others. Brodie wrote some
> good books, so have dozens of other people. Chuck even has his
> own website.
But in discussions that involve his opinion (or rather small parts of
it), when Mr Moore doesn't correct misunderstandings then who are we to
know that we misinterpreted him? You always pretend like people do that
out of malice.
> I feel that I have done more than my part in explaing, documenting,
> and making available educational material on Forth. But I would
You did a lot, for sure.
> not expect anyone to think that they will get a complete understanding
> by reading the 'scattered interviews, random comments, bits of
> code, and whatever else' I have released. I would tell them to
> grow up and learn to do some research. I will also not take
> any blame for not providing 'everything that one could possibly
> know about Forth' in one consise location that they can read
> while standing on one ear.
Noone expects that. But please don't blame people if they misunderstand
Mr Moore -- after all he doesn't post and clarify things.
Adults don't expect to be spoon fed, and they don't complain
that their learning problems are the fault of those who provide
help.
> In addition, I believe that you err when you say "they apply
> what he says to their experiences with other languages" This
> is not about people using other languages.
It is what I was talking about. You can decide what 'it' is
about for yourself.
> It's about them
> having other applications.
Yes. That's exactly the point.
When Chuck talks about, and tries to explain his Forth use
and his decisions in that enviroment he is thinking of
applications that cooperate. The applications mostly exchange
data in blocks. They don't need elaborate files, foreign
file systems, os to manage memory and trap errors
caused by fighting programs. The programs are cooperative
and it is what seems to be difficult for people who try to
apply what Chuck says about his Forth to their OS based
non-cooperative programs that have to be full of files.
Chuck says files only need to be a fraction of a percent
of the typical application (written in Forth for a Forth
environment). Chuck is just trying to explain that when
he says Forth he means an alternate enviroment in which
one doesn't to muck around with all the C code and
problems and files that foreign OS impose on people who
are not doing what Chuck is doing when he says Forth.
> I, for example, use Forth in small
> embedded systems -
>From what you have said it sounds like you use Forth.
> the sort of thing Mr. Moore does.
Well, that might be a bit of stretch if you think that
getting outside of Forth based enviroment and dealing
with all the C problems is same sort of thing that Mr.
Moore does.
> For my
> applications, files are indeed useless.
Sure, in non-Forth based enviroments the things that Chuck
Moore says about his Forth enviroments don't apply.
> Other folks use Forth
> to write desktop applications that run under Windows. For their
> applications, files are vital.
Right, that's exactly the point. As long as people remember
that Chuck is talking about something COMPLETELY DIFFERENT
then his comments about files not being a big part of a typical
application make perfect sense. And of course if what Chuck
says is applied to environments like that it makes what Chuck
said look like nonsense from an idiot. Chuck is not an idiot
and what he says about what he calls Forth is not nonsense.
> Same language, different applications.
Well, we, the Forth community call a lot of things Forth.
Some people call some things Forth and not others and not
all agree.
It really isn't the same language that Chuck talks about
whenever he talks about Forth. He will always be refering
to what he does, not to what other people call Forth.
I suspect that many people are simply upset because if you
take what Chuck does as a definition of Forth then what they
are doing is likely to be quite anti-thetical to that. And
they want to call what they do Forth. They have as much
right to do so as anyone else. Maybe they are upset that
Chuck doesn't try to explain what they do when he uses
the term Forth.
> >I do blame people who spread these incorrect conclusions after
> >Chuck has explained to them that they incorrectly interpreted
> >what he said and explained it again to them.
>
> You are incorrect in applying the above to someone like the first
> poster in this thread,
But I didn't do that!. ;-(
I told him 'good point' I explained that Chuck means that in
his Forth enviroment files simply are not needed because it
is very different than foreign OSes where everything has to be
files files files.
I thought I was nice. I must admit that my patience is
starting to grow thin, not with the newbies, but with the
noise makes who want to argue that Chuck is wrong to use
the term Forth in a way that is different than that THEY
call Forth!
> who is a complete raw beginner at Forth and
> who started reading Chuck Moore's page and ran into the statement
> we are discussing. Chuck never explained anything to them. Or to
> me, for that matter. You, on the other hand, are in an excellent
> position to write something like "Chuck Moore clarified his position
> in <insert url> where he wrote <insert quote>. That would, to my
> way of thinking, have been more productive that your current course
of
> action is.
I thought I did. There is no point in turning this into
a 'your not doing a good enough job' argument.
> >I do blame people who spread these incorrect conclusions after
> >I have explained to them that they are spreading false information
> >and just repeating popular anti-Forth sound-bites that simply
> >aren't true.
>
> I do not agree that the readers of comp.lang.forth are "just
> repeating popular anti-Forth sound-bites." Perhaps your perception
> is skewed.
I didn't say all. ;-) Maybe a list would help. ;-)
I meant to refer to posters, not readers in c.l.f. I don't know
that the readers repeat to others. I do know that a number of
posters regularly post about Forth here. ;-)
> >c.l.f isn't as bad as the rest of the world, but it also has a
> >high percentage of people repeating popular untrue but damaging
> >sound-bites about Forth.
>
> That has not been what I have observed.
Maybe you think what I call false negative sound-bites such
as Forth is unreadable, etc. etc. are simply true statements.
That would explain whay you haven't observed certain people
regularly repeating those claims in c.lf.
> >Examples of subjects where people like to preemptively defend
> >their own practices by totally distorting what Chuck does in
> >Forth are such things as locals, error handling, files. The
> >popular sound-bites that get repeated just add momentum to
> >the popular incorrect conclusions. So if you ask for a
> >popular vote, most people think that those incorrect conclusions
> >are the truth. And so lots of people repeat these untrue and
> >insulting comments about Chuck Moore, and others often join
> >in a sort of Chuck bashing festival.
>
> Again, the above description does not match my observations.
Same comment as above.
> Does not "people like to preemptively defend their own practices
> by totally distorting what Chuck does" imply that their practices
> are under attack?
Yes.
That's the problem. Chuck is proud of what he calls Forth.
What he calls Forth is not what most people who call what they
do Forth do. So they consider his using the term Forth to
refer to what he does, and to describe something so different
than what they do, as an attack.
They want to do something completely different than Chuck
and don't like his calling what he does Forth, it seems like
an attack on what they call Forth to them. So the easiest
defense is to offer nonsense as substitutions for what
Chuck has tried to communciate to other people.
> It has been my experience that ...
ymmv
Best Wishes
"Never" is wrong, as he has posted a few times. But his posts
to the contrary of what certain people had been mistakenly
saying about his work only seem to encourage them to do more.
> I think nobody intends to bash him for anything;
I wish I could agree with you. I think most people do it
without knowing that they are repeating offensive negative
sound-bites. I think many do it preemtively because they
feel that what Chuck has said about Forth insulted them
and didn't show sufficient approval for what they were doing.
I think for some its just business. I think for some it is
just a hobby. And at least one seems more like a simple
web-bot that repeats the same negative sound-bites no matter
what else anyone else says. But hey, it's usenet. ;-)
> after all without him this newsgroup wouldn't even exist.
He has posted here in the past. He now says its not worth
reading.
> But if every stream of words that he did or didn't say comes to
> this newsgroup only through you, and that information is sometimes
Thank God that's not the case. I often report what he has said
before SVFIG meetings, and other members report what they heard
as well.
Some people want/expect me to make videos and transcripts and
post them on the Internet, so they don't bother to do the same.
I know that mostly people complain that I do it here in
c.l.f, they don't like the fact that I post the information,
or try to explain it and some make a lot of noise.
> missing context or is simply misunderstood (that happens), and Mr
Moore
> doesn't clarify things because nobody here can ask him, then there's
a
> real possibility for confusion.
It should be obvious, OBVIOUS, to people what context Mr. Moore
is talking about when he says what he says. It is a very lame
excuse for anyone who doesn't call themselves a total newbie
to try to interpret what Mr. Moore says about Forth in the
context of what people doing completely antithetical things are
doing.
> But in discussions that involve his opinion (or rather small parts of
> it), when Mr Moore doesn't correct misunderstandings then who are we
to
> know that we misinterpreted him? You always pretend like people do
that
> out of malice.
I don't always do it. I don't pretend. There are some people who
clearly do it mostly for the attention that the malice brings. There
are some who just see it as business not malice, but they most
certainly intend it.
> But please don't blame people if they misunderstand
> Mr Moore -- after all he doesn't post and clarify things.
What bothers me the most, are the people who repeat the
stuff claiming it to be true and proclaiming that they
do understand. I don't blame any people who misunderstand,
except for those who want to misunderstand or want others
to misunderstand.
But hey, it's not my job to assign blame to anyone. However
what bothers me the most are the absolutely terrible explainations
'in favor' of Chuck's ideas that make them look stupid while
trying to make them look good for other people.
A lot of what people offer as 'excuses' and 'backhanded
compliments' for why Chuck does things the way the does them
are really nothing more than insults that perpetuate
common misunderstandings. Do it once, it's a mistake, do
it twice, it's a dumb mistake, keep doing it and it's malice.
Best Wishes
Right, and we were talking about taking it out of the
context in which he intended the meaning, ie. what
he calls Forth. I can see that you don't want to
discuss the subject so I will just leave your other
comments alone.
Best Wishes
We've lost the battle for the operating system IMHO, so I guess we
have to go with the flow (although I know there are some people that
don't agree).
Hans Bezemer
You buy into the ex-post-facto discovery in Unix that it is useful
to consider everything as a file. So all Unix devices are forced
into a straight jacket. That is fine.
>The blessing of files is that you get a common interface to all of
>these. The curse is that the common interface can get in the way.
What you saying here is that everything is considered as "files"
i.e. as a collection of blocks with a name. That is fine.
Then you turn around and say that you will call everything file,
and hit poor Chuck on the head with your new-fangled definition.
>-jpd
Indeed. And there is the very simple solution to always start
Forth with a block file attached. A couple of hundred kilobytes
can contain a lot of blocks, and that kind of storage nobody
looses any sleep over nowadays.
>
>Regards,
>
>John M. Drake
So what you are saying is that Mr. Moore doesn't believe the principles
he espouses have any worth outside the specific applications he works
on? So he only believes simplicity and directness can only be applied
to just his own work and nothing else?
> I can see that you don't want to discuss the subject so I will just
> leave your other comments alone.
Yes, that is one tactic to avoid answering the questions I asked and the
points I raised.
> on?
No. For the record, I was saying that absurd insulting distortions
like your last question are ugly and nasty.
> So he only believes simplicity and directness can only be applied
> to just his own work and nothing else?
No. We all know that's just another ugly nasty insult directed
at someone's back. I won't comment on it further, it is too
stupid and too nasty.
> > I can see that you don't want to discuss the subject so I will just
> > leave your other comments alone.
>
> Yes, that is one tactic to avoid answering the questions I asked and
the
> points I raised.
I wish to avoid further comments about your cowardly insults and
absurd distortions of what Mr. Moore has said. It's probably the
best thing. You don't like it when it becomes about you and
I don't think anyone else does either.
Best Wishes
Guy Macon wrote:
> Jeff Fox wrote:
> >
> >Guy Macon wrote:
> >
> >> In this case, any incorrect conclusion is squarely on the
shoulders
> >> of Mr. Moore. When he writes "Files are not a big part of any
> >> typical application but it is a singularly useless part", his use
> >> of the phrase "any typical application" is a direct contradiction
> >> to your claim that the statement should be narrowly applied.
> >
> >Adults don't expect to be spoon fed, and they don't complain
> >that their learning problems are the fault of those who provide
> >help.
>
> So, your response is a personal attack.
No. It was not personal. If you really wish to get a
personal attach as a response I would question your thinking.
> I am meither a child or learning disabled.
Then don't take it personally if I talk about how babies are
spoon fed and cry if you stop feeding them. I didnt' say that
you looked like you were crying like a baby.
> Let me know when you wish to have a civil
> discussion about the topic at hand instead of pulling your boring
> schoolyaerd bully act.
Sure. I am all for civil discussions. If you picked on someone
who you thought was smaller than you and found that you couldn't
bully them you are free to cry about it and claim that you
were bullied.
> >> I, for example, use Forth in small
> >> embedded systems -
> >> the sort of thing Mr. Moore does.
> >
> >Well, that might be a bit of stretch if you think that
> >getting outside of Forth based enviroment and dealing
> >with all the C problems is same sort of thing that Mr.
> >Moore does.
>
> *What* have you been smoking, Jeff? I have no use for C.
> Following the "right tool for the job" philosophy, I use:
What makes you think I was talking about you. What have
you been drinking?
You will most certainly know if I single you out, as I
will not talk about the general problems that people have
in understanding, but will use your name just as you
have done above in attempts to get into a 'personal'
argument. It hasn't been about you...
But if you would like a one-on-one debate of some topic
then great. Let's ask others to not form a mob and
have a civil discussion of what ever topic concerns you.
If on the other hand you want to start getting personal
and calling names then be clear about that.
> For embeddes systm with tens of bytes of RAM and hundreds
> of bytes of code, pure assembly language, without even a
> macro.
>
> For embeddes systm with hundreds of bytes of RAM and
> thousands of bytes of code, Forth. (Not ANS Forth or any
> commercial or free Forths, but a custom languge that has
> only what I need for *my* applications.
That is the impression that I have had.
> For all those little programs that make life easy,
> PowerBASIC (I actually run it on a dedicated Windows
> machine and connect to it from my Linux box to use
> the programs; that's how much I lile it *for the kinds
> of things I want to do.*
Linux box? I would think a person who has no use for
C would include Linux as an example of the C that he
has no use for.
But ok, sure, you do Forth and you do Linux and you
do PowerBASIC in Windows. The Linux part doesn't
sound to me like the same thing as what Mr. Moore does
however.
> I personally have no use for C. Some folks like it - it
> meets their needs - but it is a poor fit for low-end uCs.
Isn't Linux written in C, and isn't a Linux box running
Linux, and I don't know why you have one if you have no
use for it. If you use that Linux box then you have
use for C.
> I deleted the rest of your post unread. I have no interest
> in reading more of your insults at the moment. Perhaps later
> you will decide to be civil.
I can be civil if you want to be civil. If you give up the
drinking and go back to discussing topics instead of writing
about me, using my name, and getting insulting then we can
have civil discussions. If you want to get personal we can
do that instead. I am getting mixed messages from you.
You want to write insults, but you don't want to read them.
Ok, that's fair. You can write about me and what I say
while adding that you actually cut it out without reading
it to make you job easier.
Best Wishes
"If you can realize that this is all unnecessary you save one hundred
percent of the code that went into writing the file system. Files are not
a big part of any typical application but it is a singularly useless
part."
Note that he said a TYPICAL application, not all. This suggests that on
any given "atypical" application may be exempt from the declaration.
One must also recognize that this was an interview in which he was
speaking to Forth-ers about Forth. Specifically, he was counseling them as
to how more can often be gained from eliminating things than from adding
them.
He goes on to say:
"Identify those aspects of what you are trying to do and saying we don't
need to do that. We don't need checksums on top of checksums. We don't
need encryption because we aren't transmitting anything that we don't
need. You can eliminate all sorts of things."
This is really more about philosophy and methodology than files, but
nonetheless, except for certain kinds of exceptions - which he allowed for
by referring to TYPICAL applications - the kind of Forth he is advocating
(and has proved itself) has no need for files.
As to the argument about nonsequential data, I can only say that I
wouldn't be at all surprised if Moore considered that a factoring issue.
At any rate, to take a clearly qualified statement and translate it into a
completely unqualified, universal one is, at the very least, a little
disingenuous, don't you think? (Not talking about the original question
here, but insistence afterwards that Moore indeed flatly said, "files are
useless.)"
By the way, I'm new to this forum as a member, although I've been reading
and scanning stuff here for quite a few months, now. I don't have near
the Forth chops of most of you guys (*yet*) ;), but I do hope to learn
what I can from those of you who do. I hope none of my posts are
interpreted as hostile or aggressively confrontational; my only intent is
understanding and being understood.
--Michael Stone
You have a talent for taking what I and others write and elevating it to
"insult." More often than not, it seems you do this when the questions
get too tough, or when they touch on areas where you seem particularly weak.
What you call an "insult" is an honest question that I'll restate
another way:
We started this thread with a Forth newbie who read the "1x" interview.
As you state, the "1x" interview is Mr. Moore discussing what he calls
Forth, and this is shaped by the kind of work that he does-- as you put
it, creating custom software for custom silicon.
I (and I assume most others in comp.lang.forth) don't do the same kind
of work that Mr. Moore does. For some of us there may be some overlap,
but very few people are doing exactly what Mr. Moore does. And so there
is a legitimate question here of how far can his views be applied
outside what he does. There are limits to every approach, and what I'm
interested in is finding those edges.
But before we even start to discuss that, we have to determine if we can
sensibly talk about applying Mr. Moore's views to work outside his
domain. And that's the question I asked you. I asked if Mr. Moore
believes that his views can be applied to people who aren't doing the
same work as he does. If the answer is no, then we're done. If the
answer is yes, then the next step is to find the edges.
> I wish to avoid further comments about your cowardly insults and
> absurd distortions of what Mr. Moore has said. It's probably the
> best thing. You don't like it when it becomes about you and I don't
> think anyone else does either.
I have no idea what this means.
I will say that if you for once assumed took my words at face value and
didn't try to inject an agenda that isn't there, you probably would
spend a whole lot less time defending what doesn't need to be defended.
I can remember you two having the same kind of dialogue two years ago.
The topic at hand might have been different, but otherwise nothing has
changed :)
You should note that one participant has this sort of dialog with
many different people, each of whom only has this sort of dialog
with that same one person.
Ummmmm....he did NOT call you a "non-adult". Good grief!
Alright. Quick thread recap. Someone new to Forth made
a statement that Chuck thinks "files are evil". Later in
the thread he ADMITTED that he was using "a rhetorical device
to dramatise a radical thought". Yet others seem hellbent
to PROVE that he came to the "correct" conclusion about
what Chuck said about files. Jeff was not calling you a
"non-adult" unless you REALLY believe that Chuck thinks
files are useless for environments that require you to
use files. This is much ado about nothing. If your
system requirements dictate you must use files then
files are a requirement. But if that's not a system
requirement then you are free to try other things.
You obviously understand this. Chuck understands this.
Jeff understands this. So why all of the drama?
What further obfuscates the obvious is the fact that
the name "Forth" has meant over the years both Forth
the "language" and Forth the "system". It's like
Oberon is used both for the language and the system.
Programming Oberon is quite different if you're
trying to use it to make "normal" Windows programs than
if you're trying to write Oberon "system" programs.
The same is true for Forth. Most people today just do
Forth "language" programming which is fine. But if
someone's talking about Forth "system" programming the
parameters of the discussion are quite different.
Regards,
John M. Drake
After telling me that you were an adult, not a child
you went on to tell me about getting bullied in the
schoolyard at recess. ;-)
But seriously, if you were offended, and felt bullied
because I made fun of something you said sorry. I
would be very happy to seriously discuss some of the
more valuable points as adults if you wish.
> ... isn't a personal attack?
> Free clue: ...
>
> Then you have the chutzpa to accuse someone who ...
> >You will most certainly know if I single you out, as I
> >will not talk about the general problems that people have
> >in understanding, but will use your name just as you
> >have done above in attempts to get into a 'personal'
> >argument. It hasn't been about you...
>
> Again you torture english syntax, demanding that the reader
> parse commonly used conversational conventions differently
> when you use them. According to the above, when you write
> "What makes you think I was talking about you. What have
> you been drinking?" your aren't referring to me - you didn't
> use my name.
No. Certainly at that point I was clearly responding to
you. And I was intentionally engaging in the same sort
of childish behavior that you had gone into. You insulted
me by asking what I had been smoking. I asked you what you
had been drinking to show that you were now acting like
a child and trying to get personal in between your
claims that you weren't a child. I was most certainly
talking about you at that point. But not before you
started the personal stuff. He said, she said...
I have had this happen with you several times now.
For instance recently I said that people shouldn't beat
on someone for simply observing that Elizabeth had been
the first to reply to a thread. You said I was wrong
and I that I should listen to all the other people
telling me that I was wrong about that. I said I
didn't care about how many people told me that I was
wrong, I was clearly right and that anyone could look
it up and see that Elizabeth had been the first responder.
I said that you were wrong when you said that I was wrong
because it was obviously true that Elizabeth had been
the first poster to the thread. You asked me to look up
the URL to prove it. I did. I said it proved that you
were wrong when you said that I was wrong when I said
that you were wrong when you said that I was wrong
when I said that Elizabeth had been the first the
responder in the thread. So you said that I was
lying when I said that you were wrong when you said
that I was wrong when I said that you were wrong when
you said that I was wrong when I said that Elizabeth
had been the first responder and that it didn't matter
how many people said I was wrong, that Elizabeth had
been the first responder.
It reminds me of someone else. When I first saw the
name of the thread I thought, oh no, an invitation for
certain well known people to post more garbage about
what Mr. Moore has said about Forth. And for a while
I tried to keep up with the insult fest that was
taking place. But some people just see that as an
oppoturnity for a personal insult fest, and I think
it does make more noise and stink.
But I repeat my offer to forget about the previous
I said, you said, I was right, you were wrong, now
your lying about it sort of threads and try to discuss
the topic at hand like an adult. I repeat the offer
to treat you like an adult.
> >But if you would like a one-on-one debate of some topic
> >then great. Let's ask others to not form a mob and
> >have a civil discussion of what ever topic concerns you.
>
> I wonder who you are taling to here? My name wasn't mentioned,
> so you must not be talking about me.
Right. You seemed to want to make it about you at that
point so I had addressed your comments about yourself
and your Forth. I repeat my offer to discuss that
subject as a adult.
> Or do the rules change from paragraph to paragraph?
>
> >Linux box? I would think a person who has no use for
> >C would include Linux as an example of the C that he
> >has no use for.
>
> You honestly don't know the difference between the C
> programming language and an operating system written in
> the C programming language?
I know that Unix was written in C and that C was designed
to write Unix and that C divided up the problem in to
syntax and library and the library part implies the
existence of the sort of file system that was part of the
OS that the language was designed to build and reside in.
Honestly, I was employeed in the past as a C programmer
in a Unix environment. But if you don't want to discuss
this like an adult and just proclaim that I don't know
the difference between a language and an OS I will
understand that you either cannot act like an adult or
have simply run out of rational arguments.
> If I wrote "I have no use
> for hammers" would you use the fact that I live in a
> wood-frame house as proof that I am a hammer-user?
No. I might say that I am a hammer user and so if
someone has questions about hammers that they are free
to ask me about using them.
> that living in such a house involves "dealing with all
> the hammer problems."
No, but I would love to discuss your earlier statement
that you do the same thing as Mr. Moore, but you use a
Linux box instead of Forth box. Many people make statements
like that and I think that if examined in the light of
day that people will see exactly how far beyond using
the same word the phase 'the same thing' means in this context.
Adults want to know.
Best Wishes
Yes. And as I have pointed out before people are strangly
disposed to joining mobs. Even more strangely they may
claim that they never saw a mob. ;-)
Best Wishes
Jeff Fox wrote:
>> If I wrote "I have no use
>> for hammers" would you use the fact that I live in a
>> wood-frame house as proof that I am a hammer-user?
>
>No. I might say that I am a hammer user and so if
>someone has questions about hammers that they are free
>to ask me about using them.
So you *DON'T* use the fact that I use a wood-frame house
as evidence that I use a hammer, but you *DO* use the fact
that I use a Linux box as evidence that I use C. That
seems contradictory - as if the rules of evidence were
changing from paragraph to paragraph.
>You will most certainly know if I single you out, as I
>will not talk about the general problems that people have
>in understanding, but will use your name
>[referring to a statement that did not contain my name]
>I was most certainly talking about you at that point.
The above two statements cannot both be true, The first one
appeared at the time to be a standard English sentence with
a well-defined meaning (my name missing, so not about me)
but later you say the opposite (my name missing, but about
me.)
Jeff Fox wrote:
>I would be very happy to seriously discuss some
>of the more valuable points as adults if you wish.
Jeff Fox wrote:
>...childish behavior that you had gone into...
>...You insulted me...
>...you were now acting like a child...
>...I said that you were wrong when you said...
>...your lying about it...
>But I repeat my offer to forget about the previous
>I said, you said, I was right, you were wrong, now
>your lying about it
The above statements are contradictory. Either you wish
to post a lengthy diatribe about past arguments or you
want to "forget about the previous". Please pick one.
>No, but I would love to discuss your earlier statement
>that you do the same thing as Mr. Moore, but you use a
>Linux box instead of Forth box.
We cannot have a discussion as long as you put words in my
mouth. You keep claiming that I wrote things that I never
wrote. I NEVER SAID THAT I RUN FORTH ON A LINUX BOX. I was
very, very clear about that. I listed the various systems
I have use for and the languages I use on them. I use Forth
on small embedded microcontrollers ("Forth box" if you accept
"box" as including "aircraft". "robotic assembly line" and
"barbie doll." I prefer "Embedded System.") I use PowerBASIC
on Windows, with a Lixux box on my LAN that talks to the
Windows box and does the usual things such as surfing the web
or word processing. I was quite specific about that. You
have no justification in mis-characterizing it as "your earlier
statement that you do the same thing as Mr. Moore, but you use
a Linux box instead of Forth box."
Kindly refrain from attributing to me things that I never wrote.
In fact, maybe you should write a macro that replaces all
occurrences of the string "your statement" with "the statement that
you never said but which I wish to put in your mouth."
>For instance recently I said that people shouldn't beat
>on someone for simply observing that Elizabeth had been
>the first to reply to a thread. You said I was wrong
>and I that I should listen to all the other people
>telling me that I was wrong about that.
Not true. You have never provided a shred of evidence that
I ever made such a claim. Go ahead. Quote me as saying
that your "observing that Elizabeth had been the first
to reply to a thread" was wrong. Where is the quote?
(Free clue; This time, after you reply by quoting someone
else, delete that quote and try to find one by *me*.)
>I said I didn't care about how many people told me that
>I was wrong, I was clearly right and that anyone could look
>it up and see that Elizabeth had been the first responder.
>
>I said that you were wrong when you said that I was wrong
>because it was obviously true that Elizabeth had been
>the first poster to the thread.
I never expressed an opinion about whether Elizabeth had
been the first poster to the thread. Ever. And you know it.
>You asked me to look up the URL to prove it.
AGAIN you put words in my mouth!
I asked you to look up the URL to prove THAT I SAID WHAT YOU
CLAIMED THAT I SAID. You not only failed to do that, you didn't
even try! Your URL wasn't a URL to anything written by me!
>you said that I was wrong when I said that Elizabeth had
>been the first the responder in the thread.
Prove it. Prove that I ever wrote such a thing. You keep
stuffing words in my mouth and then knocking down straw men.
Well, this time I am calling you on it.
I HAVE NEVER OFFERED ON OPINION ON WHETHER ELIZABETH WAS THE
FIRST RESPONDER IN THE THREAD. I DON'T EVEN KNOW, NEVER
HAVING CHECKED.
Your claim was:
"[Guy] said that [Jeff] was wrong when [Jeff] said that
Elizabeth had been the first the responder in the thread."
-Jeff Fox
Put up or shut up. You just made a specific claim. Now prove it.
I await your apology.
Counterargument #1: Mobs must have a means of communication
between mob members. Those who end up in arguments with
Jeff Fox (and who somehow manage to not end up with arguments
with most other people) are distributed over a long period
of time and often have no visible connection with each other.
Query: how does someone who posted for a few months several
years ago manage to form a mob with someone who just started
posting?
Counterargument #2: This supposed mob somehow only manages
to end up in arguments with Jeff Fox, never with someone
else. Query: even if the "mob" theory is correct, what is
it about Jeff Fox that makes him the only one the supposed
mob argues with?
Conclusion: The fault is on the "Jeff Fox (who argues with
many people(" end and not on the "many people (who argue with
Jeff Fox and nobody else)" end.
Well, we seem to be edging our way back to the topic
via your focus on my examination of what you have said.
I hope this means that we can have an adult discussion
where you can explain what you meant when you said
that you didn't have any use for C, but use a Linux box,
or where you said that you did the same thing as Mr.
Moore but went on to mention basic and Linux boxes.
> We cannot have a discussion as long as you put words in my
> mouth.
Ok. So you have the floor to talk about something
other than crying about being a little kid bullied
in the schoolyard because someone laughed at a
ridiculous comment that you made about doing the
same thing as Mr. Moore.
> You keep claiming that I wrote things that I never
> wrote. I NEVER SAID THAT I RUN FORTH ON A LINUX BOX.
And I never said that you said that you ran Forth on
a Linux box. I said that I was amused by your comments
about doing the same thing as Mr. Moore in the same
breath as mentioning BASIC and Linux boxes.
I didn't say I understood what you could have possibly
meant. I just said I thought it looked funny. You
have put words in my mouth, as you say, if you are
going to claim that I have ever said, that you run
FORTH ON A LINUX BOX.
I am waitng for you to tell us how you do Forth just
like Mr. Moore. You say that I am not well qualified
to explain what Mr. Moore does, but that you do the
same thing as he. So I am waiting for your explaination.
Now if you put a Linux box down in front of Mr. Moore and
tell him that it is his to use for programming the very
first thing he will to is turn it into a Forth box. He
will say that he wants to have nothing to do with the
C based software or C, and he isn't kidding. So he will
first turn it into a Forth box with no sign of a C
compiler or C based OS and will turn it into something
completely different, something he calls Forth instead.
I have not claimed that you program in C or run Forth
on your Linix box. Maybe the first thing you do is
throw out all the C code after proclaiming that you
don't want anything to do with it, and start with
something that boots directly into Forth. I have
been waiting for you to discuss the subject like
an adult.
> I was
> very, very clear about that. I listed the various systems
> I have use for and the languages I use on them.
You said that you didn't use C but mentioned BASIC and
a Linux box. You didn't really say much more. Most of what
I have read about your programming embedded systems was
in other newsgroups where you seemed to be giving a good
acount of using Forth.
But here, we were discussing your comments that I was
singularly unqualifed to explain Mr. Moore's work and
that you were because you did the same thing as he.
But I wouldn't say that you have been clear yet about
you do the same thing as Mr. Moore when it comes to
programming. You use the word that Mr. Moore coined
a long time ago like a lot of other people. I know
that.
> I use Forth
> on small embedded microcontrollers ("Forth box" if you accept
> "box" as including "aircraft". "robotic assembly line" and
> "barbie doll."
OK. I had that impression. What I questioned was if you
do your development on a Forth box like Mr. Moore, do you
use Forth as the development enviroment or do you generate
Forth code for those embedded systems using mostly C based
software? I don't know. You haven't said whether your
Forth is only Forth like Mr. Moore as you claimed or if
it is mostly other things like what most other people do.
I don't know. You haven't said yet.
> I prefer "Embedded System.") I use PowerBASIC
> on Windows,
But that's quite antithetical to what Mr. Moore calls
Forth.
> with a Lixux box on my LAN that talks to the
But that's quite antithetical to what Mr. Moore calls
Forth. And that was the only real point that I was
making.
I think it was very funny that you claim that this
is the same sort of thing that Mr. Moore does or what
he means when he uses the term Forth to describe his
work.
> Windows box and does the usual things such as surfing the web
> or word processing. I was quite specific about that.
Well, Chuck has been known to surf the web, do email, or
word processing on a PC, even one running Windows. But
he also says that if designing chips wasn't his priority,
and he didn't spend all his programming time on more
serious demanding projects that he would add the code
to do web surfing and email from this Forth only environment.
He will probably get to that after he does the more
serious applications.
Tell me about how you do the same thing as Mr. Moore
as you are only now starting to get into the specifics
of what you do so that people can see just how you
do the same sort of thing as Mr. Moore.
> You
> have no justification in mis-characterizing it as "your earlier
> statement that you do the same thing as Mr. Moore, but you use
> a Linux box instead of Forth box."
You have given me some above, but please, give me more. Defend
your statements like an adult and explain how you do the same
thing as Mr. Moore in this regard. By all means, don't make
me guess.
> Kindly refrain from attributing to me things that I never wrote.
> In fact, maybe you should write a macro that replaces all
> occurrences of the string "your statement" with "the statement that
> you never said but which I wish to put in your mouth."
Act like an adult and tell us how you throw out all the C
code at the start like Mr. Moore and run your development
enviroment using nothing but Forth. Maybe I did guess wrong
in the absence of more than a mention of BASIC and Linux by
you.
>
> >For instance recently I said that people shouldn't beat
> >on someone for simply observing that Elizabeth had been
> >the first to reply to a thread. You said I was wrong
> >and I that I should listen to all the other people
> >telling me that I was wrong about that.
>
> Not true. You have never provided a shred of evidence that
> I ever made such a claim. Go ahead. Quote me as saying
> that your "observing that Elizabeth had been the first
> to reply to a thread" was wrong. Where is the quote?
> (Free clue; This time, after you reply by quoting someone
> else, delete that quote and try to find one by *me*.)
I don't want to play the 'quote me' game. All I said was
that you jumped in to tell me that I was wrong after I
said that Elizabeth was the first to respond to the thread
and that no one should be attacked for making that simple
observation.
Now when you jumped in at that point and said that I was
wrong and that I since there was a group of people telling
me that I was wrong that I should listen to them.
Now I will admit, that I could have been wrong in attributing
what you had said to what I had said previously. I might have
been wrong in putting what you said, about me being wrong,
in to the context of what I had said in that thread.
Maybe you were talknig about me being wrong on some completely
different subject. And I assumed that when you jumped in to
proclaim that I was wrong, that you were talking about what
I was talking about.
If you were saying that I was wrong about some subject
other than the one being discussed you weren't clear about
what you knew I was wrong about. So then we went into the
you were wrong when you said that was wrong when I said
that you were wrong and I was tracing back to the thread
where I said that Elizabeth was the first responder and
you jumped in saying that I was wrong.
So if you want to reopen that discussion like an adult,
fine. What was it that I was 'wrong' about if it wasn't
that Elizabeth was the first responder?
Was I wrong that people shouldn't be attacked for making
the true observation that Elizabeth was the first responder?
Seriously, that would be the next most logical interpretation
of your statement that I was wrong after I made the statement
that no one should be attacked for simply observing that
Elizabeth had been the first to respond. If you meant something
completely different than either of those interpretations of
how I was wrong you haven't been clear about that.
> >I said I didn't care about how many people told me that
> >I was wrong, I was clearly right and that anyone could look
> >it up and see that Elizabeth had been the first responder.
> >
> >I said that you were wrong when you said that I was wrong
> >because it was obviously true that Elizabeth had been
> >the first poster to the thread.
>
> I never expressed an opinion about whether Elizabeth had
> been the first poster to the thread. Ever. And you know it.
No. I don't know that. So when I made that statement and
you jumped into the thread to proclaim that I was wrong
what were you talking about?
Seriously.
> >You asked me to look up the URL to prove it.
>
> AGAIN you put words in my mouth!
> I asked you to look up the URL to prove THAT I SAID WHAT YOU
> CLAIMED THAT I SAID.
Can we agree that you said that I was wrong?
What was I wrong about if not what I had been talking
about in that thread? Seriously.
> You not only failed to do that, you didn't
> even try! Your URL wasn't a URL to anything written by me!
I still can. But if that wasn't what you were talking
about all this time PLEASE explain what in the hell you
were talking about.
> >you said that I was wrong when I said that Elizabeth had
> >been the first the responder in the thread.
>
> Prove it. Prove that I ever wrote such a thing. You keep
> stuffing words in my mouth and then knocking down straw men.
> Well, this time I am calling you on it.
Rather than being sidetracked by quoting you on something
that you say I missinterpreted to prove that you said it,
why don't you just say what you meant to say in the first
place. What was it what I was wrong about when you jumped
in in the first place to proclaim that I was wrong.
> I HAVE NEVER OFFERED ON OPINION ON WHETHER ELIZABETH WAS THE
> FIRST RESPONDER IN THE THREAD. I DON'T EVEN KNOW, NEVER
> HAVING CHECKED.
>
> Your claim was:
>
> "[Guy] said that [Jeff] was wrong when [Jeff] said that
> Elizabeth had been the first the responder in the thread."
> -Jeff Fox
>
> Put up or shut up. You just made a specific claim. Now prove it.
>
> I await your apology.
I appologize for thinking that you were talking about what
I had said in that thread when you jumped in and said that
I was wrong.
Now if you can explain what it was that you were talking
about when you commented that I was wrong right after I
had made the comments about how people should not attack
anyone for simply observing that Elizabeth had been the first responder
in the thread.
You have an invitation to explain what you were talking
about when you jumped in. If it wasn' what I had been
talking about in that thread then what were you talking
about? Let's discuss that instead of how I mistakenly
interpreted what you were saying to have refered to
what I had said in that thread.
So there are really two adult requests for you:
1. Please explain how you do the same sort of thing
as Mr. Moore and how a Linux box or BASIC fits
into that picture just as it doesn't for Mr. Moore.
2. Please explain what you were talking about when
I mistakenly thought that you were talking about what
I had previously said in the thread where I made the
comment about how people shouldn't be attacked and
you jumped in saying that I was wrong about something
or another that you weren't clear about.
Best Wishes
I have noted before that when I had said that
sometimes mods form to shout down anyone with an
unpopular message in c.l.f. I have also noted that
some people tell me that I am wrong, that it doesn't
happen, that they haven't seen it happen.
But I often expect those same people to describe
what happened as, well there was this big group
of people fighting with one person. So I just
followed what was majority approved socially acceptable
behavior at the time and joined the crowd and tried
to get in a few blows myself.
Afterwards when people asked if a mob had formed
I said that I hadn't seen it happen. ;-)
Yes, you are right about a bunch of people wanting
to fight with me because they say that I am not
explaining what Chuck Moore says about Forth in a
way that makes what say about Forth look good and
that they can do a better job of explaining what
Mr. Moore does. And every year a couple of new
people feel a need to join usually first only
at the back of the crowd and then sometimes later
find themselves in front of the crowd. And sometimes
they come away crying that even though they thought
they were safe behind a mod that they got bullied
in the process. Poor babies. ;-)
If they don't want the big kids to laugh at their silly
comments they should stick to the sandbox and stick to
talk about dolls and such.
> Counterargument #1: Mobs must have a means of communication
> between mob members. Those who end up in arguments with
> Jeff Fox (and who somehow manage to not end up with arguments
> with most other people) are distributed over a long period
> of time and often have no visible connection with each other.
No visible connection other than complaining that what
I said that Mr. Moore said about Forth didn't praise what they
do sufficiently to allow it to stand. The thing they have
in common is that they think they are better experts at
explaining how they got it right, and either Moore got it
wrong, or Moore agrees with them and Fox got it wrong.
> Counterargument #2: This supposed mob somehow only manages
> to end up in arguments with Jeff Fox,
I get a lot of email from people who say that they would
never put up with the mob attacks in c.l.f so they don't
read it, they don't post and they think of it as a bad
joke. They say it is hopeless and that it is silly of
me to be willing to put up with such attacks.
But I am not the only person who defends these positions.
I just seem to be the only person willing to stand up to
a mob in c.l.f on these subjects.
There are a lot of people who also hate Forth who don't
have much in common other than that. I sometimes argue
with them too. But everyone who argues with me also
argues with other people on other subjects and sometimes
on the same subjects that I talk about.
And sometimes I aruge with the people who say that they
agree with me, because I think they are offering very poor
arguments while claiming that they argree with me. I know
that I lose some allies that way. But with allies like
Chuck Moore I really don't care that much about the
mobs of people who just proclaim that he is wrong and
they know better.
> never with someone else.
Do you mean that I never argue with the people with
whom I never argue? It's true. Or do you mean that
I never argue with the null set of people with whom
I never argue. That's pretty close too. ;-)
> Query: even if the "mob" theory is correct, what is
> it about Jeff Fox that makes him the only one the supposed
> mob argues with?
Answer: I am not. But the mob likes to single me out and
claim that I am alone. They single out Mr. Moore even more,
but he only exposes his back to the cowards and doesn't
confront the mobs face to face any more, except sometimes
at FIG meetings. ;-)
> Conclusion: The fault is on the "Jeff Fox (who argues with
> many people(" end and not on the "many people (who argue with
> Jeff Fox and nobody else)" end.
I think you give me too much credit. While I can accept a
lot of fault for a lot of things, I didn't invent Forth,
I didn't create the gulf between those who say Forth and
do C and those who say Forth and mean Forth and only
Forth like Mr. Moore. I accept the fault for talking about
such things.
As you say, people think of what Mr. Moore says about his
Forth and how he likes it and thinks it is good, and wishes
that more people did what he thinks of as good Forth as
an attack on what they do. So when I quote Mr. Moore as
saying that Forth is what people do who call what they do
Forth, and that he wishes that Forth was what he thinks
they should do if they they are going to use the term
Forth people naturally see this as an attack by me against
them.
And since no one else provides the transcripts of Mr.
Moore's presentations, or reports what he says in
interviews like Leo Brodie once did, that means that I
have to accept the fact that it is my fault for
arguing with people who claim that they know better
than Mr. Moore, that they do the same thing that he
does except right, or that say he is wrong in the way
he uses words like Forth, stack, word, file, block,
source, compiler, etc. to explain what he means by the
word Forth.
OK Guy, I answered your questions. Can you now
answer mine?
Best Wishes
Jeff Fox wrote:
>you can explain what you meant when you said
>that you didn't have any use for C, but use a Linux box,
I never linked the two. You did. They have no connection,
just as having no use for a hammer has no connection to
living in a wood-frame house.
>or where you said that you did the same thing as Mr.
>Moore but went on to mention basic and Linux boxes.
Chronology:
I mentioned small embedded systems and doing the same
sort of things Mr. Moore does (embedded systems).
Then I mentioned PowerBASIC and useful productivity
utilities and Windows (not Linux) boxes.
Then I mentioned accessing Windows boxes with my
Linux box.
You connected Forth with Linux. I never did,
>> We cannot have a discussion as long as you put words in my
>> mouth.
>(insult deleted)
>I said that I was amused by your comments
>about doing the same thing as Mr. Moore in the same
>breath as mentioning BASIC and Linux boxes.
I listed all the computer languages and operating systems
that I use, and clearly labeled the list. "In the same
breath" is a mis-characterization that you are using to attempt
to link the first item on the list with the last.
>I am waiting for you to tell us how you do Forth just
>like Mr. Moore. You say that I am not well qualified
>to explain what Mr. Moore does, but that you do the
>same thing as he. So I am waiting for your explanation.
Embedded systems.
>Now if you put a Linux box down in front of Mr. Moore and
>tell him that it is his to use for programming the very
>first thing he will to is turn it into a Forth box.
I have no idea why you insist on talking about this. I don't
use Forth on Linux. Linux already does what I want, which
is word processing and Internet access.
>He will say that he wants to have nothing to do with the
>C based software or C, and he isn't kidding.
I have no idea why you insist on talking about this. I don't
use C. Other folks like it, but it doesn't meet my needs.
Perhaps you could lecture me about Ada, just to give us all
a bit of variety.
>I have not claimed that you program in C or run Forth
>on your Linux box. Maybe the first thing you do is
>throw out all the C code after proclaiming that you
>don't want anything to do with it, and start with
>something that boots directly into Forth.
I just looked at the embedded system that I am currently
working on, and neither the 1K of ROM or the 128 bytes of
RAM seem to have Linux or C anywhere on them. I have no
idea why you are having so much trouble telling the
difference between a desktop PC and an embedded system.
Thank god I didn't mention that I ride a bicycle!
>> very, very clear about that. I listed the various systems
>> I have use for and the languages I use on them.
>
>You said that you didn't use C but mentioned BASIC and
>a Linux box. You didn't really say much more. Most of what
>I have read about your programming embedded systems was
>in other newsgroups where you seemed to be giving a good
>account of using Forth.
Yup. Forth is very very good at embedded systems. I don't
know how good it is at desktop PCs; I just buy the OS and
load it and it works fine.
>But here, we were discussing your comments that I was
>singularly unqualified to explain Mr. Moore's work
...because of your attitude and behavior patterns.
I have no doubts about your technical qualifications.
I have serious doubts about your ability to communicate.
>and that you were
Another fib. Go ahead. Post a quote where I ever even hinted
that I was qualified to explain Mr. Moore's work. You keep
claiming that I wrote things that I never wrote, and then failing
to document your claims. This is why I have serious doubts about
your ability to communicate. You imagine things that are not
there. You do a bit of hand-waving and sling a few insults when
asked to prove that the things you imagined were ever actually
written.
>because you did the same thing as he.
Embedded systems, to be precise.
>But I wouldn't say that you have been clear yet about
>you do the same thing as Mr. Moore when it comes to
>programming.
I program embedded systems (and I do other things).
Chuck Moore programs embedded systems (and he does other things).
The "same thing as Mr. Moore does" I spoke of is programming
embedded systems.
Looking at his resume ( http://www.colorforth.com/resume.html )
I see that we also both design hardware (Board design, Layout,
testing) and have both worked in robotics.
I see one notable difference, though. Chuck Moore translates
Linux drivers into Forth. This seems to contradict your claim
that "Now if you put a Linux box down in front of Mr. Moore and
tell him that it is his to use for programming the very first
thing he will to is turn it into a Forth box." Translating
Linux drivers into Forth is an example of programming for Linux.
If he simply turned the Linux box into a Forth box as you claim
he would be unable to run the Linux drivers. I rather suspect
that Mr. Moore has two computers - one running Colorforth
(which requires no OS) and one running Linux. Or perhaps (this
is speculation) he runs XcolorForth or GLcolorForth when
translating Linux drivers into Forth.
>> I use Forth
>> on small embedded microcontrollers ("Forth box" if you accept
>> "box" as including "aircraft". "robotic assembly line" and
>> "Barbie doll."
>
>OK. I had that impression. What I questioned was if you
>do your development on a Forth box like Mr. Moore, do you
>use Forth as the development environment or do you generate
>Forth code for those embedded systems using mostly C based
>software?
Neither. I do my development using an ASCII text editor
At the risk of feeding your obsession about what OS I use
- as if it was somehow more important than what car I
drive - I can edit text under DOS, OS/2, Linux, QNX,
PalmOS, my cellphone, my Commodore 128, My C128 in CP/M
mode (probably the one I use most often to edit text), my
TI-84 calculator or even on an old web appliance that
never made it into production.
The text goes via an RS-232 cable to a box that is running
a Forth program that has as it's input an RS-232 text stream
and as it's output an EPROM and a file on a floppy suitable
for sending to the fab house to make masked ROM parts.
>I don't know. You haven't said whether your
>Forth is only Forth like Mr. Moore as you claimed or if
>it is mostly other things like what most other people do.
>I don't know. You haven't said yet.
Nor do I intend to. I have seen you go off on too many
people about what Forth is and isn't. It's one of the main
reasons why you are singularly unqualified to explain Mr.
Moore's work.
>> I prefer "Embedded System.") I use PowerBASIC
>> on Windows,
>
>But that's quite antithetical to what Mr. Moore calls
>Forth.
No! Really? PowerBASIC ISN'T Forth? and here I was
thinking that they are the exact same thing, and that Bob
Zale and Chuck Moore are the same person. Who would have
guessed that PowerBASIC isn't Forth?
>> with a Linux box on my LAN that talks to the
>
>But that's quite antithetical to what Mr. Moore calls
>Forth. And that was the only real point that I was
>making.
No! Really? A linux box on a LAN isn't Forth *either*???
Have you alerted the press about this amazing discovery?
>I think it was very funny that you claim that this
>is the same sort of thing that Mr. Moore does or what
>he means when he uses the term Forth to describe his
>work.
In the English language, the syntax of the above is that
"this" refers to the previous sentences. Again I demand
evidence that I made any such claim.
>> Windows box and does the usual things such as surfing the web
>> or word processing. I was quite specific about that.
>Well, Chuck has been known to surf the web, do email, or
>word processing on a PC, even one running Windows.
Another aspect that I share with him. Who would have
guessed that we do so many things the same way?
>Tell me about how you do the same thing as Mr. Moore
Embedded systems. I design and program embedded systems
Chuck Moore designs and programs embedded systems. We both
design and program embedded systems. Embedded systems
designing and programming are the things that we both do.
Embeddedsystemsembeddedsystemsembeddedsystemsembeddedsystems.
Did I mention that designing and programming embedded systems
is the thing that we both do? What part of "we both design
and program embedded systems" are you having trouble
understanding? Did you miss the dozen posts where I already
told you that embedded systems design and programming are the
things that we both do? Why do you keep asking the same
question? Do you think the answer (We both design and program
embedded systems) will change?
>as you are only now starting to get into the specifics
>of what you do so that people can see just how you
>do the same sort of thing as Mr. Moore.
Here is another fine example of why you are singularly unqualified
to explain Mr. Moore's work. The above is combative and tells me
that you don't give a rat's ass about explaining Mr. Moore's work,
because you get too much of an ego boost attacking people. You
should resign and give the job to someone who is civil, who can
parse the English language, and who provides evidence when asked
for it.
>You have given me some above, but please, give me more. Defend
>your statements like an adult and explain how you do the same
>thing as Mr. Moore in this regard. By all means, don't make
>me guess.
You don't need me to explain anything. You are tooting along
just fine making things up and pretending that I wrote them.
Maybe you should just write my posts for me.
>> Kindly refrain from attributing to me things that I never wrote.
>> In fact, maybe you should write a macro that replaces all
>> occurrences of the string "your statement" with "the statement that
>> you never said but which I wish to put in your mouth."
>
>Act like an adult and tell us how you throw out all the C
Evasion noted. You attributing to me things that I never wrote.
I demand that you document these claims or admit that you lied.
>> >For instance recently I said that people shouldn't beat
>> >on someone for simply observing that Elizabeth had been
>> >the first to reply to a thread. You said I was wrong
>> >and I that I should listen to all the other people
>> >telling me that I was wrong about that.
>>
>> Not true. You have never provided a shred of evidence that
>> I ever made such a claim. Go ahead. Quote me as saying
>> that your "observing that Elizabeth had been the first
>> to reply to a thread" was wrong. Where is the quote?
>> (Free clue; This time, after you reply by quoting someone
>> else, delete that quote and try to find one by *me*.)
>
>I don't want to play the 'quote me' game.
Evasion noted.
>All I said was that you jumped in to tell me that I was wrong
>after I said that Elizabeth was the first to respond to the
>thread
Your claim was:
"[Guy] said that [Jeff] was wrong when [Jeff] said that
Elizabeth had been the first the responder in the thread."
-Jeff Fox
If you are now only claiming that I said that you were wrong
about something else, I agree. I have said that you were
wrong about many things. But I do note that you are shifting
your story.
>Now when you jumped in at that point and said that I was
>wrong
Your claim was:
"[Guy] said that [Jeff] was wrong when [Jeff] said that
Elizabeth had been the first the responder in the thread."
-Jeff Fox
>and that I since there was a group of people telling
>me that I was wrong
About something other than your statement.
>that I should listen to them.
Yes. You should.
>Now I will admit, that I could have been wrong in attributing
>what you had said to what I had said previously. I might have
>been wrong in putting what you said, about me being wrong,
>in to the context of what I had said in that thread.
Was that an apology?
>Maybe you were talking about me being wrong on some completely
>different subject. And I assumed that when you jumped in to
>proclaim that I was wrong, that you were talking about what
>I was talking about.
Key point: you continued to defend your assumption in the face
of being told dozens of times that it was false. You really
should go back and review the thread; it may give you some
insight as to why you end up in so many arguments with so
many people.
>If you were saying that I was wrong about some subject
>other than the one being discussed you weren't clear about
>what you knew I was wrong about.
Bullshit. I explained it to you a bunch of times and so dis
some others. You just refused to listen.
>where I said that Elizabeth was the first responder and
>you jumped in saying that I was wrong.
Nope. Never happened. You made it up.
>So if you want to reopen that discussion like an adult,
>fine. What was it that I was 'wrong' about if it wasn't
>that Elizabeth was the first responder?
A cat, having once sat upon a hot stove, is reluctant to sit
upon a cold one.
>Was I wrong that people shouldn't be attacked for making
>the true observation that Elizabeth was the first responder?
You, having just reviewed the entire thread looking for the
smoking gun quote to devastate me with (I know you did), are
well aware of what you were criticised for. I will not
attempt to repeat criticisms by others, and I think that my
criticisms have been made clear in this post already.
>> I never expressed an opinion about whether Elizabeth had
>> been the first poster to the thread. Ever. And you know it.
>
>No. I don't know that.
Yes you do, I told you dozens of times.
>So when I made that statement and
>you jumped into the thread to proclaim that I was wrong
>what were you talking about?
>
>Seriously.
I decline. Read what I wrote originally if you want to know,
and feel free to extract quotes and ask questions about them.
>> >You asked me to look up the URL to prove it.
>>
>> AGAIN you put words in my mouth!
>> I asked you to look up the URL to prove THAT I SAID WHAT YOU
>> CLAIMED THAT I SAID.
>
>Can we agree that you said that I was wrong?
About what? I have said that you were wrong about many things.
Your claim was:
"[Guy] said that [Jeff] was wrong when [Jeff] said that
Elizabeth had been the first the responder in the thread."
-Jeff Fox
Did I say that or didn't I?
>> >you said that I was wrong when I said that Elizabeth had
>> >been the first the responder in the thread.
>>
>> Prove it. Prove that I ever wrote such a thing. You keep
>> stuffing words in my mouth and then knocking down straw men.
>> Well, this time I am calling you on it.
>
>Rather than being sidetracked by quoting you on something
>that you say I misinterpreted to prove that you said it,
Evasion noted.
>why don't you just say what you meant to say in the first
>place. What was it what I was wrong about when you jumped
>in in the first place to proclaim that I was wrong.
Request denied. I have no confidence that you will parse
anything I say correctly.
>> I HAVE NEVER OFFERED ON OPINION ON WHETHER ELIZABETH WAS THE
>> FIRST RESPONDER IN THE THREAD. I DON'T EVEN KNOW, NEVER
>> HAVING CHECKED.
>>
>> Your claim was:
>>
>> "[Guy] said that [Jeff] was wrong when [Jeff] said that
>> Elizabeth had been the first the responder in the thread."
>> -Jeff Fox
>>
>> Put up or shut up. You just made a specific claim. Now prove it.
>>
>> I await your apology.
>
>I appologize for thinking that you were talking about what
>I had said in that thread when you jumped in and said that
>I was wrong.
I accept your apology, and I will never mention this again.
Please, when I say that I didn't say something that you claimed
that I said. please listen instead of digging in your heels.
>You have an invitation to explain what you were talking
>about when you jumped in.
I decline the invitation.
>So there are really two adult requests for you:
>
>1. Please explain how you do the same sort of thing
> as Mr. Moore
Embedded systems.
> and how a Linux box or BASIC fits
> into that picture
As part of a list, clearly labeled as being a list of all
the programming languages and operating systems I use, posted
in the context of stating that I don't use C.
>just as it doesn't for Mr. Moore.
Unrelated. The only link is in your mind.
>2. Please explain what you were talking about when
> I mistakenly thought that you were talking about what
> I had previously said in the thread where I made the
> comment about how people shouldn't be attacked and
> you jumped in saying that I was wrong about something
> or another that you weren't clear about.
Request denied. You got it wrong last time and became quite
abusive when called on it, so I have no confidence that you
will get it right if I repeat it.
Jeff Fox wrote:
>I get a lot of email from people who say that they would
>never put up with the mob attacks in c.l.f so they don't
>read it, they don't post and they think of it as a bad
>joke. They say it is hopeless and that it is silly of
>me to be willing to put up with such attacks.
Yes, the lurkers support me in email,
And they're sure to back up what I post,
But they're far too scared to admit it,
Since the flamers here char them to toast...
The lurkers support me in email,
And I *do* know about netiquette,
It's Forth I explain, and that requies flame.
You should see all the fan mail I get...
Yes, the lurkers support me in email
With gusto and vigour and vim
And so does the Pope and Bob Dobbs
And my invisible weasel called Jim;
I'm amazed at this Internet thingie,
I've been typing so hard I am limp.
But I've only just learned to parse English
So of course I must act like a chimp.
Yes, the lurkers support me in email,
And the Warlords are marching as well,
They will defend me from this angry mob
I've got personal mails - I can tell;
They're all writing to net-abuse.usenet
To complain dodn't you see.
It's never my fault, my mind is a vault;
There's no introspection in me!
Bad analogy. A hammer is just one tool used to build a
house. Plus many homes are built using nail guns.
Linux, on the other hand, is built almost entirely out
of C code. A more apt analogy would be you saying "I
have no use for lumber" but you live in a wood framed
house. To further the analogy you might say "I
completely understand Bedouins who live in tents
because I go camping sometimes." From what you've
said you use Linux for things Chuck uses Forth to do.
He doesn't just use Forth for "embedded systems".
He runs a Forth OS on the same type of machine you
use as a Linux box.
So if you can back away from your private flame war
for a minute you might be able to see Jeff's point.
Chuck sees files as "useless" because he typically
doesn't put himself in a position where they are
needed. It would be like someone who live in a
house made entirely from recylled plastic saying
that termite control isn't needed. That doesn't
mean termite control is NEVER needed, just that
it's dictated by the choice of building material.
Regards,
John M. Drake
> Chuck Moore's actual statement contained qualifications. One was
> explicit, others implied from the context of the interview:
> "If you can realize that this is all unnecessary you save one hundred
> percent of the code that went into writing the file system. Files are
not
> a big part of any typical application but it is a singularly useless
> part."
> Note that he said a TYPICAL application, not all. This suggests that
on
> any given "atypical" application may be exempt from the declaration.
It also suggests that YMMV. That is, your typical
application might be Mr. Moore's atypical application.
Much of what I do on a computer is entering or
retrieving information from some form of database --
words from a word database for lectures, works
in progress, tests, etc., student names and
marks for gradesheets, cvs or Excel format data
for manipulation and analysis.
But if I was putting together an application to
generate and display an evolutionary game theory
scenario, especially if it was for student use
over the intranet, filing might be an entirely
secondary consideration. If I had a block
Forth with a "FREE-BLOCK?" word, that would
suffice.
jmdra...@yahoo.com wrote:
>From what you've said you use Linux for things Chuck uses Forth to do.
Nonsense. I never said any such thing.
>Chuck sees files as "useless" because he typically
>doesn't put himself in a position where they are
>needed.
Your point being? I also seesfiles as "useless" for my
applications because I never put myself in a position
where they are needed.
I suggest that you attempt to address things that I actually
write rather than the straw men that Jeff sets up.
I don't think he said exactly that, but what he
meant wasn't clear and I asked for some explanation.
> He doesn't just use Forth for "embedded systems".
> He runs a Forth OS on the same type of machine you
> use as a Linux box.
Maybe, I haven't heard exactly what Mr. Macon
meant. Clearly, when Chuck says that he has
nothing to do with C code he means that step
one would be to turn a Linux box into a Forth
box by getting all that C code out of his way.
Maybe Mr. Macon means something similar when
he mentions a Linux box but says that he
has nothing to do with C code like Mr. Moore.
> So if you can back away from your private flame war
> for a minute you might be able to see Jeff's point.
What you are calling "Jeff's point" has also
become your attempt to explain what Mr. Moore
means when he makes comments about what he has
been doing for a number of years.
> Chuck sees files as "useless" because he typically
> doesn't put himself in a position where they are
> needed.
Yes. He calls that Forth, he thinks of applications
as cooperating like cooperative multitasking programs
in a Forth environment and thus simply don't have
to use files for everything like in environments
where the basic idea is that everything should be a
file.
> It would be like someone who live in a
> house made entirely from recylled plastic saying
> that termite control isn't needed.
It would be like someone inventered the term
plastichouse and when asked to explain it said
that termite control is entirely unecessary.
Certainly no one who lives in wooden houses
would take that to mean that he had been talking
about something other than the plastichouse that
he was asked to describe.
> That doesn't
> mean termite control is NEVER needed, just that
> it's dictated by the choice of building material.
Of course. No one who gives it any thought whatsoever
would think that NEVER could be taken out of the
context of plastichouse. And it is exactly the
same situation when Mr. Moore is asked to comment
on how he does Forth.
But I kind of hate to agree with you. But I think
you have a right to explain it, it becomes your
argument, you can try to explain how stuff should
be not be taken out of context. Maybe you will
have more luck with it than I.
Best Wishes
OK. Sorry. I completely misunderstood. I started out
taking you seriously.
After this last post I now realize that you are completely
clueless as to what Mr. Moore does. You talk about
translating Linix drivers into Forth when all Chuck did
was read a Linux driver at some time in the past to
understand some poorly documented PC hardware device.
Your statements that Chuck is thus really doing Linux
programming are ludicrous. Your comments that the
fact the he couldn't run the Linux drivers that he
mentioned if what I said about his development enviroment
was true proves that you are clueless. Your guess that
he uses Linux box is clueless.
I said that he would reformat the damn thing, get rid
of all the C code. So yes, that proves that he would
not be able to run the Linux drivers after he reformatted
the hard disk and got rid of all traces of Linux and C
code. ;-) Clueless.
I agree that I cannot 'teach' anything in a place like
c.l.f where people who don't want other people to hear the
truth about what Mr. Moore is doing and are willing to
make an incredible amount of noise and offer absolutely
absurd clueless explainations for what he does.
So thanks again for making it clear to me that I shouldn't
have taken anything that you said seriously in the first
place. Sorry, my mistake. I'll try to learn from the
experience.
Best Wishes
Jeff Fox wrote:
>After this last post I now realize that you are completely
>clueless as to what Mr. Moore does. You talk about
>translating Linix drivers into Forth when all Chuck did
>was read a Linux driver at some time in the past to
>understand some poorly documented PC hardware device.
So you don't like my talk about translating Linux drivers
into Forth? You think that anyone who would use such a
phrase to describe Mr Moore's work must be clueless?
Gotcha.
The phrase "Translating Linux drivers into Forth" was
copied word-for-word from Mr. Moore's resume at
[ http://www.colorforth.com/resume.html ]. If you don't
like that phrase as a description of Mr. Moore's work,
I suggest that you take it up with him. He is the one
who choose that phrase.
I don't believe that "all Chuck did was read a Linux
driver at some time in the past to understand some poorly
documented PC hardware device." I rather suspect that
Chuck Moore became a world-class expert in C, Linux,
and various other languages/operating systems in the
process of creating a programming language and OS that
surpasses them all. This is pure speculation on my part,
of course, but I would put money on it being a far more
accurate description than yours is.
You appear to be so obsessed with the thrill of flaming
others that Chuck Moore's own words become evidence of
cluelessness in your eyes when the target of your rage
uses them.
Now that you have embarrased yourself, I suggest that you
drop the insults and have a civil conversation on the topic
at hand. I predict that further maladroit attempts to flame
others will turn out badly for you.
Really? So what DO you use your Linux box for? My understanding is
that Chuck uses a Forth OS as his primary development environment.
Jeff talks about ColorForth being run on Pentiums with 500 megs of
RAM. Most people would run either Windows or Linux on such a
machine.
> >Chuck sees files as "useless" because he typically
> >doesn't put himself in a position where they are
> >needed.
>
> Your point being? I also seesfiles as "useless" for my
> applications because I never put myself in a position
> where they are needed.
Did you mention programming in PowerBasic sometimes or was
that someone else? If so, my appologies. If not then I
can't see how you can say you're never in a position where
files are needed. Maybe you mean "I never put myself
in a position where they are needed when I'm using Forth"?
Anyway, if you agree that they are "useless" then what
are you arguing about? It sounds like everyone agrees
that files aren't needed unless using them is a
predetermined requirement. That's different from saying
they are "evil". They originator of this thread said he
was using a "literary device" so this whole thread stem
is rather surreal anyway.
> I suggest that you attempt to address things that I actually
> write rather than the straw men that Jeff sets up.
You actually wrote that you use Linux, at least that's what
I remember. There's nothing wrong with that and I don't
see why you're being defensive about it. You mentioned
using Forth, but from what I gathered you weren't using
it as your sole development operating system. Maybe I
got you confused with someone else. If your not the guy
that was talking about PowerBasic my appologies. But
I don't think I got that wrong. Here's what you wrote.
=======================================================
For embeddes systm with tens of bytes of RAM and hundreds
of bytes of code, pure assembly language, without even a
macro.
For embeddes systm with hundreds of bytes of RAM and
thousands of bytes of code, Forth. (Not ANS Forth or any
commercial or free Forths, but a custom languge that has
only what I need for *my* applications.
For all those little programs that make life easy,
PowerBASIC (I actually run it on a dedicated Windows
machine and connect to it from my Linux box to use
the programs; that's how much I lile it *for the kinds
of things I want to do.*
=======================================================
So according to what you wrote you DO use PowerBasic
which means you do actually use files. Again that's
fine. Nothing wrong with that. I've never heard of
Chuck writing PowerBASIC programs to do anything, nor
have I heard of him using a Linux box to connect to
a dedicated Windows box to run little programs that
make life easy. That's why I made the "camping" vs.
"Bedouin tent dweller" analogy. I'm not trying to
nitpick here. Really I'm not. It sounds like you,
Chuck and Jeff agree on the point that if you can
completely control the environment you don't need
to use files. If you can't completely control the
environment (customer requirements dictate files,
or you just find you can get a particular job done
quicker in PowerBasic) then files become necessary.
Anyway, this is my last post in this thread unless
it actually becomes interesting.
Regards,
John M. Drake
So you are still claiming that you have no files at
all in your mysterious unspecified development enviroment?
I have my doubts. I don't believe that you have no
files in your development enviromentment where you do
what you call Forth. And after all, that's all we
have been talking about, well that's all I have been
talking about.
> I suggest that you attempt to address things that I actually
> write rather than the straw men that Jeff sets up.
For a while that's all you have been talking about. I think
it is proof that you are afraid to answer people's questions
about your mysterious Forth development enviroment because
you know that they will show that you haven't been being
very truthful about the details. Prove me wrong, talk about
your file-less development environment instead of just
talking about me.
Best Wishes
You have a correct point but you've applied it incorrectly. I would
submit to you that it would be possible to build a computer system
that did all of the things you've mentioned without using files or
some other abstraction mechanism. (As Guy Macon pointed out PalmOS
doesn't use files and people are doing more and more sophisticated
things with their Palms these days.) But here's the catch. The
system would have to be written completely either by ONE programmer
or by a small team of highly competent programmers that cooperated
very well. All of those applications that you are running on
whatever platform you're running it own were most likely touched
by hundreds of programmers (at least). While C was most likely
the main language in use, other languages such as Visual Basic,
Perl, Python, Java ect. could very well be in the mix.
> Mr. Moore's design principles are absolutely right-on when he talks
> about the kind of specific, dedicated systems he works on. But they
> start to make less sense when they are applied to things outside his
> domain. He can't take his experience in embedded systems and
> specific-purpose and think it necessarily applies to general-purpose
> systems. It's two different worlds, and the problem is that many
people
> don't appreciate the differences.
I disagree. This type of work has been done to build "general-purpose"
systems before. (Or perhaps we need to define "general purpose").
Indeed Forth INC's history shows what I would call "general-purpose"
work being done along these lines. But if by "general-purpose" you
mean "able to compile and run a 10,000 line C program" then you're
correct.
> > Like many other things, it is something that he can avoid, because
by
> > choosing not have his programs run in a cooperative environment,
with
> > early binding of safe data exchange, he can avoid all that
> > complication that other people see as necessary in their OS world
and
> > which Chuck sees as uncessary in his Forth os world.
>
> The "complication" is necessary in the "OS world" because people
aren't
> dedicating their systems to one specific function.
The issue is not whether or not the computer is dedicated to one
specific function but whether or not the computer is dedicated to
one specific programming language/style.
Regards,
John M. Drake
jmdra...@yahoo.com wrote:
>Guy Macon wrote:
>
>> jmdra...@yahoo.com wrote:
>>
>> >From what you've said you use Linux for things Chuck uses
>> >Forth to do.
>>
>> Nonsense. I never said any such thing.
>
>Really? So what DO you use your Linux box for?
Surfing the web, reading email, FTP, newsgroups, occasional text
editing if I happen to be on the Linux box when I feel a need to
edit text.
Another Linux box (a 486) is a dedicated print server, another
is running FreeSCO. Those have no monitors or keyboards, and
the FreeSCO box has no hard disk.
I would use my Linux box to program small utilities if there
was a PowerBASIC for Linux, but alas I have to run PowerBASIC
on a windows box. I do not use Forth on Linux or Windows,
but that may change someday if I get time to play with some of
the Forths I have downloaded.
Chuck Moore uses Forth to do many, many things. I use Forth to do
one thing, but it's one of the things that Chuck moore uses it for;
very small microcontroller-based embedded systems.
>My understanding is that Chuck uses a Forth OS as his primary
>development environment.
I have not described my development environment, nor do I intend
to, after seeing my desciption of my target environment be morphed
from a 4-bit or 8-bit microcontroller inside a toy into something
I never described; a PC running Linux.
>> Your point being? I also see files as "useless" for my
>> applications because I never put myself in a position
>> where they are needed.
>
>Did you mention programming in PowerBasic sometimes or was
>that someone else? If so, my appologies. If not then I
>can't see how you can say you're never in a position where
>files are needed.
Ah I see that I have been unclear. I descibed several things;
I descibed my Linux box. I don't consider that "my application."
I didn't design it or write the code in it. My applications are
all embedded systems, and they run tiny programs from ROM.
I described my Windows box. I write simple utilities for my own
use in PowerBASIC, but I don't distribute them, and they aren't
what I meant when I wrote "My applications." I can see how my
use of the term could be confusing (especially when everything
I write is twisted by our resident flamer), but I didn't mean
"everything I use a computer for." I don't think Chuck Moore
meant his no use for files comments to apply to everything that
he uses a computer for either. In fact I know he didn't; he has
a website that is file based.
I described my application; embedded systems.
>Maybe you mean "I never put myself in a position where they
>are needed when I'm using Forth"?
I never put myself in a position where they are needed because
I never put myself in a position where I am designing anything
but very small microcontroller-based embedded systems.
>> I suggest that you attempt to address things that I actually
>> write rather than the straw men that Jeff sets up.
>
>You actually wrote that you use Linux, at least that's what
>I remember.
Jeff Fox says that Chuck Moore uses Linux to surf the web.
>You mentioned using Forth, but from what I gathered you
>weren't using it as your sole development operating system.
I have not described my development system. Nor will I,
having wasted so much time repeating again and again that
I use Forth programs in ROM in very small microcontroller-
based embedded systems.
>Maybe I got you confused with someone else. If your not
>the guy that was talking about PowerBasic my appologies.
>But I don't think I got that wrong. Here's what you wrote.
>
>=======================================================
>For embeddes systm with tens of bytes of RAM and hundreds
>of bytes of code, pure assembly language, without even a
>macro.
>
>For embeddes systm with hundreds of bytes of RAM and
>thousands of bytes of code, Forth. (Not ANS Forth or any
>commercial or free Forths, but a custom language that has
>only what I need for *my* applications.
>
>For all those little programs that make life easy,
>PowerBASIC (I actually run it on a dedicated Windows
>machine and connect to it from my Linux box to use
>the programs; that's how much I lile it *for the kinds
>of things I want to do.*
>=======================================================
>
>So according to what you wrote you DO use PowerBasic
>which means you do actually use files.
And so does Chuck Moore. He has a web site that is
file-based. It would be unfair to assume that his comments
about files being useless include his use of them on his
website, and it is unfair to assume that my comments about
files being useless include some piddling little one-shot
utilities that I write in PowerBASIC. The context tells
what is being discussed.
When someone descibes "my applications" (and has defined
them as being embedded systems dozens of times) and then
contrasts them with "all those little programs that make
life easy" it hardly seems fair to apply a comment made
about the former to the latter.
>I've never heard of Chuck writing PowerBASIC programs
>to do anything, nor have I heard of him using a Linux
>box to connect to a dedicated Windows box to run little
>programs that make life easy.
Context! Context! Jeff implied that I use C. I gave him
a list of every freaking thing I do with a computer and
pointed out that no C programming was involved in any of
them. I wasn't expecting susch a ration of shit to come
out of my providing that description. I certainly won't
make the mistake of describing anything else!
>It sounds like you,
>Chuck and Jeff agree on the point that if you can
>completely control the environment you don't need
>to use files. If you can't completely control the
>environment (customer requirements dictate files,
>or you just find you can get a particular job done
>quicker in PowerBasic) then files become necessary.
Exactly so. Now obviously the inventor of Forth will
have a much larger number of things he can do with
Forth, and someone who is using Forth as an alternative
to 8051, Z80 or 6502 assembly language will be able to
do far fewer things with Forth, but we both use Forth
to program embedded systems. The interesting bit is not
that I have no use for files in small embedded systems
or that Chuck Moore has no use for files in small
embedded systems, (few small embedded systems need files)
but rather that Chuck Moore has no use for files in much
larger systems. Now that's an interesting thing to
discuss in comp.lang.forth.
Jeff Fox wrote:
>
>Guy Macon wrote:
>
>> Your point being? I also see files as "useless" for my
>> applications because I never put myself in a position
>> where they are needed.
>
>So you are still claiming that you have no files at
>all in your mysterious unspecified development environment?
Once again you put words in my mouth. I have been silent
about my development environment. I have told you dozens of
times that my *applications* consist of ROMable code for very
small microcontroller-based embedded systems.
Please explain why I should bother having a discussion with
you when you keep insisting that I wrote things that I never
wrote.
Here is another example:
Jeff Fox wrote:
Gotcha.
Now that you have embarrassed yourself, I suggest that you
Excuse me? I said he would reform that hard drive on a
Linux box if you gave it to him, not that he would use
it surf the web. I said that you couldn't force him
to use a Linux box. I said that calling him a Linux
programmer was nuts just because he read some Linux
driver to understand some undocumented PC hardware.
Please, Please don't claim that *I* said that Chuck
Moore uses Linux to surf the web. If you insist on
spreading such untruths, don't attribute them to me.
> >So according to what you wrote you DO use PowerBasic
> >which means you do actually use files.
>
> And so does Chuck Moore.
Your's still clueless... The context of his integrated
Forth environments is what he is talking about when he
says that files are not a big part of any typical
application. He just uses blocks for most of what
he does. When he tries to explain that to other people
he contrasts it to environments like where PowerBasic
resides, where everyting has to be about files, files,
files. And so doesn't Chuck Moore.
> He has a web site that is file-based.
That's true. And when he boots up a PC to do email,
instead of doing it in a Forth only enviroment, which
he has also done, he is using files. But damn it, that's
not the context that he is talking about when he uses
he word Forth! It isn't the context that he talks about
when he says that he avoids using files.
He is talking about what he calls Forth and how it is
completely different than what you call Forth. I know
that makes you made. But really don't insult him because
of it.
Next time I see him I will tell him that he has been
called a Linux programmer because he wrote on a web
page that he translated Linux drivers. It is always
fun to see the look of total bewilderment that comes
over him when he hears about the sorts of things that
people say about him. ;-)
> It would be unfair to assume that his comments
> about files being useless include his use of them on his
> website,
Right, he was talking a Forth development enviroment
free of files.
> and it is unfair to assume that my comments about
> files being useless include some piddling little one-shot
> utilities that I write in PowerBASIC.
Ok. Is your Forth enviroment file free? No. It is completely
different that what Chuck does. Maybe it resembles what
someone else did who was copying what Chuck did twenty or
thirty years ago in a vague sort of way but that's about it.
The point is that your Forth is not file free, your Forth
targets are, but your Forth, your use of Forth, your Forth
compiler, the OS that you use in development, and in short
your development enviroment is not file free.
> The context tells what is being discussed.
Right. The context was what Chuck said about his Forth
only development enviroments and why it doesn't need files.
The context was your completely different approach and
philosophy and development environments where you must
rely on files, even if the embedded targets don't have them.
We have heard that sort of absurdly stupid arguement before.
> >I've never heard of Chuck writing PowerBASIC programs
> >to do anything, nor have I heard of him using a Linux
> >box to connect to a dedicated Windows box to run little
> >programs that make life easy.
>
> Context! Context! Jeff implied that I use C. I gave him
> a list of every freaking thing I do with a computer and
> pointed out that no C programming was involved in any of
> them. I wasn't expecting susch a ration of shit to come
> out of my providing that description. I certainly won't
> make the mistake of describing anything else!
I said you used the term Linux box, a machine based on
the need for files, files, files, and that Chuck did not
use Linux boxes, period. I said that it sounds like
your development enviroment, with powerbasic or whatever
is also a files files files enviroment totally foreign
to what Mr. Moore does.
I also said that you were wrong when you said that
Mr. Moore does what he does because he is programming
tiny embedded systems. He has been programming Pentium
PCs for a long time, with code that other people are
using in development enviroments, code for others on
large personal computers doing demading applications.
> >It sounds like you,
> >Chuck and Jeff agree on the point that if you can
> >completely control the environment you don't need
> >to use files. If you can't completely control the
> >environment (customer requirements dictate files,
> >or you just find you can get a particular job done
> >quicker in PowerBasic) then files become necessary.
>
> Exactly so. Now obviously the inventor of Forth will
> have a much larger number of things he can do with
> Forth, and someone who is using Forth as an alternative
> to 8051, Z80 or 6502 assembly language will be able to
> do far fewer things with Forth, but we both use Forth
> to program embedded systems.
And you both breath oxygen and use the word Forth too. ;-)
> The interesting bit is not
> that I have no use for files in small embedded systems
Though you find them absolutely essential in all aspects
of the Forth development process. You see that Chuck
uses the word Forth to refer to things like VLSI CAD
development enviroments and uses the word Forth to
refer to these file free development enviroments.
You use the word in a nearly opposite way to mean just
the code inside of the target, and most of what Mr. Moore
calls Forth you have replaced with PowerBasic and file
based development enviroment. But you do both use the
word Forth, just to mean nearly opposite thigns. No
wonder you don't like the way he uses the term!
> or that Chuck Moore has no use for files in small
> embedded systems, (few small embedded systems need files)
> but rather that Chuck Moore has no use for files in much
> larger systems. Now that's an interesting thing to
> discuss in comp.lang.forth.
Well that WAS where this all started now wasn't it. ;-)
Chuck Moore was talking about his work when he explained
why he doesn't need files in his Forth development environments
on larger systems.
Chuck said that Unix and C are all about files. Everyone
knows that C compilers split things into C syntax and C
librarie FILES. Everyone knows that C compilers use OS
that provide the file services and that applications in
these C file system based environments.
Only the argumentative who don't want people to understand
what Chuck meant will argue that C isn't file centric and
try to prove it by claiming that they can boot up their
os from a file and load the file system and load the compiler
from a file and load the editor from a file and edit source
files and run the compiler and linkers on the files and
generate an embedded application and put it in a file and
then run a utility from a file to download this application
code into an embedded system and then claim that because
the embedded system has no resident file system that they
haven't used files in any way.
You once asked what the people who argue with what Chuck
Moore and don't like it when I report what Chuck is working
on or explain what he said have in common. I think one
think is the sort of insane argument above that claims
that one can use files for almost everything while not
using files at all.
When Chuck says Forth, one translation of the term that
he is using is, working in such a way as to avoid most
of the complications that are built into enviroments
like C based environments and using the multititude
of languages that they offer. He means that Forth is
a completely different alternative to that. That is
what he means when he says Forth.
Now a lot of people think they know better and don't
like his using the term Forth to describe what he does.
They don't like that when he says Forth he means,
not having to do C at all or deal with C programs or
do C based operating system calls.
So naturally, when he hears that it is common wisdom in
c.l.f that learning Forth makes one a better C programmer
because they learn to program C in Forth style he laughs.
I ask, do you laugh because you think Forth style means
not doing C so it is an oximoron to say that one can
do C in Forth style? Of course.
And when Chuck talks about his Forth where files are
not used everywhere people who say that they are doing
the same thing but in an environemt where files are
needed for everything end up portraying Forth as a
tool for cave men. They sometimes claim that he means
that tiny embedded systems don't have file systems
in them. They sometimes claim that he is not just a
cave man, but a cave man who can't explain what
he means when says that he doesn't use files. So
they explain that he is just talking about tiny
cave man applications in tiny cave man processors,
that's all.
Real programmers understand that files are essential
for everything, and that anyone who says that their
are alternate enviroments where everything isn't a
file are just cave men or are talking about toys only. ;-)
(And like Chuck says, they use the word toy like it was
a bad thing. ;-)
Best Wishes
I realize that I said this I made my last post in this thread,
but I think I can make a few points without this devloving
back into a flamewar.
Guy Macon wrote:
> jmdra...@yahoo.com wrote:
>
> >Guy Macon wrote:
> >
> >> jmdra...@yahoo.com wrote:
> >>
> >> >From what you've said you use Linux for things Chuck uses
> >> >Forth to do.
> >>
> >> Nonsense. I never said any such thing.
> >
> >Really? So what DO you use your Linux box for?
>
> Surfing the web, reading email, FTP, newsgroups, occasional text
> editing if I happen to be on the Linux box when I feel a need to
> edit text.
>
> Another Linux box (a 486) is a dedicated print server, another
> is running FreeSCO. Those have no monitors or keyboards, and
> the FreeSCO box has no hard disk.
>
> I would use my Linux box to program small utilities if there
> was a PowerBASIC for Linux, but alas I have to run PowerBASIC
> on a windows box. I do not use Forth on Linux or Windows,
> but that may change someday if I get time to play with some of
> the Forths I have downloaded.
Have you tried running PowerBASIC under WINE? Not a criticsm,
just a curiosity.
Also I think Chuck would probably write the utilities you write
in PowerBASIC in Forth. Again, not a criticism, just an
observation.
> Chuck Moore uses Forth to do many, many things. I use Forth to do
> one thing, but it's one of the things that Chuck moore uses it for;
> very small microcontroller-based embedded systems.
Yep. One of the things. Clearly not the only thing.
> >My understanding is that Chuck uses a Forth OS as his primary
> >development environment.
>
> I have not described my development environment, nor do I intend
> to, after seeing my desciption of my target environment be morphed
> from a 4-bit or 8-bit microcontroller inside a toy into something
> I never described; a PC running Linux.
I never described your target application as being Linux so I'm
assuming you're directing this at Jeff. (I didn't read where he
said this either, but I haven't read his every post carefully.)
> >> Your point being? I also see files as "useless" for my
> >> applications because I never put myself in a position
> >> where they are needed.
> >
> >Did you mention programming in PowerBasic sometimes or was
> >that someone else? If so, my appologies. If not then I
> >can't see how you can say you're never in a position where
> >files are needed.
>
> Ah I see that I have been unclear. I descibed several things;
>
> I descibed my Linux box. I don't consider that "my application."
> I didn't design it or write the code in it. My applications are
> all embedded systems, and they run tiny programs from ROM.
>
> I described my Windows box. I write simple utilities for my own
> use in PowerBASIC, but I don't distribute them, and they aren't
> what I meant when I wrote "My applications." I can see how my
> use of the term could be confusing (especially when everything
> I write is twisted by our resident flamer), but I didn't mean
> "everything I use a computer for." I don't think Chuck Moore
> meant his no use for files comments to apply to everything that
> he uses a computer for either. In fact I know he didn't; he has
> a website that is file based.
Ok. Just a point of clarification. You consider stuff you
distribute to others "applications" and stuff you only use
yourself "applications"? I consider any program I write that's
useful for my work an "application". Anyway, it seems Chuck
uses Forth for both applications and utilities.
> I described my application; embedded systems.
>
> >Maybe you mean "I never put myself in a position where they
> >are needed when I'm using Forth"?
>
> I never put myself in a position where they are needed because
> I never put myself in a position where I am designing anything
> but very small microcontroller-based embedded systems.
Except when you're writing utilities instead of applications. ;)
Ok, I got it.
> >> I suggest that you attempt to address things that I actually
> >> write rather than the straw men that Jeff sets up.
> >
> >You actually wrote that you use Linux, at least that's what
> >I remember.
>
> Jeff Fox says that Chuck Moore uses Linux to surf the web.
Never read that.
> >You mentioned using Forth, but from what I gathered you
> >weren't using it as your sole development operating system.
>
> I have not described my development system. Nor will I,
> having wasted so much time repeating again and again that
> I use Forth programs in ROM in very small microcontroller-
> based embedded systems.
I believe you. I'm sure you use Forth for embedded system
programming and never questioned that.
> And so does Chuck Moore. He has a web site that is
> file-based. It would be unfair to assume that his comments
> about files being useless include his use of them on his
> website, and it is unfair to assume that my comments about
> files being useless include some piddling little one-shot
> utilities that I write in PowerBASIC. The context tells
> what is being discussed.
Good point. I'm not sure if Chuck hosts this himself though.
(Also there are webservers that aren't file based. You can't
tell just by surfing to them. But I'll go with the assumption
that his is file based until I've hear otherwise).
> >I've never heard of Chuck writing PowerBASIC programs
> >to do anything, nor have I heard of him using a Linux
> >box to connect to a dedicated Windows box to run little
> >programs that make life easy.
>
> Context! Context! Jeff implied that I use C.
He implied that you made heavy use of something built on
C. There's a difference.
I certainly agree with this last point.
Regards,
John M. Drake
We haven't had a discussion yet. We have been talking
past each other and you have mostly been talking about
me and avoiding discussing the subject of whether you
really mean the same thing as Mr. Moore when you
say that you don't use files. He means in development,
you mean in the target. As long as we talk past
that point and deal with personalities we cannot
discuss what your work does or doesn't have in common
with the work Mr. Moore does.
For days now the only examples that you have offered
have been on the subject of me. So I will just accept
that you don't want to discuss the subject of Mr.
Moore's non-use of files.
> Here is another example:
Your welcome. I hope you enjoyed it the second
time as much as the first. I suppose it might
help some people to read it more than once.
Please feel free to just quote everything that I
have written again without any comments. I know
that you have no answers to all the questions
that you were asked. So if you refuse to answer
those questions you can continue to simply
quote everything that I write.
Best Wishes
jmdra...@yahoo.com wrote:
>Have you tried running PowerBASIC under WINE? Not a criticsm,
>just a curiosity.
I have been meaning to try that.
>Also I think Chuck would probably write the utilities you write
>in PowerBASIC in Forth. Again, not a criticism, just an
>observation.
I would too if I was any good at it. It's clearly a superior
method, but PB is Good Enough for me.
>Ok. Just a point of clarification. You consider stuff you
>distribute to others "applications" and stuff you only use
>yourself "applications"?
As I said, I was unclear. I wasn't including stuff I only
use myself in "applications", but I should have done so or
in some other way avoided being confusing.
>He implied that you made heavy use of something built on
>C. There's a difference.
No, he was specific about all the hassles that come with
C or some similar language. I read it several times and it
just didn't apply to using something built on C.
>> Exactly so. Now obviously the inventor of Forth will
>> have a much larger number of things he can do with
>> Forth, and someone who is using Forth as an alternative
>> to 8051, Z80 or 6502 assembly language will be able to
>> do far fewer things with Forth, but we both use Forth
>> to program embedded systems. The interesting bit is not
>> that I have no use for files in small embedded systems
>> or that Chuck Moore has no use for files in small
>> embedded systems, (few small embedded systems need files)
>> but rather that Chuck Moore has no use for files in much
>> larger systems. Now that's an interesting thing to
>> discuss in comp.lang.forth.
>
>I certainly agree with this last point.
It shows Chuck Moore's genius. Usually simler means less capable
but somehow he finds solutions where simpler means more capable.
Jeff Fox wrote:
(nothing worth quoting)
Leave me alone, Jeff.
I don't want to have anything to do with you.