You are reading a single comment by @Gordon and its replies. Click here to read the full conversation.
  • (edit: see @neoniousTR's post below)

    That section on the IoW.js page isn't very truthful. We implement quite a lot of the Node.js API - not all of it for sure, but enough that a lot of http/etc runs without modification.

    Is synchronous writing a big limit (imho yes but sometimes)?

    Not that I have found - especially as reads from something like an SD card are more predictable than a hard disk. Realistically IoW.js will probably have sync writes as well, it'll just 'hide' them by allowing a callback (which Espruino could easily do - it just hasn't been requested).

    Does not using bytecode have only the slowness of execution as the only side effect?

    Well, it's significantly faster to execute new JS code. It's also far more memory efficient as there's no parse tree or bytecode needed, and you get line by line debug and stack traces built in as well.

    While the ram out of memory is a problem.

    I think you'll find that Espruino works better in a low-memory environment because it doesn't care if memory gets fragmented, and GC passes are rare and very fast.

    Working with sockets, json parsing, many variables, bluetooth access, use of different modules, etc ... is better a (a.e) DukTape or Espruino approach?

    Honestly, I don't have enough experience of the other options to say. I believe Espruino is more efficient at storage of small objects, and is pretty fast with string appends. Personally, I think it works well. The Bluetooth implementation on NRF52 chips is pretty good as well - I'd be extremely surprised if the other platforms really hit that level of features/stability.

    Only thing I'd say is when dragging in external modules you might want to look at other options (or at the very least tree-shaking your code before upload).

    Maybe someone else with experience of the other platforms can chime in here?


Avatar for Gordon @Gordon started