Play Home Contribute GitHub Join Us Discourse Staff Members GitHub Contribution Guides Team

What happen to Clojure?


why there is not Clojure among language that can be used?


I was wondering about that too. I would have asked about this if you hadn’t. I hope they’re just refining it or something, cause that would just suck if CodeCombat was just decreasing it’s amount of available programming languages without the intention of adding them in again


We upgraded our Aether transpiler to use a new interpreter that Rob has been working on for the past several months–instead of generating a baprillion lines of JavaScript that run directly in the browser, the interpreter can directly execute the abstract syntax tree without having to compile it. This lets us have better security, much better correctness, and usually better performance (we are working on fixing a few issues in Python mode). Since we turned it on last week, it fixed 62 bugs across our main three GitHub repositories and paved the way for programmable pets, shareable game creation levels, event listeners, and advanced techniques.

However, we weren’t able to get it to work well with the Clojure parser because of just how big the standard library is there–we would have to interpret way too much code, which wasn’t as much of a performance problem with the transpiler approach (although many things were very buggy that way). If Vicky can adjust it so that we don’t have to interpret so much of the library code, we may be able to bring it back, but it wasn’t an easy fix for us in his codebase. (All our alternative programming language parsers were contributed by the open source community.) If you were playing in Clojure, your sessions will now be automatically switched to Python when you play a level.

It’s sad to have to disable our experimental Clojure support, but with much fewer than 1% of players playing in Clojure, I had to make that call.