That's perfectly reasonable. Three imperative garbage-collected languages, two statically-typed, one dynamically-typed. That's easy enough to understand.
You would also likely need to be proficient with a shell and OS, and with all four toolchains.
Really, there is still only one backend (the shell), and one frontend (the browser). There is some overhead from using four separate runtimes, but that isn't a serious issue.
The greatest difficulty is communicating between each part and the OS/shell or each other. From what I can tell, this does the latter, each part communicating over a TCP socket.
The first: Java-all-the-things. The second: Anything goes! But it has to be 50 lines, or fit on one screen, or some similar metric of grokkability.
Here is the agressive part: People who can't see that shouldn't be software developers.
I was a bit agressive here because too much unnecessary complexity is probably the mistake I hate the most.