5 ms·
That seems like quite the achievement! I'm actively looking for a high-level language to put on top of an enterprise product, but it has to either transpile to
by fwsgonzo 6y ago
That seems like quite the achievement! I'm actively looking for a high-level language to put on top of an enterprise product, but it has to either transpile to C or integrate well with a C standard library (unfortunately). It's not a 100% requirement, as Rust still works because I can override the global allocator.
Right now I'm looking towards Nim, which has some pros and cons. I'm still not good enough to build complex APIs with it, but it's really easy to integrate. Nim feels like Python for systems programming.
- kitd 6y agoD has a similar feel to Nim, and excellent C integration. The GC is optional and it has good meta programming capabilities.
- RcouF1uZ4gsC 6y ago> The GC is optional A big issue is that while GC is technically optional, a lot of the standard library depends on GC (at least last time I checked) and using D without those parts of the standard library is much less ergonomic.
- mhh__ 6y agoThis is increasingly not the case but there is also mir, which is effectively a smaller standard library along with a lot of extremely fast numerical code
- idclip 6y agoD/haskell/nim are great
- iainctduncan 6y agoYou might want to check out the various Schemes that are designed to work well with C, either by compiling to it, or by being in an embedded interpreter. I'm doing that with S7 for computer music and loving it. Compile to C include Gambit, Gerbil, and Chicken, embed include Guile, S7, Gambit. (And others I'm forgetting).
- elcritch 6y ago+1 for Nim in that use case. The core system and std library is very flexible, so it “ports” easily. It’s been used in a few games too. I’m using it for embedded currently after a few months and while there are a few edge cases overall it’s been stable for me. With C interfaces you’ll want to add some code to make it more idiomatic, here’s my try for i2c code on esp-idf: https://github.com/elcritch/nesper/blob/e1d9f7ba13eebe45aea43c08fe839dd0544927c2/src/nesper/i2cs.nim#L65 https://github.com/elcritch/nesper/blob/e1d9f7ba13eebe45aea4...