JerryScript: lightweight JS engine for IoT
github.com
github.com
https://medium.com/walmartglobaltech/react-native-memory-pro...
Apparently Apple has invested more in raw JS performance while Google has invested more in their garbage collector.
Register/memory write primitives can be easily exposed to the HLL.
(Yes there are other high level languages besides JS you might use too, eg MicroPython...)
Plus, writing constrained environment language implementations is quite fun.
Directed at anyone asking the question your first paragraph raises: C isn't that bad, give it a try, even if you don't use it your skills and perspective as an engineer will thank you.
It’s easy enough to get someone to understand that the variable “points” to another variable like a house address or whatever. But, trying to explain that once a return happens the thing that was pointed to will potentially be gone entirely and you probably wont know immediately, or at least until you call another function, unless you allocated it with malloc, but in that case you need to be sure to call free at some point later, but watch out don’t call free twice, and hey there’s some analysis tools you can use with gdb to help find these types of issues, oh yeah gdb is this debugger it has its own special syntax you’ll want to learn than too, etc etc etc.
It’s so much easier to say: oh, you want to make a tree? Just make some leafy nodes and make some branchy ones point to them and you’ll literally never see segfault in your life. The pointers are still there, but the trouble is gone.
Oh, and basic primitives like arrays and strings in C are far more complex (and easier to get wrong) than pretty much every other language. And it doesn't have a built in map type at all!
Also re: your last point, most of these languages have library support for common features, and you definitely don't have to think about registers and memory addresses. Look at the kind of projects people make with Arduino, flashing LEDs and servos work just fine in a high level language.
Arduino is C++, no? I would class C and C++ as being basically in the same tier here
But still, there's no reason you can't tell the board to switch a pin on in JavaScript or Lua. You don't necessarily need that level of control for most hobby projects.