Channel Surfing for Helix Users
3 July 2006--After a hard day’s work, who doesn’t like to slip back in an easy chair, kick of his shoes, and do a little channel surfing? Anything interesting out there? Let’s start with…
CNN (or Fox News, if you prefer)…
Breaking News: Helix 6.0.1 ships today.
Often, people stay away from ".0" releases until ".0.1" ships. No one wants to be the first kid on the block to suffer from the error that eats his hard drive. The release of an oh-point-one product nearly always implies that the early adopters have given the new release a thorough testing, and any horrible bugs lurking in there have been successfully eradicated. We won’t argue that point a bit.
But even though we have taken time out of our push toward an all-native Helix to produce Helix 6.0.1, let us take a moment to say that even without these fixes, Helix 6.0 is the most powerful, stable product we’ve released yet. And it’s not just us who is saying it: our customers are saying it too.
Yes, Helix 6.0 did have a small handful of annoying (but not damaging) bugs, but as a result of customer feedback, we were able to catch them in the act and crush them. To all who sent us your crash logs and then worked with us to prove that “your” bug was fixed: we hereby offer our heartfelt thank you! We could not have found and fixed these bugs without you.
And while we were working on these bugs, we also took a bit of time to finish off a couple of small features, making Helix 6.0.1 not just a more stable but also an improved release. You can read the details on the Helix 6.0.1 product page.
So if you’ve been waiting for oh-point-one before upgrading to Helix 6, it’s now time.
But we want to make it as clear as possible that this is not the so-called "other shoe" dropping. This release does not include the macOS native Client or Engine. For that, we offer our apologies. But if you are among the Helix users out there who are holding out, waiting for the macOS native Client, Engine, or RADE before you upgrade, we ask you to reconsider…
Drat, a commercial! Let’s surf over to The Weather Channel
Way back in December 2004 in one of our Helix 6 Update reports, we described the task of bringing Helix to macOS as akin to "shoveling in a blizzard:"
"In spite of your best efforts, you might find yourself suddenly confronted with a giant snow drift you have to dig through. The snow is coming down so hard you can’t even see it until you’re up against it, and then there’s really no way to gauge how high or how deep it is. You just have to get through it."
A recent channel surf to the Weather Channel turned up another apt analogy. There was dramatic footage of an avalanche in progress... and a snowmobiler racing frantically down the hill in front of it!!! More than once he disappeared in the billowing snow and it looked like he would never make it, but in the end he roared away safely.
The story of bringing Helix to macOS and beyond has clearly taken on that sort of flavor: we always seem to rush just a few steps ahead of a potential disaster. But sometimes it appears we are about to be overwhelmed and defeated. We’re in the midst of another of those right now.
The first signs of the coming storm were in the form of Apple’s pronouncements that Classic was dead. They kept telling developers to get their code to macOS, because the Classic environment would be gone one day. But despite a few attempts to bury it, Classic stayed alive and Apple ended up improving Classic compatibility to the point that a person could run a program as complex as Helix almost transparently. Of course, it would be more fun to be using all the Helix products in macOS right now, but it is possible to use Helix productively in Classic. Thousands of people are doing it every day.
Then came the blizzard known as the Intel-based Macs. Not only do they not run Classic at all, but they require that our macOS code be reworked and recompiled to take advantage of the speed boost they promise. They are currently enveloping us in swirling eddies while they deposit yet another one of those giant snow drifts in our path. Mixing our metaphors a bit: they are the latest rush of the avalanche that threatens to swallow us whole.
People often ask us "why can’t you tell us how much longer it will be until all of Helix is macOS native?" To be honest, we can only reply: we don’t know how long. When you are being chased by an avalanche, you just open the throttle and head for safety. To stop, survey the situation, and map out a timetable could be disastrous. It feels a little reckless and there is a measure of uncertainty that goes with it, but it is the only course of action that makes sense. We confront the moments of decision as they come to us, but rest assured that we aren’t just rushing blindly forward. The direction we need to go is never in doubt; it’s the time of arrival and what’s around the next bend that we can’t predict.
Switching to The History Channel for a bit…
Believe it or not, some of the code in Helix 6.0 was written over 23 years ago! Helix development, you may be aware, actually started life on the Lisa. In those early days, the Helix programmers had to squeeze the source code down to fit onto a 5 MB disk that also held the entire development system. (Things certainly have changed since then!) If you were to look through the Helix source code, you would see many coding concepts that were either required by the constraints of the early hardware or software, or were clever, or merely creative. The genius of those original programmers lives on in the fact that their original code remains viable even today.
It is also a testament to the fact that from the earliest days of the Macintosh, right up through OS 9.2.2, Apple worked to ensure backward compatibility. Remember the shift from System 6 to System 7, with its built-in MultiFinder? Even though programs had to adjust to the notion of sharing the computer, Apple managed the transition in a way that allowed existing programs to work without requiring significant changes. Of course, there were new capabilities that were available to those who were able to take advantage of them, but if you didn’t, your old code pretty much just kept working.
The same held true during the transition from the 68000 processor to the PowerPC. Apple’s 68K emulator made it possible to simply ignore old code and update it piecemeal. Or not at all. And yes, Helix (Classic) still contains a very small bit of 68K code. (Don’t worry, rewriting it is not a significant project.)
While the Mac OS was evolving over the years, development systems (the tools software engineers use to build programs) evolved on a parallel path. Helix has been through four major development system changes: the original Lisa development environment, Apple’s MPW (Macintosh Programmers Workshop), Metrowerks CodeWarrior, and now Apple’s XCode.
And the amazing thing was that through all of that, the core code that makes Helix Helix just kept working. There was never a need to rewrite the code that draws, for example, the contents of an abacus, because the old code just kept on working. When faced with the choice to add new features or stop and modernize old code, it is always far too easy to leave the old code alone and work on new stuff.
As we all know by now, there is no Classic on Intel-based Macs and backwards compatibility that in places reached all the way back to 1984 is coming to an abrupt end. We are standing on the precipice of the moment when Apple will announce the Intel-based Mac Pro towers, replacing the last of the PowerPC Macs. (Xserves are expected to be updated at the same time.) When that happens, you won’t be able to buy a new computer to run Helix RADE, Engine or Client. (eBay may be the place to shop for Helix users for the time being.)
We went through this once before, when Apple phased out the ability of their new Macs to boot natively in OS 9. At that point, we had recently taken control of Helix development and we were working on getting RADE to macOS. We knew that Helix Server couldn’t run reliably under macOS’s Classic Mode, but you could still buy G4 towers that booted into OS 9. Then suddenly the G4 tower was gone, and it became impossible to purchase a new machine suitable for running Helix Server. At that point we chose to put all of our effort into getting Server to macOS first.
In our last The Latest Word we described the technical reasons we made that decision. Hopefully, now you see the practical reasons as well. We had customers that were in a serious bind, simply unable to buy a new Mac to run Helix Server. So we focused our energy on Helix Server, and we delivered it in 2005.
Back to the Weather Channel…
Long ago (or so it seems: it was actually only 5 years ago!) The Chip Merchant fell victim to a "Perfect Storm": -- falling chip prices, the dot com bust, and then 9/11, which brought an already weakening economy to its knees. The Chip Merchant didn’t survive, and it looked like Helix might go down with it. But working on a shoestring, we (the Helix community, really — it was your support that made it happen) managed to produce Helix 5.1 and 5.2, all while getting our bearings and plotting a path to safe harbor. QSA was formed to rescue the Helix code from bankruptcy court, and we finished rewriting the networking code, producing version 5.3. Then we delivered a macOS version of Helix Server as the last OS 9-bootable G4s were starting to show their age.
Now the Intel Macs are bearing down on us, the snow is swirling about, and Helix is again in danger of being engulfed. As our last The Latest Word illustrated, immediately before us remain two giant snowdrifts: Component B (the User Mode interface) and Component D (Design Mode). Work on Component D was actually in progress when we turned our full attention to Helix Server, so a little comfort can be taken in the knowledge that a portion of that work is already done.
Our attention is currently focused on Component B, which when complete gives us macOS native versions of Helix Client and Helix Engine. We are not far, we believe, from finishing Component B. However, we are battling one of those forty-foot snowdrifts right now in the form of text editing. Sometimes you can’t tell how bad a problem really is until you’re in the middle of it. Converting Helix from TextEdit to MLTE is a major task, but once we’re past this, we’re confident the worst will be behind us. Then we’ll finally be on the way to RADE.
As we mentioned in the introductory section above, we are just hoping to survive until then. The snow is coming down pretty hard right about now and the mountaintops are rumbling. There’s another billowing cloud of snow bearing down on us. We’ve outrun them all so far. Could this be the last one? Pull this off and we’re home free? Only time (and your support) will tell. If you are hanging back in an older version of Helix, please consider upgrading now. And then… stay tuned.
Find Previous — Find Next