Today there are a few options when you want to make your software more compatible.
You could make it a web app.
You could use Java or something more efficient at compiling to java byte code.
You could use snap.
You could use a script like code that compiles well to to native machine code like julia.
you could use c or c++ and port the whole thing over every time.
web apps rent very powerful in some way in terms of utilising full system functionality.
Java Byte code is quite slow with performance application.
Snap is quite big and still has to be redeveloped for architecture.
Fully compile-able script isn't as fast as C.
c or c++ isn't that easy for reworking the whole application in.
So why don't we split the data face bit of app and the system bit many apps could be incorporated in the data face alone but if you do need to add drivers that's ok and can be done in c or c++ the data face bit could be done in fully compilable script like code. This Would mean that a lot of the difficult efficient system use bit Isn't entangled into the data face in terms of how much of the code needs to be adapted focusing the low level codes where it counts more rather than where it counts less.
This would not be to big and would run very close to having written the whole thing in c or c++ and fully adapted it for another architecture. It could also benefit development focus ease of build and efficiency of employee use.