Hi there! Some ideas for implementing a multi-platform programming language:
User-friendly (think AutoHotKey-like).
Emits source code
in the native language of the target platform for "expected format" compilation i.e. exe on windows, apk on android, etc.
It may re-use building blocks from a solution such as Haxe
or a brand-new transpiler can also be done from scratch via ANTLR
The idea being to use a native technology for the target platform at all times; using their flagship language(s) preferably:
- C#/VB.NET = Windows.
- Java/Kotlin = Android.
- C++/Vala = Linux, GTK.
- Swift = Apple-based operating systems.
...You get the gist.
The core of the functions would be written using platform-neutral
instructions while the GUI part would be specific to each target platform.
Think "Environment.NewLine" (automated "\n" or "\r\n") or Path.DirectorySeparatorChar (for dealing with "\" or "/") and so on.
With handy platform-neutral ways + specific GUI functionality you can have the best of both worlds across as many platforms as the industry evolves to use.
Actually, some times I wonder how much interest/support would such future-proof-oriented
transpilers gather for ensuring code longevity
Some programs are basically the same as they were decades
ago! (Think in terms of the same buttons, windows, dialogs, text labels, et cetera).
These programs are basically forced
to being re-coded to keep on with the current/new operating systems' way, even if there is not a single improvement in functionality(!).
i.e. I recall doing some VB6 => VB.NET conversion for an Aussie fellow maintaining the exact same functionality. Just because of a 32-bit to 64-bit requirement.
We could simply update the transpiler to support emitting new code for the "popular platform of the day", keeping the original programs fresh-looking and current
for longer periods than bound to a particular single technology/framework/compiler/operating system's ways
EDIT: not to mention reaching more target platforms with the same code given many platforms share the same foundations, which can be a big plus on itself.
(for instance: same code-base for Windows, Linux, Mac and single-page web app)