In This Edition:
Omne trium perfectum
3 Nov 2020 — The “rule of three” principle has it that good things come in threes. While the latin phrase above is often used to express that rule, it literally means “everything is perfect.” So perhaps now is just the perfect time to elaborate, as we have three pieces of news to lay out for you after what is probably our longest news drought since The Latest Word column debuted way back in 2002, a scant 18 years that has blown by us in what seems like a matter of minutes.
The first piece of news has to do with the immediate availability of Helix 8.0.1, the next step in our drive to 64-bit architecture.
The second bit concerns our ongoing efforts to fulfill a promise that will extend the value of Helix in its present configuration while we move it into its next one.
The third piece of news is about Andromeda, which is now something already more than just a galaxy far, far away.
Since we have not communicated with you in quite some time, before we tell you where we are going today and in our immediate future, it is important for you who depend upon Helix to understand the factors that have guided our decision making.
Against the wall
When work began in earnest on this project earlier this year, we quickly ran into a wall that was rapidly crumbling. Because Helix is still composed of a significant amount of code written in Pascal, it has for many years been dependent upon a product known as GNU Pascal or GPC, which is an open-source 32-bit Pascal compiler that works with a variety of operating systems, including macOS.
In our efforts to keep Helix functioning as macOS has evolved, we have often had to deal with the fundamental question of how best to keep it running with GPC. Technically speaking, GPC had not really been updated much since 2005, while the macOS had been in a near-continuous state of change. The late Jonathan Schneider, one of the creators of Helix, said quite long ago that Helix code would have to be completely rewritten sooner or later. And we have noted on several occasions that each new iteration of macOS would bring us closer and closer to that decision. In Jon’s words, “You cannot keep patching the roof; sooner or later, you will need a new one.”
When Apple announced that Catalina would no longer support 32-bit applications, the writing on the wall was clearer than ever. We had done the things we needed to do to start the journey to 64-bit, at great cost in both time and effort, but our dependence of GPC was digging us into a hole from which we might not be able to emerge.
Our options were essentially to (a) make the changes to GPC necessary to support our evolution, (b) move from GPC to another Pascal compiler called FPC, or Free Pascal, or (c) bite the bullet and begin to rewrite Helix from the ground up.
Our first inclination was option (b), and we found someone who was able to guide us onto a path that would save us lots of time. But even with that invaluable help, as the work progressed, Apple threw a couple of other boulders in our way: Big Sur, Apple's next step in the direction of merging their various operating systems and that future Macintosh computers would be built on their own chips, moving away from Intel products.
The way forward
The vast majority of work we have done on Helix since we became its stewards back in 2002 has been infrastructure work aimed at keeping Helix working. Though the look and feel of Helix was certainly transformed significantly when we took it from its Classic roots to enable it to work in OSX and eventually macOS, its underlying code still depended heavily on Pascal and wxWidgets in spite of having rewritten huge portions of its code using more modern tools. In each instance, we had to persuade users to upgrade to a product that, for all intents and purposes, appeared to be identical to the one they were already using.
Now, once again, we are looking at a huge infrastructure project. When Apple announced their own chips, it became clear that we could easily spend another year and possibly quite a bit longer, only to emerge at the other end with a product that, while enabling users to upgrade to Catalina and beyond, would essentially be the same product we have now.
The possibility of missing Catalina altogether was a real one that none of us could quite stomach. It was clear that this was as far as we were going to walk in our current pair of shoes. We needed to rethink how we could get started making and breaking in a new pair.
When Apple moved from Classic to OSX, we did something that seemed anti-intuitive, but it worked: we brought OSX Helix out in stages, beginning with a new Server, followed by a new Client and Engine before eventually producing a more modern RADE. All through that process, if users needed to modify the structure of a collection, they were able to take the collection that was already running in OSX in User Mode and put it on an older machine to make their modifications in Classic RADE’s Design Mode.
This approach showed us a way forward. We could keep RADE more or less as it is while we bit the bullet and set about making a new one. At the same time, we could do something we had already planned to do but had to abandon each time we patched the roof that would keep the current Helix viable and extend it into the future.
Progress toward a 64-bit Helix continues with today’s release of Helix 8.0.1.
In a previous post, we noted that the networking code in Helix 8 had already been rewritten 64-bit. The next step, as we noted at that time, was to integrate that code into the work in progress so we could move forward to the next step with the ultimate goal of all being a 64-bit Helix product line.
That has been done, and has been tested quite thoroughly for several months on our website before we opened it up for beta testing several weeks ago.
While we thought 8.0.1 would have a largely uneventful beta testing period, one user was able to provide us a repeatable example that enabled us to solve a nasty problem that has existed in Helix for a very, very long time. Repeatable examples, as we have said time and again, point the way to solutions that make Helix a better product, and this time is no exception. In the Release Notes, you will find a discussion of this issue under Bug Fixes.
Helix 8.0.1 is an incremental step, but one that is necessary to get to the next one. For owners of Helix 8, it is a free upgrade. You can read all about what has changed in the Release Notes.
A few years ago, we demonstrated a way to visit a Helix collection in a browser window. While somewhat limited in what it could do, it did show that such a thing is not only possible, but could do much more than simply display Helix data.
Now that we have 64-bit networking code written for Helix, we made a decision to create a new Helix Server, tentatively called Helix 9, which will enable a Helix browser Client to visit a Helix collection.
This product is currently in development in parallel with what will be coming next. While we cannot yet provide a timetable for its deployment, we can say that the new Server will be 64-bit and will run in Catalina and beyond. And, as noted above, users will be able to take collections running in the new Server back to an older (i.e., pre Catalina) machine to make modifications using Helix 8 where necessary.
This new Server will allow Helix collections to be deployed on any platform that supports html5.
This will enable Helix designers to use RADE 8.x to create apps that can be used on numerous devices with the lone potential downside of having to have a single Macintosh computer running Catalina or later, which should satisfy most of the platform-independent desires of Helix designers’ current and potential clients.
Designers will have to create user menus with screens designed appropriately to fit on iPhones and iPads and other iOS devices, and while there may be other screen design limitations at first, this will still represent a huge step forward for Helix users...
...which brings us to the future. Several months ago, we decided that the time to bite the bullet had arrived and after some difficult and heart-rending discussions, we commenced work on the successor to Helix, which is currently code-named Andromeda.
While the eventual release of this product is still quite a ways off, it will, like macOS Helix, be released in stages. Thus far, we have done most of the work with one eye wide open to the need to provide an upgrade path for existing users. But make no mistake about it, this will be a new product that, while building upon the strengths of Helix, will extend its capabilities to make it an information management ecosystem.
Andromeda will operate on all Apple platforms current and currently planned. It is being developed in Catalina and that process will move to Big Sur when that becomes a reality.
While it is, of course, too early to show you any screen shots, there are some things that we can reveal that define the universe in which it will operate. For instance, Andromeda will initially use SQLite as its database back end, with eventual support for other database engines.
As soon as it is practical, we will begin to reveal Andromeda to existing Helix users and anyone with interest in managing their own information, and will open up the process to expand input into its specifications.
So that is what has been going on here. We are exploring additional ways to get our users involved in these new directions, with respect to everything from function to finance.
Conceptually, Andromeda is based on the same core considerations that Helix has always been: the transformation of data into information, and the management of that information should always be controlled by the user or group that depends on that information and that control should always provide the flexibility to adapt to changing needs.
Finally, once again, we thank you for your ongoing support of Helix and thank you in advance for whatever you might be able to do to help us get Helix to its next harbor. Please keep it coming. And unless we have a worthwhile reason to write another edition of The Latest Word this year, please have a great Thanksgiving, a Merry Christmas, a Happy Hannukah and a very Happy New Year!