20ft runs as a client/broker message passing system with a central event loop.
Python 3 with multiprocessing and subprocesses.
I started with Python a few years ago for it's clarity, portability and the need for rapid iterations. When used with ZeroMQ it proves surprisingly fast and resilient to various forms of network failure; security is through pre-shared asymmetric keys implemented by libnacl ("lib salt") with each user's connection being encrypted in a separate process; and subprocesses are used to provision resources from the operating system. The central loop is single threaded - preventing a whole class of errors - and asynchronous io is provided by ZeroMQ.