3 ms·
> I thought it'd be worthwhile to move to a new framework just so I don't have to juggle so many languages on a daily basis. That's actually a big reason we us
by sdegutis 10y ago
> I thought it'd be worthwhile to move to a new framework just so I don't have to juggle so many languages on a daily basis.
That's actually a big reason we use Clojure at work for our web app: the only language we use is Clojure, from beginning to end.
- danso 10y agoThat's definitely on my list, at least to learn it for expanding my knowledge of language design. It's hard to imagine moving away from Python and all of its scientific packages. (I really do hope I never have to build another full-stack web app, either in Rails, Django, or whatever...unless it's to put food on the table)
- eric-hu 10y agoHonest question: how can you stand the JVM start up time and the terrible stack traces? I find myself wishing there were a clojure not on the JVM (or on javascript)...pretty much I think I'd be happier with another lisp, but I'm not sure.
- chc 10y agoJVM startup time is kind of annoying, but doesn't seem like a very big problem. You can use drip or nailgun to avoid dealing with it most of the time.
- sdegutis 10y agoGood question. At the beginning of my work day, I open Emacs with Cider installed, and start a JVM inside there using Cider (M-x cider-jack-in), and do all my work in the same JVM all day. Because we make heavy use of immutability, it's easy to completely tear down all our existing namespaces and the single global variable representing the app, reload all namespaces and their functions, recreate a new app instance, and start it. And I bound all this to Cmd-R in Emacs. So any time I make a change to our web app during development, I just hit Cmd-R and it reloads the entire app in about 0.2 seconds. I don't even notice it, honestly. This is better than what we used to do, which was to poll the disk for changes to any files, and reload them when they've changed. That was much harder on the disk, and half the time I'm saving, I'm not ready for its code to be reloaded yet anyway. For tests, we just use Cider's built-in features, which let us either run the tests whose code changed, or all tests, depending on what we want to test.
- JBReefer 10y agothanks for the write up, real work examples are so useful!