6 ms·
He mentioned python issues such as deployment and the GIL. While python is my language of choise, I agree those are significant pain points. Unfortunately, he d
by cdavid 16y ago
He mentioned python issues such as deployment and the GIL. While python is my language of choise, I agree those are significant pain points. Unfortunately, he did not mention how clojure solves deployment - is it solved through maven and other java solutions ? It did not strike me as a nice solution either.
- true_religion 16y agoIsn't java deployment as simple as distributing a .jar or a .war----one file? Python deployment on the otherhand is a tarball of several files.
- runevault 16y agoyes all deployment options that work for normal java apps can be done with clojure as well, since in the end it's all bytecode, you just require the one extra chunk that's made up of the clojure.jar and probably contrib to get your baseline to make things work.
- runevault 16y agoMaven is not thrilling, but with lein over the top and clojars for clojure specific jar files, it's reasonably painless IME.
- cdavid 16y agoBut what's the difference with python at that point ? Is is because the JVM makes it inherently easier ("one" jvm, one bytecode, no difference between version/build options for C extensions) ?
- runevault 16y agoThat and by default you have the classpath so each setup has exactly which version of the various jars you specify in your project.clj file, without needing external tools like virtualenv.
- gislik 16y agoJust to collaborate a little bit on this point. With leiningen things are not too bad. A typical deployment instruction file (project.clj) looks like this and with "lein deps" you're all set up in a few seconds. (defproject leiningen "0.5.0-SNAPSHOT" :description "A build tool designed to not set your hair on fire." :url "http://github.com/technomancy/leiningen http://github.com/technomancy/leiningen :dependencies [[org.clojure/clojure "1.1.0"] [org.clojure/clojure-contrib "1.1.0"]] :dev-dependencies [[swank-clojure "1.2.1"]])
- gislik 16y agoouch ... formatting is clearly not preserved :( But take a look at https://github.com/technomancy/leiningen https://github.com/technomancy/leiningen
- jedsmith 16y agoFour spaces in front of each line will preserve formatting. int main(int argc, char **argv) { printf("whee!\n"); return 0; }
- dpritchett 16y ago(defproject leiningen "1.5.0-RC1" :description "A build tool designed not to set your hair on fire." :url "https://github.com/technomancy/leiningen" :license {:name "Eclipse Public License"} :dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"] [lancet "1.0.0"] [jline "0.9.94"] [robert/hooke "1.1.0"] [org.apache.maven/maven-ant-tasks "2.0.10" :exclusions [ant]]] :disable-implicit-clean true :eval-in-leiningen true)
- cdavid 16y agoI am not familiar with leiningen or clojure, but it looks like you are just adding a list of requirements + version, which is exactly what you get with pip + requirements.txt file ?