Thursday, August 6, 2026 : Software That Outlives Its Runtime
© 安岡喜晴 (JoyShine)

Software these days is nearly always built on top of something.
There is not much that stands by itself.
Mine were like that too, for a long time.

Near the end of my student days I made an application that adjusted the connection settings to make the Internet faster.
At that time, some magazines approached me and asked to publish it.
It worked by rewriting MS-DOS settings.
But, it does not run anymore.
That is not my fault, though.
There is nothing left for it to rewrite.

After that, there was a period when I wrote in C# for years.
At first, I wrote C# on .NET Framework 1.0.
Those programs asked the user to install it first, before they would run.
Once it was installed, they ran nicely, and they were quick to write.
And above all, it was easy, to make an application.
And yet, before I had done anything, 1.0 came to an end.
That is ridiculous, isn't it. lol
Microsoft said they would keep backward compatibility, and yet what I wrote on 1.0 no longer ran on its own.
I took them at their word and worked at it, and it came to nothing.
The code had not rotted.
The floor underneath ended first.

I think software hardly ever dies from its own bugs.
The ground beneath it goes first.
The person who wrote it did nothing wrong, and it disappears from the bottom up.

Since then, I have been writing only in C++ and the Win32 API.
I link the CRT statically, so there is no vcruntime, no msvcp, no api-ms-win-crt to install.
I keep _WIN32_WINNT fixed at 0x0601.
The same executable, built as it would have been for Windows 7, still starts on Windows 11.
There is nothing to install beforehand.
Copy it, and it runs.

This must look like a step backward.
It looks like nothing more than leaving the new way for the way I wrote twenty years ago.
But the way I wrote twenty years ago is the one that reaches twenty years from now.

CDs that hold DICOM images usually come with their own viewer, burned on beside them.
Sometimes that viewer does not start.
Even so, the images inside open.
That is because they are stored as DICOM.

This became clear once I wrote the DICOM reader myself.
Follow the standard, explicit VR little endian, 1.2.840.10008.1.2.1, and read straight through.
Implicit VR reads its lengths differently, but it opens too, as long as you split it the way the standard says.
Things that are published, and that nobody can withdraw for their own convenience, are built like this.

What could only be seen inside a browser cannot be seen anymore.
The contents have not changed at all.
What disappeared was the thing that opened them.

I think building something that lasts is not the same as building it well.
If you must build on something, build on what nobody can withdraw.
There is nothing fancy or new about it.

It is never the contents that become unreadable, but the thing that opens them.

Home  |  Profile  |  Software  |  Medicine  |  Diary  |  Photos  |  Contact