Advent of code 2020

This year I am doing my first Advent of code ever using in Clojure. Advent of code gives daily code challenges, consisting of two parts building on each other.

I used this to try out vim-iced to replace vim-fireplace and tried out Kaocha.

Iced

Pros:

  • Starts its own REPL, so no need to fiddle with cider plugins etc.

  • Good integration into NeoVim.

  • Code evaluation is shown inline

  • Macro-expand into buffer

Cons:

  • The CLI tool needs a local installation of node to run shadow-cljs.

  • Code navigation only works when reloading a name-space.

  • Multiple crashes of NeoVim over the course of the month.

Kaocha

I replaced lein-test-refresh with Kaocha as my watching test runner. I really like the workflow of having my test run automatically every time I save a file.

Pros:

  • Ability to focus tests with meta annotations.

  • Colored, pretty printed output on test failure.

  • Seamless integration with clojure.test and Leiningen.

  • Many plugins and helpers (e.g. notify on test failure/success with a configured tool).

Cons:

  • Found no way to stop an long running test other than Ctrl-C.

  • The diffed output can be so overwhelming, I re-run tests sometimes with lein test just to get the plain data.

  • Output is captured and only prints once the test is finished; so "debug-println" is delayed and might never print in case of infinite loops.

Conclusion

While I am not convinced that I will stick with Iced, I really liked Kaocha.

The code is on GitHub