Using js in Max isn’t so bad. I’ve gotten out of the practice of it, but for a bit I was using little bits of js to deal with loops and stuff like that that were difficult to do in Max natively.
There’s some I/O bits you need to add, and other than that each function is just a message you send into the object, so pretty straight forward beyond that.
I’ve not done much with arrays or long strings, so I would lean towards zl-based solutions (but js seems attractive for this).
I’m guessing that’s not been the case when using /map type messages, but a few years ago I switched to a js-based replacement to OSC-route and holy shit did that kick my computers ass. I was sending a lot of messages through it, but I had massive LED lag, audio dropouts, and my computer fan went into overdrive. So since then I’ve been wary of using js for timing sensitive stuff.