Holy Crap why oh why couldn't someone have posted this two weeks ago?! I just upgraded an internal application from Clojure 1.1.0 to Clojure 1.2.0 and had to upgrade my entire web-stack as a result! I was more than a little annoyed to find out that not only had Compojure outsourced nearly all of it's earlier functionality to other libraries, but that I could no longer just download the jars. I'm sure Leiningen solves all of your dependency needs when you are on Linux or a Mac, but I cannot get it to work on Windows and Clojure package maintainers seem to have forgotten that there are people who might want (or need) to install libraries manually without things like Leiningen or Maven. </rant>
I understand that Clojure is still young and that it's ecosystem is still evolving at a fast pace, and I understand why the changes being made are largely improvements, but for my particular circumstances it's a large headache.
EDIT: Here's a hint for people want to get a Clojure environment going but can't use one of the package managers for some reason or other: You can visit clojars.org and download all of the jars that you need. This was, you don't need a build system on you development machine. You still have to figure out what the dependencies are manually, but you aren't stuck if you can't get Leiningen or Maven working.
I know this sounds completely crazy, but you could always run a Linux VM on your windows machine. I find this more convenient than trying to figure out how to make things work on Windows some days.
Alternatively, if you're having trouble with the lein.bat, you could try lein.ps1. (https://gist.github.com/395038) I believe that lein.sh is meant to work pretty well on cygwin now, though.
At work, I'm even doing it the other way around: Windows runs as a guest in Linux. Nothing get's done in Windows unless it's more work to do it in Linux. Interestingly, for me that's only two things: VPNs and Citrix Metaframe to connect to clients. That's it.
I can't stress how much more productive you'll be. And we're a shop selling Windows software to Banks and bigger corporations.
I spent several days attempting to get this working some time ago. lein.bat did not work for me. I don't remember what didn't work and I don't know if the situation has changed, but I don't want to open that can of worms again in the near future.
I think it's a cultural difference within the Windows development community. I've made maybe two bug reports to Microsoft related to .NET or SQLServer in the past 8 years. Everything else was either already reported and being fixed in the next 2-3 years or was reported and written off as "you are on your own - we're not fixing it". I've had similar experiences with big proprietary Windows frameworks like DevExpress. Unfortunately at this point I don't think it's changing because it's what everyone expects.
After finding the nth response like this it becomes apparent that it's easier to just find a work around and complain rather than continue to bash your head into the wall.
Hopefully Windows users will learn to contribute and report bugs in community driven development someday...
Because have you ever tried to file a bug report with MS?
That's not really fair, there are some great teams in MS. My impression is that the difficulty of communicating with anyone useful correlates pretty well with how enterprisey the product is.
I have everything running on windows in msys/bash/emacs with lein and cmd.exe with lein.bat. But I also have all the appropriate GNU tools installed and working enough to build with gcc/g++. So my install is relatively complete and probably not typical considering the time it took to get to this point.
I ran into problems where lein.bat didn't work in powershell or msys. This is commonly the case so I didn't think it warranted any bug reports. It did take some additional effort but it was similar to the effort required to get just about anything working in clojure.
For the record my take is this is a Microsoft problem. They need a packaging system that works and is built with all the crazy native windows development quirks in mind. See http://coapp.org/
Isn't this sort of the same philosophy as the way Lisps are built? It seems like having proper namespacing and a overall functional style lend themselves to smaller, more self-contained libraries.
Similarly there isn't as much of a need to have a monolithic stack like Ruby has, because Ruby's style tends to step on other's work a bit leading to preferring a all-in-one style for reliability.
I'm currently using a bunch of these; I'm not using enlive for templating as such, just modifying existing markup after it's been generated. For classical templates I've found that freemarker, a Java templating system, works perfectly with the Clojure types.
clj-record shows promise but is still rather rough around the edges. I'm hoping to contribute some patches.
I'm still trying to get to grips with Leiningen: one thing I haven't figured out is what the best way to use local jar files for Java libs. Also, using locally modified versions of libraries which are already in the leiningen system doesn't seem an intended use case.
as clojure runs on JVM so is there is any string attached to the language whose other end is with the Oracle in any crazy manner imaginable? after the google vs oracle patent case i am really afraid of java. what is the point of open source java if there are patent issue which can come and get you.
IANAL, but i believe that as long as you don't try to implement your own JVM, you're safe from lawsuits. Imagine that Microsoft sues some Linux company because of some windows patents(didn't they actually do that?), would that stop you from using either Linux or Windows?
I removed the routing layer (Compojure) and my code is now clearer and shorter, by resolving URIs directly to functions. At least for developing this is great. Lets see where this will take me.
I understand that Clojure is still young and that it's ecosystem is still evolving at a fast pace, and I understand why the changes being made are largely improvements, but for my particular circumstances it's a large headache.
EDIT: Here's a hint for people want to get a Clojure environment going but can't use one of the package managers for some reason or other: You can visit clojars.org and download all of the jars that you need. This was, you don't need a build system on you development machine. You still have to figure out what the dependencies are manually, but you aren't stuck if you can't get Leiningen or Maven working.