Goldenseal Pro setup

It’s a bit of a lull for Goldenseal Pro, since the contractor who is writing most of the conversion to Cocoa (Mac) and MFC (Windows) is still finishing up a prior project.  Progress will accelerate in March.

We now have version control set up on BitBucket, so multiple programmers can work on the same project at the same time.

On Macintosh, Goldenseal Pro runs, but doesn’t do much yet.  We have refactored some of the old code, but probably won’t do much more until it’s running enough that we can test as we go.

On Windows, we’ve moved the source code into Visual Studio.  It will still take some tweaking to get the old CodeWarrior code to compile there.  Each compiler seems to catch different errors, so we are looking forward to flushing out obscure bugs that Xcode and CodeWarrior missed.

Current prediction for completion is October 2016.   That may change as work proceeds.

Dennis Kolva
Programming Director
Turtle Creek Software

Goldenseal Pro begins in earnest

We’ve signed with a US contractor who will work on the the Mac and Windows versions of Goldenseal Pro.  They will do the platform-specific coding, and we will be responsible for rewriting our core code as needed, so it fits well with the newer operating systems.

Most of our code is already well-crafted, but this is a chance to “tidy up” the parts that aren’t.  The ugly parts are mostly in the NeoAccess database, but some of our own code can be improved by using modern C++.  The language has improved enormously since we started using it.

As a break from programming work, on weekends I’ve been doing major rehab on the old farmhouse where TurtleSoft first began.  The old wiring was awful so I recently tore it all out, and have been redoing it correctly.  These days, when doing construction I keep a very tidy work space, and buy the right tools for every task. It makes everything safer and much less frustrating.

Maybe it’s an age thing, but it’s pleasant to cut the BS and just do things right.

Dennis Kolva
Programming Director
Turtle Creek Software

C++ lives on…

We tried moving one of our data classes from C++ into C# and Objective-C, just to see how hard it would be to rewrite our code.  The process wasn’t too bad, but multiplied by all our files it would easily take a year or more.  Even worse, we would surely add some new bugs in the conversion, and they would be different ones for Mac and Windows.

Meanwhile, the C++ language is still a standard that usually ranks in the top 5 most-used programming languages (usually ahead of C#, and way ahead of Apple’s languages).  C++ is mature, constantly being improved, fast and powerful.  We have well-tested, stable C++ code and might as well keep it, and keep improving it.

It looks like we’ve found a willing contractor with experience in Mac Cocoa and Windows development, so we are pushing ahead and will start work on both platforms at the same time, very soon.

Dennis Kolva
Programming Director
Turtle Creek Software

Farewell to C++?

We recently installed Visual Studio, and have been working on the Windows version of Goldenseal Pro.

For the current Goldenseal software, we use QuickTime libraries to make the Mac code run on Windows without revision.  About 20% of the interface is handled directly using MFC (Microsoft Foundation Classes).

Our original plan was to stay in C++ and replace all the QuickTime stuff with more MFC.  However, MFC is old technology, and new programs are usually written in Microsoft’s C# language, using a different framework called .NET.   It’s possible to combine C++ with C# but it’s harder than on the Mac.  Unfortunately, the process is also entirely different, so we can’t have neat little branches for each platform.

Meanwhile, Swift 3.0 is due from Apple in late 2016. It probably will be the first version that is stable enough to actually use without much pain.  The long term future is that Swift will replace Objective-C as the standard programming language for Mac and iOS.   Swift will not connect with C++ at all.

We have a big investment in business logic that is written in C++.  It’s about half the total code in the Goldenseal software, and represents 5 or 10 programmer-years of work.  It’s spread out in 400 files, with over a million lines of code and comments.  This is what does the math and data processing behind estimates, job costing, accounting, payroll, and all the other features in Goldenseal.

Unfortunately, it seems like both Apple and Microsoft really want to force software developers to use their proprietary languages, rather than C++.  The pain and compromises required to link our existing code base to modern frameworks are starting to look like bigger trouble than just rewriting it out of C++, and into Swift and C#.

A complete rewrite like that means much more work now, but it also means much better software in the end.  We can also design it so the same code base can work on both desktop and mobile.  The dream has always been to have just one set of code that runs everywhere, but maybe getting 4 platforms out of 2 sets of code is the best we can do.

This is a wrenching change to consider, as big as when we moved from Excel to C++.

Comments appreciated.  It’s going to take at least a week or two to decide.

Dennis Kolva
Programming Director
Turtle Creek Software