On Sunday, September 18, 2016 7:23 PM Giovanni Piero Deretta said:
Welcome to the meat grinder :)
Thanks, I think. ;)
I do like the idea. It seems vaguely related to Functional Reactive Programming (of which I have no experience). It would be nice to have a discussion of similarities and differences. Possibly this is discussed in the docs, but they are not immediately accessible via mobile. I would like thread safety to be optional.
Triggering the observers into action when an object fires off an event is definitely reactive programming. Designing a data model and rule set around such constructs immediately produces dependency driven calculations. Dependency driven calcs would be the minimalist set of calculations required when updating a data model. The original system I created with these tools was a tax system (US tax code). Hundreds of forms each with numerous interdependent calculations. Prior to these tools, making any change would require a full re-calc of the entire data model. This actually took a significant amount of time back then (66MHz box would take 5+ minutes). Once we implemented the calcs using dependency driven calcs, re-calcs were no longer needed. The data would refresh within a blink, as a fraction of the data needed to be updated due to the change. Beyond simple data model updates, I would make UI elements react to changes in the various dependent fields. This allowed for the UI to be updated immediately whenever the data changed and just that element, not all elements would necessarily have to be updated. Here is a screencap of one of the forms being worked on. http://i.imgur.com/XCunjx3.jpg BTW, I have added oVector and oMap to the observables folder (the 'o' in oVector means observable) along with two simple test programs. This would allow for the developer to be notified whenever new data arrived in one of those containers (and maybe update the list on the screen).