Currently, your common options for embedded software are:
* bare-metal with C, C++, or ASM
* load a full OS (i.e. Linux) and run an interpreter to get access to higher-level languages
There are a lot of domains where the problem being solved doesn't require particularly high hardware resources, but requires quite advanced software design. Implementing something like a modern Blu-Ray player's UI and high-bandwidth/low-latency AV in C is rough. You spend a LOT up front on software development costs, and pay more in the maintenance phase. Alternatively, you can save on development and maintenance by running an OS and using high-level languages and existing libraries... but then your board price per unit skyrockets because of the extra processing power, RAM, and flash that you need to support the OS and interpreters.
Access to a modern programming language at a "bare-metal" environment is the holy grain for embedded. It would change the world.
Unfortunately, it has always been practically impossible. And likely still is.