5 ms·
Clojure Web Infrastructure
- lukev 16y agoExcellent breakdown. This is an important point about Clojure - the culture seems to be leaning towards multiple small libraries, rather than whole frameworks or packages. Which is actually kind of neat, since a properly written Clojure library is much more composeable than libraries in most other languages.
- futuremint 16y agoIsn'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.
- astine 16y agoHoly 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.
- ericlavigne 16y agoLeiningen works well on Windows. Look for discussion of lein.bat in Leiningen's README.
- astine 16y agoI 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.
- technomancy 16y agoCounter-rant: what is it about Windows users that make them so much more predisposed to complain on the Internet than file bug reports?
- jmatt 16y agoThis is absolutely true. 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...
- barrydahlberg 16y agoBecause 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.
- pmjordan 16y agoI'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.
- orky7 16y agoas 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.
- pavelludiq 16y agoIANAL, 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?
- swah 16y agoI 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.
- mark_l_watson 16y agoApp Engine Magic looks cool, I hadn't seen that before, but trying it right now. I am most interested if AOT helps reduce loading request times.