the Virtual Machine
Writing code for multiple platforms shouldn't require learning
The compilation process should be democratised, easy to configure and extensible
When you get rusty with the syntax of a language, you spend precious time and energy fighting the compiler over missing braces and semicolons.
Or you're putting var everywhere instead of const or let, because you spent
weekend with C# and now you're back
to web development.
But if a particular syntax is already second nature to you,
why can't you just use that for all the code you write?
But whilst that blackbox is convenient, it unfortunately has a cost to your app in terms of performance, memory, battery life, and debuggability.
The fundamental problem is developers being made to believe all platforms behave the same, when they don't.
Concepts like types, classes, functions, and variables remain constant across platforms. They are the building blocks of all programming.
What is different are the semantics (the rules you apply to validate that code), the APIs you use, and the capabilities of a particular platform.
Then choose the rules of a particular context to validate that code against (for example iOS Swift semantics).
And once the code is valid with respect to the chosen semantics, it can be transpiled to purely native code with no tricks.