And hopefully vice-versa. Remotely managing Windows hosts in an automated way has always been a painful experience.
I realize Iām almost a month late to the discussion - if thatās poor etiquette and itās preferred for me to start a new thread, just let me know.
I have no fondness for Microsoft or for Oracle, but Iāve often thought that most applications that are not system libraries or performance-critical should be written in C#/Mono or Java (or any other JVM-compatible language)/OpenJDK. That still contains the same security risk that your bundled libraries will contain security flaws. But since most Linux distributions offer Mono and OpenJDK and those projects basically never break backwards compatibility, your application will probably run as well in 2026 as it does today.
Iām not trying to assert that C# or Java are good programming languages, just that the respective platforms they run on give developers effectively something similar to appImage already.
(Edit) Admittedly this isnāt necessarily a good solution for smart phones and tablets because Mono and the Java Virtual Machine have heavier runtime overhead than an equivalent well-written native application. (/Edit)
I think Iād dispute that a bit ā almost all the Android apps are Java, no? (On a different Java VM, but still on a Java VM.)
Essentially the idea here is: maintain backwards compatibility and keep your apps running by not targeting an actual machine but targeting a VM instead; the Java VM, or the Mono runtime (or the python interpreter, or V8 in nodejs, etc). This is I think reasonable; down with the tyranny of compiled native binaries, I say. It solves architecture problems too
I believe the Android JVM and the Java Micro Edition JVM (not sure if thatās still used anywhere), and potentially the Java 9 JVM with Project Jigsaw only use the system resources required to run the code in your specific Java application. Thatās still not going to match C, but if youāre off 2-3x for speed and 3-6x for memory usage on an Android device with 2GB of RAM thatās fine.
But the biggest thing that made the standard JVM so painful to use fifteen years ago was that it would load the entire Java standard library before executing so much as Hello World. Today on my five year old desktop āHello Worldā in C takes 12 ms and a negligible amount of memory. In Java 8 āHello Worldā takes 170 ms and 180 MB of RAM - a few kilobytes of memory and probably near 12 ms for printing Hello World and about 150 ms and 179.x MB for loading the standard library.
But otherwise, I agree - Python, V8, etcā¦ would be just as good. In fact, Iād prefer them just to avoid being entangled in a potential patent lawsuit with Microsoft or Oracle.