4 ms·
I've always assumed Clojure was the right choice for a Lisp to do web applications. Perhaps I should revaluate my assumptions.
by TheMagicHorsey 12y ago
I've always assumed Clojure was the right choice for a Lisp to do web applications. Perhaps I should revaluate my assumptions.
- apgwoz 12y agoIf you're assuming this based on some microbenchmarks, you should probably instead reevaluate your evaluation techniques. (This isn't meant as a personal jab, but too many people focus on silly things like microbenchmarks when choosing tools, and not on other more important things like support avenues, tooling, libraries, etc.)
- aroman 12y agoI don't think it's fair to assume that TheMagicHorsey was basing his evaluation on the microbenchmarks themselves. The real story here is that people are working on a number of new libraries/modules/tools for doing web development in CL — the benchmarks (as you correctly point out) are a minor detail.
- apgwoz 12y agoPerhaps you should read more carefully. "If you're assuming ..." It's just not clear from the context we have. But, caution! Microbenchmarks should only be Microtrusted.
- adrianm 12y agoI think this is truly sagely advice. My grand takeaway from Aphyr's Jepsen series (http://aphyr.com/tags/jepsen http://aphyr.com/tags/jepsen) is that the more sophisticated software becomes in the never-ending quest for features and performance, the more likely the fundamentals underlying it have been overlooked, glossed over, or ignored completely.
- eudox 12y agoWhen you compare the time fukamachi's spent on these libraries to the time spent on Clack, Caveman, etc., it's pretty clear there's obsession with performance. As aroman said, "The real story here is that people are working on a number of new libraries/modules/tools for doing web development in CL".
- adrianm 12y agoI didn't mean to imply that the original post was not worthy in anyway whatsoever, in fact I think all of the work he is doing in the CL ecosystem is awesome and I look forward to playing around with it soon in my next CL project. But apgwoz's general point about how we evaluate software is spot on. In general, I think benchmarks and the like have a sort of "woo"ing effect on people (in the James Randi sense), and we should probably take a few moments to reflect on that before making any major architectural decisions. :)
- eudox 12y agoI agree entirely, but at the same time, I think too often people make social rather than technical decisions. Lots of stars on GitHub and a well-designed website are usually indicative of a good project -- but people put too much faith on CSS, the same way they put too much faith on microbenchmarks taken in laboratory conditions.
- wes-exp 12y agoI think too often people make social rather than technical decisions Indeed. It's sad that as engineers (who theoretically espouse logic, reason, and evidence) we still end up making so many decisions based on herd behavior.
- PuercoPop 12y agoThis -> people make social rather than technical decisions Leo Meyerovich did a study on the social factors that affect language adoption[0]. Vivek Haldar has a highlights the salient points[1]. More info at his site: [2] [0]: http://lmeyerov.github.io/projects/socioplt/papers/oopsla2013.pdf http://lmeyerov.github.io/projects/socioplt/papers/oopsla201... [1]: http://blog.vivekhaldar.com/post/56972066006/empirical-analysis-of-programming-language-adoption http://blog.vivekhaldar.com/post/56972066006/empirical-analy... [2]: http://lmeyerov.github.io/ http://lmeyerov.github.io/
- ska 12y agoI'm curious, why would you assume that? The primary benefit and cost, depending on your point of view, of clojure is that it runs on the JVM. I don't see how that would be a strong argument for or against using this tooling for any problem domain unless you were already committed to or against the JVM for other reasons.
- PuercoPop 12y agoBeing able to run on the JVM is not a differentiating factor among lisps. Kawa Scheme and ABCL give you access to Java Libraries. If you ask me the strengths of Clojure that it is built upon abstraction/interfaces (ie. conj instead of cons) and how it manages hygiene while retaining quasiquotes templates leveraging clj's namespaces. But then again you should probably ask a clojurian instead.
- _pmf_ 12y agoAn advantage of Clojure over ABCL is the syntactically nicer Java interoperation and the mechanism to avoid reflection by using "warn-on-reflection" and introducing type hints.
- pnathan 12y agoI've generally been happy with my use of Common Lisp in the web environment - it's had a long-standing presence there. I've personally not found deployment the most happy story, but I expect that with the rise of Docker, shipping a Common Lisp image in a Docker image will be a very popular method of deployment.
- 147 12y agoCan somebody give arguments for using Racket or CL for web dev? Whenever I evaluate Lisps I end up choosing Clojure because to me it seems to be the most practical to develop web apps in.
- jwr 12y agoI don't think you should look for arguments. Just try it. Write something in every one of the environments you are considering and you'll learn more than you ever could from reading online discussions. As a data point, I moved from Common Lisp to Clojure and never regretted it. But the reason I switched was not because I read something online, but because of Clojure's concurrency support, which means I can create concurrent software that is robust.