Testing the waters.

Chris Bitmead uid(x22068) Chris.Bitmead@Alcatel.com.au
Fri, 09 May 1997 14:26:02 +1000


>I personally don't see persistence as the answer to any of *MY* questions.
>I don't begrudge somebody persistence if they want it, but can't they have
>it and I not?

Well, I assume you want persistence of some description. Programs that
don't read or write anything to disk don't tend to be very
interesting.

The question you are asking is a bit like asking a UNIX person, "Do I
have to use these directories and files and things? Can't I just store
all my stuff in a raw partition?"

The answer is yes you can do this. But will you want to?

>>It doesn't work for POS code though. I've tried it, and it doesn't
>>work. If you do try you'll defeat the purpose of POS.
>
>I don't need POS.  I personally don't know anybody who needs it.  It may
>solve some problems, but certainly not all.  I think it would be a mistake
>to build everything on this.

For decades people didn't have file systems. They just said, ok this
application will use sectors 1 - 1000. This other application will use
sectors 1001 - 2000.

It worked. You can still do it on UNIX either with raw partitions or
just having one gigantic file. Would you want to?

I assume you have never used an ODBMS.

You don't think you need an OOFS? (I'll stop using "POS" I think. I
forgot it can stand for piece of shit).

If you have ever compared writing a C++ application with ORACLE or a
flat file, to writing an OO application with an ODBMS, then you will
understand what the concept buys you.

I will repeat the example I gave before. It's not a great example, but
I've got to get some work done today so I'll keep it simple.

How long would it take you to write a program which looked through
your mail folder and deleted all the items from "Fred Smith" which had
"LispOS" in the Subject line, using a conventional byte-stream file
system?

This is what it would look like in LispOS with OOFS...
(forgive my use of scheme)

(let ((mf (mail-folders *root*)))
  (set-my-folder! *root*
    (filter (lambda (item) (and 
                                (equal? (from item) "Fred Smith")
                                (match (subject item) ".*LispOS.*")))
		(get-my-folder mf))))

That's it. That's the whole thing.

There's no code for parsing the mail folder, for reading the
folder. For writing the folder back in the right format. In fact, the
actual mail messages will never be lifted off the disk. Only their
summary object which contains the from field and subject field.

>>LispOS is different in that it will make maximum milage out of having
>>a POS as the way of storing everything on the system. (And believe me
>>there is incredible milage to be made).
>
>I guess I missed the decision that LispOS was by declaration going to do
>all things the POS way.  There haven't even been a thousand messages yet,
>how did I miss it :-)

A nice OS needs a standard way to store files. On Unix the standard is
ascii with new-lines. This is bad. This makes unnecessary work. This
is why we have perl and awk and sed. (Need I say more?)