Monday, August 22, 2022

The Endless Treadmill of Java

 I have programs from 15 years ago that still run just fine on my Mac, and never needed any attention.

Meanwhile, keeping any or all of my Java based applications working is an endless treadmill taking hours of work every year, and every time I've always wondered if I was going to be successful at all.

Java itself needs endless Security Updates.  Every time there is a security update, Mac OS decides whether or not to allow Java based applications all over again, and you have to figure out how the latest incarnation of Mac OS does this.

Then the applications which run using Java may themselves need to be updated.  If you update those applications too early, before you have gotten around to updating Java itself, you may have a dead application no longer able to run or revert to previous version.  OTOH, you may also have a dead application if you update the Java and then have not yet updated the application.  You may have to uninstall and re-install the application all over again.  And then you may have to figure out where to download the application all over again, and possibly what credentials are needed to do that, if it's even possible anymore.

The root of all this evil is that Java is supposed to be a magic internet-enabling platform.  It can be used on the server side, the user side, either as internet-connected or not.  This means it has to be able to secure Everything, not just one port or a long established protocol.

It bothers me that Steve Keen's Minsky program has now migrated from Tcl/Tk to Java, a step from solid ground into the abyss IMO.

Tcl/Tk is included in MacOS and it is updated automatically.  Tcl programs are text and you can read exactly what they do.  The programs themselves almost never need to be updated if you do not need newly minted features.  And this is enabled by the very open license BSD-style license Tcl/Tk has, you can do anything with it.  But it is also true for Bash and many related programs as well, though they have the Gnu license, which requires source sharing.  Meanwhile an encyclopedia would have to be written to encompass all the changes and complexities of Java licensing over time, and programs are usually an opaque binary form by design--all written to meet the needs of commerce rather than open computing.

I don't get around to making changes in my home control system often, but when I do I often find myself, as I do right now, in the classic Java quagmire.  This time it appears to have happened by an automatic update, or perhaps one that occurred automatically in installing some other program.  Now I can't access the home control program, though the message suggests it's because Java itself won't run.

How long will it take me to figure out how to access my home control system from my mac so I can change a few things in it?


No comments:

Post a Comment