I was surprised a couple of days ago to get an email from a Behold user in Prague, who told me that Behold wasn’t sorting the Czech letters correctly in its Name, Place and other indexes. I was a bit surprised by this as I thought that Windows was supposed to sort Unicode correctly, and the exact sorting order was dependent on the specific language that the version of Windows was written for.
It turned out that during the alpha versions of Behold, when it was pre-Unicode, that I had added some custom sorting routines to try to do the various locales correctly. But when I added Unicode for the first beta version, I hadn’t properly removed all of them. First thing was to try to get rid of them and see if Windows sorting can take over. Unfortunately, I did not happen to have a Czech version of Windows to test with, and I found that just changing the various language settings within my English version of Windows was not good enough. So I had to send the hopefully-fixed Behold over to my friend in Prague for testing. Fortunately, that appears to have done it. So this fix will be in the next release.
The key point of all this is really that sorting of data is core functionality of any program. You’ve just got to get it right. If it doesn’t work, you’ve got to make that top priority and get it working. I’m lucky (barring getting bad news from further testing) that this only took a couple of days to pin down.
There are cases where some very notable programs don’t get some important core stuff right. One I’m extremely frustrated with is the spreadsheet program Microsoft Excel. Throughout Windows and all Windows products and all third party products built for Windows (including Behold), a key item is the Windows clipboard. You can from any application copy an item to the clipboard. It will stay there until you need it, or until you overwrite it with something you subsequently copy to the clipboard. Any time later, you should be able to paste whatever is in your clipboard back into your program. But not with Excel. In Excel, you have to paste from the clipboard immediately after you copy. If you do another operation after the copy, you are no longer able to paste. I shake my head in dismay every time I think of this. Here we are, dozens of versions into Excel, and Microsoft has still not endowed it with some important core functionality that should have been in it from the start.
Overall, Excel is an impressive program – able to calculate a billion items in a single bound. It does so much stuff (I mean it’s even got a whole programming language built into it) that sometimes you forget it is supposed to be primarily a spreadsheet. But they must have had some programming dropouts design its a regression package that’s horrendous to use, a charting facility that’s so menu driven, it takes forever to do anything, and of course they’re still mostly brain-dead over their unwillingness to correct a core feature like their copy and paste. It’s hard to get something right the first time. Excel is one place where I see that Microsoft is continuing to add extra features into its periphery, but they’re sadly abandoning the important core functionality that makes the program intuitive and simple to use.
Generally I like Microsoft’s products. Some of them are excellent, and I’m writing this blog entry with Windows Live Writer, which I just love. They’ve made everything seamless, and entering a hyperlink or adding a picture is easier than any other html editor that I’ve tried.
I’m also really looking forward to Windows 8, and may get a Windows 8 phone when they come out. The Windows Surface tablet looks like it will be amazing, and Apple and the Androids might have to be just a bit wary. Why does it appear amazing? Again it’s down to its core functionality. They’re building a solid base and trying to make sure its right. Will they deliver what they promise? We’ll soon see.
I’m involved in BetterGEDCOM and poke around GEDCOM X as well, where new standards to replace GEDCOM are possibly forthcoming. I’m currently worried about some of the decisions that went in the GEDCOM X core. They’ve picked a model that is very complex and would be quite overbearing on both developers and programs that use the standard. There’s quite a bit of discussion going on about a need to change this core functionality.Again, I say, it’s very important to get this core functionality right. It’s even more important to get it right if it’s becoming a standard that others will have to follow.
I’m going to be making some major “core” changes soon. Once version 1.5 with GEDCOM export and a native data file is completed, I’ll be attempting to convert Behold over to FireMonkey framework. If I’m successful, then Behold should be able to be run on PCs (as a 32 bit program or as a 64 bit program), on a Mac, on iOS, and (not quite possible yet … but soon) on Android and Linux. I won’t have to worry about Windows devices, since any program that will run on a Windows 8 desktop, should also run on a Windows 8 device. This will be very exciting, and I’m looking forward to getting to that point so I can try Behold on the different platforms.
But until then, back to getting Version 1.1 out.