Post

the wild thing is that while there's good reasons to not use one language across your entire software stack from bare metal microcontrollers to web front-end, the one language you can do this with and have it not be an objectively stupid choice is probably rust.

Orual@nonbinary.computer

legit I use (micro)Python a fair bit for rapid prototyping on embedded, especially if I *know* for sure i am going to throw away the prototype or perf just does not matter one bit. if I think the prototype might become production I will often try and write it in rust.

clojure? (i can see the argument that clojure and clojurescript are not actually the same language but, setting it aside briefly)

0 reposts1 like

is there a version of clojure that compiles to native instructions that could run on bare metal? i thought it was a JRE language

JRE includes binary assembly format specification for zero register big endian stack machine. This machine is usually implemented by an emulator and/or JIT-compiler in software, but hardware can & does implement it natively.

Any ARM processor that includes ARM9EJ-S extensions 'is' a hardware java machine. Which amusing is a lot of modern smart phones as javacard stuff was wildly successful for SIM cards & cell network identification.

partially the thing is that there is a *very* narrow set of languages that actually meet this. like depending on whether you count a vm that's written in another language or not, you lose python (micropython itself is also very much not iso normal python) and most JVM stuff, and BEAM, Lua, etc.

pretty much the only other reasonably non-obscure languages I can think of that you could technically do this in (bc you can run anything in wasm, the embedded/no-os target is the tricky bit) other than Rust are C, C++, Go, Objective-C, and Swift. Kotlin *might* bc it has a native target for iOS.

That makes sense, I also learned today that I internalized a misunderstanding of graal as being cooler than it is (which admittedly is still pretty cool)