Clojure Leiningen Crap

By Xah Lee. Date: . Last updated: .

fk leiningen. If you continue, you are going to read this episode of Xah Rumination Extempore.

So, am doing Clojure. With clojure, there's this leiningen thing. Let's shorten it to just lein. This lein, is supposed to be a nice clojure project package manager or requirement manager or such, a la ruby's gem and bundle and rake banana.

Visiting lein, one dunno wtf it's actually doing or gonna do.

I resisted. I like to install java, clojure, manually, because i like to know what am doing.

once after java and clojure installed, i need to get other things for my project.

Apparently, if you do clojure, you can't go far, because, it has become this state that anything else you do assumes you have lein.

ok, so back to lein. You download a bash script, and run it. It's supposed to self-install. But self-install what? where? the doc doesn't say.

Ok, i run it. It spit out a help after a while. It's not clear to me where it installed things. Again, going to lein site, read its doc, its faq, no bananaing help. Ok, now i try to run one of its command and see what it does. lein repl seems safe. I hope it's not going send photos of my bedroom to russia. After running lein repl
, you see that some java server is started locally, and a bunch of jar files are gotton. But where? still don't know. WTF is with the java server? who gave it permission to start a server? is this server a builtin feature of java, or is it lein's own banana? if lein's own, where?

am i supposed to be a younster banana that doesnt care what shits goes on by external commands and go happily on with my project to lein new and stuff? banana lein. It is written by technomancy, a hacker type.

ok, now, you understand why this post started with banana lein. Now, i move forward to see what am gonna do next, and figure out the whole shit. Oh, btw, one thing i figured out is that it installed itself at ~/.lein apparently, it's one huge jar file. 15M, 11k files. Apparently, written in clojure. And, with a 15M class file, you know it can wipe out your house while you sleep.

so, at this point, it appears that the lein bash script is the let's say the command line froentend of the lein thing, and the jar file is its engine. Is that so?

a simple thing i request. When a software engineer, like yourself, uses a tool, is he supposed to know what the tool does exactly? and what things the tool do to the computer, which dir it touches? Or, are we not supposed to know, like, just download things and run it sans questions?

if a software engineer is supposed to know, then, shouldn't this info be the first thing on the lein home page? or its faq? or its documentation? As a good software engineer (not a hacker banana), we do read documentation, and carefully, right?