Modern Software Experience

2007-03-19

impact

FoxPro

There is a lot of FoxPro in genealogy, and that is a problem.

Perhaps you have never heard of FoxPro before. FoxPro is a desktop database platform. Most genealogy application are written using some database system, and quite a few are built on top of FoxPro.

Problem is, Microsoft has killed FoxPro. The current version of Visual FoxPro, version 9, is the last major release, there will be no FoxPro 10.

impact on genealogy

You may not care about database technology at all, but Microsoft’s decision does impact genealogy. Quite a few popular genealogy applications started in the 1980s and 1990s are based on FoxPro. Microsoft’s decision to terminate the FoxPro platform has serious consequences for the future of these genealogy applications.

The Fox in genealogy

FoxPro based

Genealogy applications based on FoxPro include:

There are probably more, but these few applications already represent a sizable part of the genealogical software market and community.

not FoxPro-based

You may have heard that Family Origins is a FoxPro application, but that is not so. Family Origins uses the FoxPro file format, but is written in C++ and uses Sequiter’s CodeBase library for database access.

Similarly, RootsMagic uses the Microsoft Access database format, but it is not an Access application. It too is a C++ application that uses the CodeBase library.

These are C++ application on top of the Windows platform, and these are not affected by Microsoft’s decision to retire the FoxPro platform.

some other apps

Other application that are not based on Visual FoxPro include Personal Ancestral File (PAF) and Family Tree Maker for Windows (FTW). FamilySearch’s PAF and Ancestry.com’s FTW both uses their own proprietary formats.

issue

legacy platform

All application vendors that built their applications on Visual FoxPro face the same problem now: no more support for their database development platform. Sure, there are some third-party vendors out there, but Microsoft is no longer developing the platform to support new technologies. Some companies and individuals are sure to try and keep the platform alive, and perhaps turn it into something even better, but right now FoxPro seems a dead end. Sticking with FoxPro is sticking with legacy platform.

To repeat what I said in the Microsoft kills FoxPro: vendors of FoxPro-based products need to consider their options.

I discussed the options in some length in Some Thoughts on Development Platform Migration. The FoxPro developers have three basic approaches: quit the business, stick with FoxPro, or migrate to another platform. There are solutions in between these, such as migrate to another platform but use some library like CodeBase to keep the same data format.

migrate

Most vendors will probably decide to move to something else. Sadly, Microsoft is providing no migration kit or anything like it. Every organisation using FoxPro has to figure out what to migrate to and how to do it.

platform possibilities

Access

One obvious possibility is Microsoft Access, but it is not a choice many FoxPro developers are eager to take. They are likely to feel betrayed by Microsoft, and never liked Access’ Visual Basic in the first place.

dBASE

Perhaps a more likely choice is dBASE. It is the original desktop database in the xBase family of products and likely to feel quite familiar to FoxPro developers.

FileMaker

Some may consider a desktop database like FileMaker because it is a cross-platform product, just as FoxPro originally was. Using FileMaker, they could create both a Windows and a MacOS variant of their application.

native Windows

Some may decided to go native, create a true Windows application, in C or C++, like RootsMagic. The main drawback of writing directly for Windows, even when you rely on libraries such as CodeBase is that it is hard work. It is not something your average database programmer is eager to do or even capable of doing. Still, when done right, the noticeable benefit of not having a database-platform in between your code and Windows itself is raw speed.

Microsoft .NET

Some will consider Microsoft .NET. There is an ECMA standard for it, it has many features, there are great development tools for it, and it is supported on many operating systems. Furthermore, even you after you have settled on .NET, you can still pick and choose your programming language and database format. The fact that the .NET Compact Framework runs on Windows Mobile phones is not uninteresting either.

more

There are more possible choices. Each choice has it advantages and disadvantages. All genealogy software vendors have to make their own decision, but their is one FoxPro issue that deserves to be highlighted: character set support.

Unicode

FoxPro

The one issue that highlights how much Microsoft has been neglecting FoxPro in favour of other products such as Access, is FoxPro’s limited character set support. To put it bluntly: FoxPro does not support Unicode.

data damage

As a user of a FoxPro-based genealogy application, you will at some point notice its inability to handle characters outside a single code page. Whatever features wonderful these applications offer, their inability to store or import characters correctly has made these programs inferior choices for years already.

FoxPro based genealogy programs really support ASCII and ANSI only, and any import from ANSEL or UTF-8 to ANSI can not offer complete and correct conversions that preserves all characters.
The bottom line is that users of these genealogy applications suffer data damage sooner or later. I hesitate to call it data loss until an application actually loses data records, but if you were to import some Chinese or Thai names from a PAF GEDCOM, the result would certainly not be much better than data loss.

remarkably limited

FoxPro support for Unicode is remarkably limited. Microsoft has been supporting Unicode in Windows for some fifteen years now, yet FoxPro is still using code pages, and its user interface controls are decidedly Unicode-incapable.
Another development platform that still suffers from the same major deficiency is CodeGear’s Delphi. The next release, codenamed Tiburón, should finally fix that.

delayed move to Unicode

Alas, Microsoft is not planning to fix FoxPro’s character set support. Microsoft is leaving FoxPro developers with a last release of FoxPro that still lacks proper Unicode support.
FoxPro developers cannot first catch up with the rest of world by moving to Unicode, and get all character set issues behind them. They need to deal with their delayed move to Unicode while switching to another platform.

I urge the genealogy software developers switching from FoxPro to another platform to take this issue seriously. Make sure to pick a Unicode-based platform and make good use of that Unicode support, by finally importing ANSEL and UTF-8 GEDCOM files correctly.

user choice

One Good Thing

One Good Thing likely to results from the current situation is that the vendors of FoxPro-based genealogy software will migrate to a Unicode-based platform and finally provide high-quality ANSEL and UTF-8 support.

These vendors have done their users a disservice by sticking with a non-Unicode platform for so long. Then again, they probably always expected the next version of FoxPro to finally provide the much-anticipated Unicode support, and it is completely fair to blame Microsoft about this.

choice

It will be interesting to see how the various genealogy software vendors are going to meet the challenge created by FoxPro’s death. The one sure thing is that their decisions will affect many genealogists. Their choices affect your choices.

If the vendor of your product quits, you may feel forced to switch.
If they continue to release new versions, but continue to build these on top of FoxPro, you should probably abandon it because of its limited GEDCOM compatibility and the data damage the product does, and switch to some other product with a solid Unicode foundation.
If they do switch to another platform, their next release could be fantastic, but it just as well be horrible. It all depends on how well they do it.

updates

2007-12-30: The Master Genealogist 7

Wholly Genes has released The Master Genealogist version 7. This new version is still based on FoxPro, and Wholly Genes has not announced any strategy for dealing with FoxPro’s death.

2008-12-28

The text states that RootsMagic uses CodeBase and an Access database. RootsMagic 4 is complete rewrite that switched to SQLite.

2011-05-15

A first look TMG 8 finds that it is essentially TMG 7 Service Pack 1; the report engine has been rewritten, so that it finally works on Windows 7 64-bit. It is an otherwise disappointing release, not worthy of new major version number, as long-standing issues have not been fixed.

2014-12-27

Wholly Genes is discontinuing TMG.

links