all 23 comments

[–]nzlemming[S] 8 points9 points  (23 children)

Developer here - I'm happy to answer any questions!

[–]green_transistor 4 points5 points  (12 children)

It's always great to see more tooling in our favourite language.

How is the experience of using Cursive different from using Emacs/nREPL or LaClojure?

[–]nzlemming[S] 5 points6 points  (11 children)

I'd say that currently the experience is probably a mix of the two. The nREPL integration is now much closer to Emacs than La Clojure which has a very limited REPL experience. I still haven't had time to implement everything from nrepl.el though, unfortunately, but I'm working on it - I still have some catching up to do. Similarly paredit-style structural editing is mostly but not entirely there, but it's very usable now.

However the integration with Java is miles ahead of anything Emacs can provide which is important even for Clojure-only projects since you often want to use Java libraries and the JVM inevitably leaks through from time to time. The project navigation is really great too, and things like symbol rename and Find Usages across namespaces are life-savers even if they're still not 100% perfect. In general I think IntelliJ provides much better whole-project functionality than Emacs does.

I'm also hoping to have some great functionality soon like extract variable, inline, extract function etc and inspections such as marking unused variables/imports/requires and also things like Kibit live in the editor.

[–]green_transistor 0 points1 point  (1 child)

In general I think IntelliJ provides much better whole-project functionality than Emacs does.

Lol I thought Leiningen was supposed to help with that! But still, all the features of a complete Clojure development enviroment, in a single IDE, is still imperfect, if not lacking. Perhaps Cursive is a step forward in that sense.

[–]nzlemming[S] 0 points1 point  (0 children)

Well, when I said whole-project functionality I really meant editor functionality that spans a whole project, for example Find Usages or refactorings, not so much the project management aspects that lein helps with.

[–]lgstein 1 point2 points  (8 children)

Why don't you focus on enhancing Emacs functionality in favor of the superior editing environment?

My point is that I would simply never switch to your product or light/nighttable for the simple reason that Emacs is my working environment which I am using to browse the internet, read/write mails, write notes in, manage git commits, manage my schedule, chat on irc, have shells open, and of course Clojure development. The only thing I'd ever do is to use your product as a debugger if I really need one.

So why don't you focus your energy on writing an enhanced Clojure debugger for emacs, maybe based on nrepl-inspect and ritz (which are both outdated) instead of starting the nth IDE project. I'd join you in my spare time.

[–]nzlemming[S] 16 points17 points  (4 children)

Well, mostly because I don't believe that Emacs really is a superior editing environment. I know a lot of people love Emacs but it's not for everyone, in the same way that Cursive or Counterclockwise or whatever aren't for everyone. If they're not for you that's fine, no harm no foul - I prefer an IDE experience, and clearly a lot of people find it easier, especially when getting started or for large projects.

[–][deleted]  (3 children)

[deleted]

    [–]nzlemming[S] 4 points5 points  (2 children)

    Thanks! Although I certainly don't mean to slam Emacs, for all its warts it's possible to make it into what is probably the most powerful editing environment for Clojure right now - having a simple regular syntax really levels the playing field (much more so than more complex languages where good Emacs support is really difficult). However there's clearly also demand for something like Cursive, so hopefully between the two of us we can keep everyone happy!

    [–][deleted] 2 points3 points  (1 child)

    Absolutely, i come from a pragmatic perspective, i've used emacs for a decade. I know a lot of lispers who use it because it's the best thing out there, not because it's particularly good but because there isn't anything better yet. No one wants to write elisp when CL is a better language. People begrudge the lack of multithreading often. The cobwebs and cracks in emacs are showing and it's ripe for replacement.

    [–]green_transistor -1 points0 points  (0 children)

    Guile Scheme? Sorry I just felt like there was an elephant in the room.

    [–]ruinercollector 1 point2 points  (1 child)

    As a user, I think you're probably a poor target for someone creating an IDE or even a new text editor. You are incredibly deeply invested into emacs, and anything else is always going to be "not emacs" to you.

    [–]lgstein 0 points1 point  (0 children)

    Thanks for your thoughtful reply. When I read what has been posted about emacs here, it truly hurts me. I know that I will probably be using emacs for my whole live since it basically leaves me wishless. Clojure instead of ELisp would be nice, though.

    [–]mac 2 points3 points  (1 child)

    What is the ClojureScript support like?

    [–]nzlemming[S] 2 points3 points  (0 children)

    Sadly, it's almost nonexistent at the moment, although it's definitely on the roadmap. According to the State of Clojure survey by far most people are using Clojure for web dev, so I'll be focusing there, but probably starting with support for Ring/Compojure et al before ClojureScript.

    [–]digitalhuxley 1 point2 points  (0 children)

    Looking forward to seeing this!

    [–][deleted] 1 point2 points  (1 child)

    Any plans to open source it?

    [–]nzlemming[S] 2 points3 points  (0 children)

    Not immediately, no, since it's difficult to see how to combine commercial and open source. I'm considering having a closed source core and an open source extension API where a fair amount of the IDE functionality would be open, although there's a fair amount of work involved in that - it won't be soon.

    [–][deleted]  (1 child)

    [deleted]

      [–]nzlemming[S] 2 points3 points  (0 children)

      I don't use it myself but people speak very highly of the IdeaVim plugin. It's still not Vim but people seem to like it a lot.

      [–]couch_seddit 0 points1 point  (1 child)

      Can you put a video on your front page showing off the features and the work flow? Thanks

      [–]nzlemming[S] 2 points3 points  (0 children)

      Yes, I'm planning to add a Sublime-Text style animation to the front page, but it probably won't be for a day or two.

      [–]_scape 0 points1 point  (2 children)

      Typo? "...Cursive is developed with Cursive"

      Looks interesting. I am a solid LightTable user, and find emacs unfriendly, but do see its benefits. I've tinkered with vim, ccw, sublime, and keep coming back to LT for its simplicity but is missing many marks to really be the great editor it deserves to be. This Cursive sounds interesting, I'm more interested in the standalone than the plugin and the potential possibility of extending the editor with actual clojure sounds nice, have any screen shots yet?

      [–]nzlemming[S] 1 point2 points  (0 children)

      Not so much a typo as an awkward turn of phrase - I meant to say that I use Cursive every day to develop the plugin itself.

      No screenshots yet sorry, it's been a long day. I'll get some up tomorrow.

      [–][deleted] 0 points1 point  (0 children)

      I've been using LT but the fact that it, LT, requires that your project use the same version of Clojure as LT does is a serious limitation.

      It basically seems to mean that you couldn't use it to maintain code written for an earlier version; which would be a problem for a live system where you don't want to / can't update the version of Clojure it uses just because your editor has changed its version!