Announcement of next Unidatab’s release (continued).
Based on a static, single-threaded process, Unidatab is a hybrid system in which principles of programmation don’t apply well. For example, having classes corresponding to the main objects we are dealing with isn’t essential here and could even be disturbing when these objects already exist preformatted in the underlying SQL database. We had however to take this step limiting ourselves to volatile structs, in order to handle more cleanly the various levels and shades of user interaction. The immediate and disappointing result is a loss of speed… Our testing db is now imported 30% slower, even after the introduction of move semantics. On the level of capacity, we’re quickly blocked by size since every input and many search operations depend on the duration of an SQL full scan over unindexed data. Could we play better with indexes and temporary tables? Certainly, but having ready made objects in some static database restricts the liberty we have in creating dynamic objects – even more when our physical underlying (SQL) structure pretends to represent the underlying structure of any object.These reasons imply that Unidatab will always be the draft of something else that would bear (somewhat contradictorily) multi-threading and dynamic objects. But there are reasons to continue working on this system for the structural field of experimentation it provides, and there are hopes to make it more efficient in the future.
So version 2.2. welcomes several structs as volatile instances of data, symbols and function parameters; the same existed already for records but the principle of runtime object construction has been revised and applied in the case of symbols. As many innovations in our programm it is only used sparsely, and will be generalized later only if needed.
Symbols rowids are now assigned an even value, data and records an odd value, thus the type of an id can be guessed more easily. On dbs made under the earlier version of unid, operations will suffer some more or less unnoticeable slow down for this reason.