MIXAL is dead

I terminated one of my open-source projects today. MIXAL is dead; it has been replaced by the GNU MIX Development Kit, alias MDK. Open-source projects die so seldom that the circumstances deserve a minor note.

I didn’t actually write MIXAL; somebody named ‘Darius Bacon’ (probably this guy) did it, under DOS. I stumbled across it in 1998, ported it to Unix, and fixed some minor bugs. Later, when I was in semi-regular contact with Don Knuth, he contributed two of his test programs and a text description of MIX from The Art of Computer Programming. Don gets open source; he was careful to arrange with his publisher terms that allow this material to be redistributed not just by me but by any project shipping under an open-source license.

I’m not sure when the MDK project started. When I first ran across it, it seemed to me to be not as capable as MIXAL; I made a note of it in my README file but did not consider simply handing off to it. That might have been as much a decade ago; when I re-encountered it recently, it looked a great deal more polished and mature. I, on the other hand, had barely touched MIXAL since I first ported it.

The world needs one competently-written MIX interpreter, but it doesn’t need two. So I looked up MDK’s maintainer and negotiated a handoff; he got the material Don Knuth donated to MIXAL, and I got to put MIXAL to a tidy end.

This what the open-source version of what musicologists call “folk process” looks like. Re-use, improve, contribute – and when someone else is clearly doing a better job, let go.

9 comments

  1. Open-source projects die so seldom…

    What does it mean for an open-source project to “die”?

    If the FOO project has gone five years without any maintenance or updating, and all the names on the list of developers are incommunicado, is it dead?

    If the FOO source was in a repository that was corrupted and broke down, and no one bothered to salvage the source, is FOO dead?

    If FOO won’t run on any version of any target platform less than five years old, is it dead?

    If FOO was designed for a task that nobody has done for five years, is it dead?

    If the FOO project was started by a handful of enthusiasts, who got it to version 1.0.2, and then all lost interest, is it dead?

    I think a comprehensive survey of “open-source projects” would show that most fall into one of these categories (especially the last).

  2. Just for the record, i started MDK around 2000, and it became a GNU
    project by the end of that year. In those early months, it had only a
    CLI, and i took inspiration and stole a bit of code from Darius
    implementation, if memory serves.

    Let me take the chance to publicly thank you for your contribution to
    MDK.

  3. I think most of those would be classified as “resting.” Or, in some of the more severe cases, “pining for the fjords.”

    The line between dead and alive is hazy most of the time — it’s unusual when someone explicitly sticks a stake through a project’s heart and declares it properly dead, superseded by something more active and strictly better. Ultimately, I think it’s all about the probability that a project will get back up and be active again. If there’s a better replacement, its existence lowers the resurrection probability. If the code exists only on some old VAX, it’s almost certainly dead. If it’s sitting on Sourceforge or Github but the original author hasn’t touched it in two years, there’s a healthy chance that someone will restore it to life. Most open source projects are in this state, at least ones created in the past decade, and technically, that is not dead which can eternal lie.

  4. >The line between dead and alive is hazy most of the time

    I threw together an application for a semi-relational database that The Bride of Monster’s employer had purchased, over two decades ago, expecting it to be a stopgap she could use until something better could replace it. That application was still running, as Something Better has yet to come along.

    I think there might be some serious fjord-pining going on there, but how can it be dead if they run the damned thing every day?

  5. @RichRostrom

    I’m imagining a new version of the scene from Monty Python, in which the Gatherer of Dead Projects rolls a cart down the street.

    “Bring out your dead…projects!”

    And more than a few of the projects reply “I’m not dead yet! I think I’ll go for a walk.” And the project owner, not being there, can’t convince the Gatherer to take the project away after all.

  6. The Monster,

    Let me guess: Access, FoxPro, or dBASE.

    These old databases will never die, simply because there are applications running in auto shops and insurance brokerages whose users see no reason to shoulder the cost of upgrading; and the livelihoods of many a consultant depend on these apps. filePro — originally written for the TRS-80 — is still going strong under the banner of a company formed for the express purpose of its maintenance.

    (Fun fact: filePro was originally written by a man named Howard Wolowitz. Now you know where that BBT character came from.)

  7. @Jeff

    Actually Q&A, (remember I said it was only semi-relational). Porting it to Access would be an upgrade. I think it might have been the same database sold under some other names like “PFS”, so it’s possible it’s still being actively maintained under some name I don’t recognize.

    The main reason they’re still using it is that it does the job it was written to do just fine, and they can’t afford to spend money fixing things that aren’t broken. A lot of people fall into that category.

    I occasionally talk about this to explain how things like Y2K bugs come along: The programmers do not expect the program to be running anywhere when the century rollover happens, so it’s silly to bother coding for it. Except, of course, a metric assload of such programs were running in 1999, and things people are writing today will probably be running in 2099.

  8. Q&A used flat-file databases. Nothing relational about it. There’s a little company called “Lantica Software” that puts out an application called “Sesame” that will automatically convert Q&A databases.

    Honestly, though, the reason why they’re still using it is, let’s face it, they’re locked in. There’s no way to get data and all of the functionality out of what they’ve got with anything else without significant rework and conversion.

    Of course, these days, it’s relatively trivial to do custom web front-ends to real SQL-based RDBMS databases with something like Django or Ruby on Rails or Drupal. Sesame only exists because of vendor lock-in.

    The lesson to be learned is not to lock you data in vendor-controlled jails. One day Microsoft Office will be as distant a memory as Q&A. Probably sooner than you think.

  9. > Q&A used flat-file databases. Nothing relational about it.
    Semi-relational. You could use a lookup function to pull data from a second table. It’s been so long I don’t remember all the details of it, just that it was very limiting. And yet I was able to write an app that got the job done.

Leave a Reply to Jeff Read Cancel reply

Your email address will not be published. Required fields are marked *