Our accounting/estimating software is complex. There are all sorts of weird details that it must deal with: project dimensions, retainage, material returns, subcontractor insurance, plus a thousand other business quirks.
Fortunately, once we write code for those things, it stays put. No need to rewrite them as computers evolve.
Sometimes there are bugs: usually because we forgot to handle some specific situation. Those are easy fixes. It’s usually just a few lines of new code, with little risk that it will break something else.
Sadly, to make our accounting work, we need a GUI framework (Graphic User Interface) to handle mouse/keyboard inputs and screen display. The app also needs an OS (Operating System) to manage the GUI, memory, and hardware. Plus an IDE (Integrated Develop Environment) to compile and link our code into something you can download and use.
All those are way more complex. Our software is made up of about 2,000 files: source code, images, layout resources. The Qt GUI framework and IDE have about 400,000 files. For Mac, Qt uses Xcode with another 500,000 files. There’s no easy way to count the OS code bases from Apple and Microsoft, but they must be in the millions. Probably tens of millions. Maybe even hundred millions.
I’ve ranted about this before, but modern computers and internet have become too complex. TurtleSoft is built like a comfy little house made of C++ text, but it sits atop a deep bed of quicksand. Apple and other huge companies make their living by adding pilings, posts, chains and matting to it, but the whole mess still is intrinsically unstable. There are too many layers of old code. Nobody understands more than a small slice of it.
Our staff ran into that fragility this week when we updated to the newest version of Qt. It gave a mystery error message when trying to build the new accounting app: “No rule to make target. Stop.”
We fiddled with things, to no avail. Posted to the Qt list. Tried various suggestions from other developers: some gave different error messages, but none worked. Finally we heard from someone else with the exact same problem. They fixed it with an update to the latest Xcode. We already did that, but a new version of Apple’s command-line tools solved it for us.
Desktop development is complex, but website development is even worse. It has just as many layers, but worse code in all of them.
Dennis Kolva
Programming Director
TurtleSoft.com