Microcontrollers are known as the graveyard of high level languages 🪦 . Some languages have tried to target microcontrollers, but have eventually died/faded away. Some of the reasons high level languages have failed include the following:
• Using a GC that isn't suitable for uCs (Microcontrollers)
• Relying too heavily on the Heap for storing data
• Bad quality toolchain (toolchain size is too large to download, can't statically link everything into a single binary etc)
• Using a standard library that is too heavy weight (e.g. code size is too large)
• Generation of binaries that are too large in size
• Reliance on a VM (large code size, high RAM usage etc)