Wednesday, September 14, 2005

Single Object Store

I have just been watching for over 2 hours the PDC 05 Event from the Microsoft Web Site... cool stuff this Avalon... um... Windows Presentation Foundation. Those 3D effects are realy smooth ;) But then they start with Data... This LINQ stuff might sound good but its just adding another headache for developers, not removing it. Developers have to deal with so many API's and although they are trying to add yet another single API, they are just adding another beast to the collection. There are so many data sources we deal with... from tables to file systems to the registry to file internal data and so on. What is needed is not a WinFS single store but rather an API to merge all these sources into a single design API. I dont care about that registry folders are called Keys and that registry files are called Values. Just give me Folders and Files instead of including new concepts. Here is the rant: If I write an application to use the registry but then I am told to use an INI file (so that the settings can be shared on a server). Think of the amount of not only API but logic that needs to be changed to make this work. Although they both are using the key and value design (just INI files have only one key depth), I still need to use a different API. Dont think this rant is just at windows, PalmOS does the same thing! Instead of having a single database API, I have three API's to handle! The data manager, The resource manager and the VFS manager. If I want my application to read documents on the card instead of from the internal drive, I need to recode all my calls to the data manager when they have exactly the same ideas. This is one of the reasons I have been working so hard on the Object Storage. Its not about adding meta-data but about abstracting the meta-data we already have. I want a single API with minimal changes works for both the memory manager, VFS Card, Databases, Files, Serial port, Bluetooth and the list goes on and on. Instead of calling a function like: SetDeviceID, I want to browse the IDs and select the one I want using a hierechy design. Give me Folders and Files everywhere! I want a device to be a folder, I want a document to be a folder holding the documents elements. I want a serial port to be a folder which any data I put in is sent over through the port. I want to create 5 files with data and send them all off together easily without fiddling with data buffers. This frustration is what is driving me forward with the Object Storage. I want a single abstract design which will spare me the details and allow me to do things in a 'virtual' way.

1 comment:

Zakai Hamilton said...

I am working on the GUI as we speak... I decided to seperate the Screens environment into two parts:
Saturn and Safire

Saturn is about bringing the power of the desktop to your handheld (no object oriented store though) while Safire is the object oriented user interface and API.

One of the biggest problems is agreeing on things... although most things have been agreed on.