While working on the code that saves changes to disk, we ended up rewriting some old, complicated NeoAccess code which kept track of “dirty” records that needed to be saved. It was 2 files and a few hundred lines of code, that we replaced with about 10 lines. Saves will now run a bit faster, but more importantly, will be more reliable, and much easier to maintain.
We ran into the same thing while rewriting lists (arrays) in PowerPlant. The new code is about 10% as big, and 10x easier to understand. That translates to easier maintenance and fewer bugs.
The C++ programming language has improved enormously since we started using it, which is the main reason we could shrink things so much. Since 1998, the “standard library” has added many new classes to handle programming tasks that used to require hand-rolled code. Our old compiler did not support them, but now we can be more up-to-date.
Since the initial work has gone so well, we are ready to start a major rewrite of the basic database code. We can throw out a lot of hard-to-maintain code from the 1990’s, and replace it with clean, modern, simpler language. It’s also time to modernize the file format.
Back in version 2.0 we did a similar overhaul to the database format. In that one, users had to export their data to a text file, and then import it back into a new file.
However, this time around we can make the process much easier. When you open your old company file, it will automatically read all your records using the existing format, and write them to a new file with the new format. Everything will look the same in the new file, but the basic database format underneath it will be different, and better. Slightly better performance, and much greater reliability.
We will be testing the new code on our own Turtlesoft company file this summer. Some time in the Fall we will also be ready for beta testers, to try out the new format. Please let us know if you are interested.
Turtle Creek Software