4 ms·
I tried out Clojure for a personal project about a year ago, just to see. The tooling situation definitely needs some work. Compared to the batteries-included
by _bxg1 7y ago
I tried out Clojure for a personal project about a year ago, just to see.
The tooling situation definitely needs some work. Compared to the batteries-included setup of Cargo or NPM, it felt pretty slapdash. The fact that Leiningen is both the go-to and unofficial was a tad bewildering.
Once I got set up, the development experience in VSCode was also quite underwhelming. I've never liked CLI editors and I didn't want to shell out for IntelliJ, so it was my best option, but it didn't offer much beyond indentation and inline eval (the latter was cool, but the lack of basics like autocomplete outweighed it).
These factors obviously aren't as relevant at a company that already has a standard way of doing things, and maybe the situation has improved since I tried, but it really put a damper on the "hit the ground running" experience which is important for gaining initial traction with developers.
All of that said, I can see the language being really pleasant to use in the right context. Most of my hobby projects involve GUIs and/or graphics, so I haven't done any more Clojure since. If that weren't the case maybe I would've put in the extra time to really figure out a good environment for it.
- tekacs 7y agoA few of these things may differ from when you tried Clojure out last: > The fact that Leiningen is both the go-to and unofficial was a tad bewildering. Clojure now has an official, built-in CLI that mostly supersedes Leiningen. You can just install Clojure itself, create a 'deps.edn' (which can be as simple as '{}') and get going at a REPL by running 'clojure' or 'clj'. Packages are auto-installed - in some ways I find it even easier than node, where npm is a separate tool/install sometimes. :) > Once I got set up, the development experience in VSCode was also quite underwhelming. There's a VSCode editor plugin called Calva[2] which has developed pretty thoroughly over the last year or so. Outside of IntelliJ/Cursive, it's starting to become one of the more feature-complete systems and it has plenty of features that you'd expect. [1]: https://clojure.org/guides/deps_and_cli https://clojure.org/guides/deps_and_cli [2]: https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva https://marketplace.visualstudio.com/items?itemName=betterth...
- _bxg1 7y agoI believe Calva is what I used, but it's entirely possible that it's gotten better since then
- tekacs 7y ago> it didn't offer much beyond indentation and inline eval (the latter was cool, but the lack of basics like autocomplete outweighed it) It definitely has intellisense/autocomplete now, so that at least is one point of difference from when you last saw it. :)
- _bxg1 7y agoGood to know!
- dimitar 7y agoIt saw some major releases and inprovements in 2019, it is worth revisiting imo
- dimovich 7y agoYes, the official Clojure build tool (deps.edn) is amazing. The ability to use local projects as deps is very useful. It allows to split your bigger project into smaller projects and reuse them. It's also possible to use directly git repos as deps which is useful for trying the latest libs. This, coupled with a REPL driven development gives you a very interactive and agile dev experience.
- didibus 7y agoYou only need the free version of IntelliJ for Clojure development. And Cursive is free to use for non-commercial endeavors. Just in case others were looking. It probably helps to start with IntelliJ + Cursive, instead of trying the lesser featured VSCode and Atom support, or the more difficult to master Emacs + Cider combo or the many VIM alternatives.
- Oreb 7y agoNo reason to shell out for IntelliJ: The free community edition is all you need, and the Cursive Clojure plugin has a free personal license option.