Modern C++ and Compilers (Aug 27)

Goldenseal estimating/accounting software is built from about 1,000 text files. TurtleSoft Pro is similar in size.

To convert all that text into a final app, we use an IDE (Integrated Development Environment). First it was CodeWarrior, then Xcode, then Visual Studio, and now Qt Creator. The most important part of every IDE is the compiler. It checks for errors, then turns the C++ into machine language for the final app.

Compilers are excellent helpers. They catch most stupid typos and fatal errors. They also give warnings for code that is legal, but possibly risky or confusing. Compilers keep getting stricter, which is fine with us.

Meanwhile, the C++ language is also improving. The 2011 and 2014 updates added many features that help make code safer and faster. Unfortunately, the changes caused our code to give over 70,000 warnings: mostly for lack of the new override keyword in our pre-2011 code. It’s one of those changes that makes code a bit clearer.

The huge list of warnings slowed down compile times, and made it hard to see the ones that are most useful. We could have turned off some of the warnings, but it’s good to get them when writing new code. So we just spent a few days to update all the files. Thousands of copy-pastes. Most of the changes were benign, but we did catch a couple of potential bugs in the process.

The warning list is now down to 430 items, and shrinking gradually. Ideally we’ll get it close to zero soon. Anything that’s left will act as a to-do list.

Meanwhile, the estimating interface now looks good. Our staff has moved on to bank transactions and the Reconcile command. Reconcile, Pay Bills and other action commands are the last big and unfinished interface chunk. Once we figure out how to do those, it’ll be down to smaller details. Many, many of them.

Our staff has worked with Qt for about a year now. We’re becoming more fluent with it. Programming is fun when you can whip out a few lines of code and make something happen.

Dennis Kolva
Programming Director

Author: Dennis Kolva

Programming Director for Turtle Creek Software. Design & planning of accounting and estimating software.