Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between Cake and Leiningen?

What's the difference between Cake and Leiningen?

like image 228
Michiel de Mare Avatar asked Oct 11 '10 12:10

Michiel de Mare


Video Answer


1 Answers

This answer continues to get interest, presumably as a reference for Leiningen in StackOverflow so it is now significantly edited to update it for 2014.

Leiningen and Cake merged back in 2011. Leiningen (version 2) is now the de facto Clojure automation tool.

Leiningenis a build tool and dependency manager for Clojure which includes the ability to set up an interactive REPL with the appropriately configured classpath and with all java and clojure dependencies acquired in an automated manner from maven repositories and/or the community based Clojars.

Cake was very similar to Leiningen (down to using the same project.clj file format at the time) but attempted to avoid a lot of startup overhead by keeping persistent JVMs around in the background. This was more responsive but traded convenience for bugs due to accumulated state in the persistent processes (old function definitions hanging around etc.) over the typical course of iterative REPL based development. This turned out to be a bad bargain.

Experience with Leiningen and a continued desire for faster startup times have lead to an number of recommendations and approaches for speeding things up: https://github.com/technomancy/leiningen/wiki/Faster

like image 188
Alex Stoddard Avatar answered Sep 30 '22 05:09

Alex Stoddard