4 ms·
I thought that Clojure was losing its buzz in recent times. Perhaps it is that even though the core language is elegant its ecosystem of leiningen, maven for de
by billfruit 8y ago
I thought that Clojure was losing its buzz in recent times. Perhaps it is that even though the core language is elegant its ecosystem of leiningen, maven for dependencies, etc, and the whole brittle emacs-cider-nrepl chain is detracting from its core strengths.
And poor startup times, and unhelpful error messages (though I hear there has been some improvement in recent versions).
- maxgiraldo 8y agoI can't speak about lein or maven, but it is in no way a requirement to use emacs as your editor. In fact, there is really interesting work going on in other editors like Atom with proto-repl[1]. For the web, you can spin up a Gorilla REPL[2] which basically gives you a Jupyter notebook but for Clojure. [1] https://atom.io/packages/proto-repl https://atom.io/packages/proto-repl [2] http://gorilla-repl.org/ http://gorilla-repl.org/
- billfruit 8y agoI thought the emacs tooling depended upon leiningen.
- KingMob 8y agoNo. It depends on a library called nREPL, but you can start that in multiple ways (the other candidates being tools.deps and Boot)
- didibus 8y agoNo it doesn't. It depends on nRepl. Personally, I find maven repos and lein to be one of the better dependency/build ecosystem of any language. So I disagree with your premise. But, if you don't like them, there's a lot of alternatives. For dependency management, there's now an official one, maintained and bundled with Clojure, called `tools.deps`. It supports multiple providers, currently maven repos, git repos and local folders. For build tasks, appart from Lein, you can use Boot or Gradle. But there's a new trend now to rely on individual Clojure programs as the foundation for build tasks, which are then packaged and distributed through `tools.deps`. You can see their full list here: https://github.com/clojure/tools.deps.alpha/wiki/Tools https://github.com/clojure/tools.deps.alpha/wiki/Tools In the ClojureScript world, there are less build options, but `shadow-cljs` has emerged as a replacement for Lein, and gained a lot of popularity, because it integrates transparently with npm.
- bgorman 8y agoCertainly the pace of growth has slowed, but the language is still growing at a lessor pace. I would say Leiningen/Maven is a major strength of the clojure ecosystem. However, if you do not like Leiningen, now there is now an "out of the box" solution to manage dependencies and construct the classpath. https://clojure.org/guides/deps_and_cli https://clojure.org/guides/deps_and_cli In addition, you do not need to use nrepl. Clojure has a socket repl and a socket prepl as of Clojure 1.10
- billfruit 8y agoThat sounds better, perhaps now Clojure can outgrow the "batteries-not-included" feel.
- cutler 8y agoAmen to Emacs-Cider-nREPL hell. The number of hours/days I've wasted over breakage between these three. I would also add the obsessions with boot and elaborate "quickstart" guides to Clojurescript which eschew the easiest path to getting started - Leiningen - in favour of the latest DIY fad such as shadow-cljs.
- fnordsensei 8y agoI disagree with the characterisation of shadow-cljs as a fad. It's a 4 year old project at this point, and in my opinion the easiest way to get started with cljs for a newcomer. It has sane defaults, and incorporates a ton of effort to "just work", such as with regards to the effortless way that you can pair it with npm or yarn to pull in arbitrary JS libs.
- yogthos 8y agoYou can use pretty much any popular editor, such as Atom, VS Code, IntelliJ, and even VIM, for Clojure development nowadays. I personally use IntelliJ and I've never touched Emacs for any serious projects. I'm also not sure what the problem with Leiningen is, it's a hell of a lot better than most build tools I've used. If you want to see brittle, you should take a look at NPM clusterfuck. Yet, people happily use that mess all the time. Poor start up time is typically not an issue for web applications, which is the primary domain Clojure is used in. Meanwhile, at dev time you're using the REPL, so you're not restarting your app all the time. I often have an instance of the app running for weeks on end as I work on it. For environments where start up time matters we now have ClojureScript on Node and GraalVM. The error messages are indeed a huge improvement in Clojure 1.10.
- Riverheart 8y agoAny tips for Lisp writing/editing in a non-emacs editor?
- yogthos 8y agoMy recommendation would be to either try Calva [1] with VS Code, or Cursive [2] with IntelliJ. [1] https://marketplace.visualstudio.com/items?itemName=cospaia.clojure4vscode https://marketplace.visualstudio.com/items?itemName=cospaia.... [2] https://cursive-ide.com/ https://cursive-ide.com/
- Riverheart 8y agoThanks!
- ilikehurdles 8y agoI recommend cursive to start. Use the trial version for a month and see how it feels. It’ll spoil you though with how little setup is needed aside from choosing between parinfer and paredit for structural editing (I prefer the former).
- billfruit 8y ago
- lincpa 8y ago[Notepad++ 7.5.6 for Clojure](https://github.com/linpengcheng/ClojureBoxNpp https://github.com/linpengcheng/ClojureBoxNpp)