If we wanted to use another language to accomplish similar goals, the options would be:
1. Run the code on the server. This dramatically increases latency, introduces more security concerns and would dramatically increase our costs as this would inflate our server load dramatically. Really, its the latency here that makes this a no-go. As you use the number scrubber, it's re-executing several times a second, and that's just not going to work out with client-server communication (even with websockets).
Not at all--it takes some work, but especially if most programs are less than a few hundred lines long, the overhead is far less than you think!