Is the command line the only way to free software?

Richard Pieri richard.pieri-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Thu Mar 18 00:52:22 EDT 2010


On Mar 17, 2010, at 11:10 PM, Lim, Seung Chan wrote:
> 
> I just looked up Newton soup on wikipedia, but couldn't make much of
> the description... How exactly does it do what I described?

Forget everything you know about how computers and PDAs store data.

Newton has no file systems.  It has stores.  A store is a chunk of random access storage, just like the RAM in your Linux PC.  A soup is an object oriented database that resides somewhere in a store.  The Union Soup is a special soup that functions as the root of all soups and links soups across stores.  You could have a chunk of your address book in the internal store and a different chunk on a removable card.  The Union Soup provides the links that make the separate soups seem like one soup.  And this is where Newton gets clever: this works for every soup.  I'll get back to this in a moment.

Newton soups are simple.  You start with a template which is really just a simple table.  For example, the built-in address book soup template has named slots for people's names, addresses, telephone numbers, etc.  Each entry (object) in the address book starts blank, with each slot pointing to the root template.  You can change the contents of a slot, and when you do the pointer to the next level up is overwritten with that data.  The rest of the slots in the object retain their pointers to their parents.

Now, you come along some 10+ years after Apple stops supporting the Newton platform, and you want to add a SIP alias field to the address book.  For any other device it would be a pain in the hind quarters.  On Newton it's as simple as a glass of water: you just add a new slot to the object.  The rest of the slots form a chain back up to the root template.  Applications unaware of your custom slots ignore them while applications that know about your custom slots will use them.  This is one of the great things about parent inheritance.  Parent is slow compared to class inheritance but it can do cool things like this.

Now, getting back to the Union Soup.  Every soup in a Newton device is registered in the Union Soup.  Through the Union Soup any application can access, use, modify (if modifiable), whatever any slots in any soup in the device.  You have a mail application?  Just build a pick list from the "Email Address" slots in the "Address Book" soup.  Want to save a user's PGP public key?  Create a "Public Key" slot in that user's address book object.  Got a web browser?  Want to associate a home page with a user?  Just add a "Home Page" slot to that user's address book object.  Got a SIP softphone application?  Want to dial a user's SIP address?  Pull it from the user's address book entry and go.  You can go the other way:  Got a patent record-keeping application?  Rather than add slots to the addres
 s book soup you create a new soup template that points to (inherits from) the address book.  You then add your own slots to your own soup.  The address book data is automatically available; you just reference slots by name.  If you change a user's name or address in the address book then those changes are reflected in your own application -- or vice-versa because it's the same data, not a copy.

It's all seamless, transparent, and it *works*.

--Rich P.







More information about the Discuss mailing list