Friday, January 27, 2006

Why I am so excited about doing a complete rewrite

I think of the AgileWiki as an application that runs on a rolonic framework. But the framework is TKCS and it leaves a whole lot to be desired.

The biggest problem here is that TKCS is far less rolonic than AgileWiki. So as my understanding of how to program in rolonics has grown, I've had to "make do" with a less than desirable framework. Which was fine--you need an application before you can understand what is needed in the framework.

TKCS is also a monster. A megabyte of meta-data just to configure AgileWiki. No one will ever use this framework, so it doesn't advance rolonic programming except for enabling me to write AgileWiki. Its also not very agile. :-)

My hope then is to write a much better framework based on the tables concept I've introduced. (Call them proto-rolons, if you will.) And with a much more appropriate API to program to, AgileWiki will hopefully become much more light-weight and agile too.

My goals then are:
  • Reimplement AgileWiki to support ordering more pervasively, in the order of Cabinets, Drawers and Folders, as well as much more fine-grained control over applicative context.
  • AgileWiki should run much much faster. The final versions were much more light on disk, so I can now concentrate on reducing the CPU load.
  • With a more appropriate API, the AgileWiki should be easier to understand/code/maintain. And be more flexible.
  • The new tables API should be a reasonable framework for programming rolonicly and should itself be realitively light-weight.
Meanwhile, right now I'm working on the CacheFile and related classes. I've got the functionality, so I'm in API polishing mode. (Actually, I'm carefully pulling down selected functionality from higher levels where it makes sense.)

The new thing is working with the Java TreeMap class. The code using it is pretty clean. I'm really looking forward to seeing some timing tests--I expect some very fine numbers--but this will need to wait until I've got the wdb class working.

Bill

0 Comments:

Post a Comment

<< Home