What's the upside of Spacemacs, even for Emacs users?

@plexus wrote:

With the folks from Nextjournal we’ve been getting really excited about Spacemacs lately. There are a few Cursive user and one Atom user holding out, but the rest of us has all moved to Spacemacs. This includes old vim hands and people who had been using Emacs for years.

Whoa interesting, why are even Emacs users switching? Does Nextjournal do pair programming? Should I consider Spacemacs as an Emacs (on Mac) user, even though I code 100% alone?

1 Like

It’s an extremely polished and complete Emacs setup, like prelude but on steroids. Nowadays you don’t have to use it with vim-bindings, you can also run it with regular Emacs bindings. Personally I’m trying to get into the modal editing more, I always thought is was the better way to do things, but due to years of Emacs muscle memory never went all in. I even wrote about why I think it’s great 3½ years ago on my blog.

Pairing is indeed also an important argument for us. I don’t usually run Emacs from a terminal because many modifier combinations don’t work properly, but with vim bindings you don’t have that problem, so we can run Spacemacs inside tmux/tmate and pair remotely with ease.

It’s a bit of a mind bender to reprogram that decade of emacs muscle memory, but I’m sure it’s good for my neuroplasticity :slight_smile: I did find for instance that using the vim style editing really didn’t work for me in org-mode buffers, but then you just press C-z and you’re back in good old emacs (what Spacemacs calls “holy mode”).

I still have to see how much of my old config I’ll copy over, but so far there hasn’t been much that I missed.

2 Likes

I’m a Vim turned Emacs + evil turned spacemacs user. And while I agree that spacemacs is nice and shiny and it’s nice to have community build config file but spacemacs certainly feels “heavy”.
My emacs.d was very fine tuned and it felt very zippy. Spacemacs has many amazing modes which I did not know existed but it turned my emacs a bit slow.

It’s like Ubuntu and Arch linux. It’s nice to have all the services which you might need pre-installed for you, but if you install only the things you need, you will enjoy the lightness and speed.

2 Likes

I never used Emacs, only Spacemacs, and I instantly ran away as it was so bloated and slow. Hitting spacebar, I can literally count the seconds before the shortcut action is done. If I’m going to use something so slow, I’d rather use something that also looks nice, like Atom, and if I’m going to use something so bloated, I’d rather use something more useful like IntelliJ.

But, that’s just me. Some people on my team don’t seem to mind the bloat and slowness of it.

I’ve been thinking of trying a leaner Emacs for Clojure, but Spacemacs really worried me to the performance of Emacs.

1 Like

This is really interesting, I guess it depends on a lot on your hardware, or maybe it’s something some people are more sensitive to than others.

Spacemacs is slow to start, but that seems to be mostly because it refreshes its melpa index every time it boots. I need to see how to disable that. In usage though it does not feel slower to me than the emacs setup I had before, everything feels super spiffy in fact.

1 Like

There is some good news on the development branch. For the upcoming v0.300.0 release, we’re finally going to get a “stable” list of elpa packages, so you will be able to configure Spacemacs to only update the list specifically when you request it. It should also be possible, according to the docs, to pre-download every package so you can install new layers even without a network connection, but I haven’t had time/motivation to figure out how to get that working.

In general, I agree that Spacemacs startup can feel a bit slow, but with the work that’s been done around supporting on-demand installation of new layers and the ability to keep some/all layers on disk (but un-installed), one could in theory slim their Spacemacs install down to the bare-bones and it should start up rather quickly, at the expense of taking the time to install each needed layer the first time a specific file-type is encountered.

4 Likes

Initially, I also had issues with the laggyness of Spacemacs. I was able to mitigate this by doing the following:

  • Switch from Helm to Ivy for the completion framework
  • Disable linum-mode and savehist-mode

Now I’m quite happily using Spacemacs.

2 Likes

@jballanc do you contribute to Spacemacs’s development? Such a wonderful project, with genuinely new ideas (layers, wrist-friendly shortcuts using leader key, which-key everywhere) and excellent execution.

I’m on master and reluctant to switch to develop, mainly because master works really well and also because I change my setup as rarely as I can.

However, I’d love to update to the latest version sometime. Can we expect to see a 0.300 release soon?

1 Like

I am only a casual contributor, reporting and (sometimes) fixing bugs as I encounter them. Generally I also stay on the master branch (when I’m not trying to fix a bug). I only recently switched over to the development branch because of a fix I had been waiting on related to the evil-cleverparens package landed on development.

I couldn’t say what the timeline for the v0.300 release is, other than to quote the current startup message on the develop branch:

╭──────────────────────────────╮

| VERSION 0.300 IS ALMOST OUT! │

╰──────────────────────────────╯

I do know that talk of having a stable branch of ELPA has been on-going for probably at least 1.5 years, so this is “a big one” in terms of releases. I’d expect at least another month or two of bake time. However, given the recent pace of closing out old issues (like the evil-cleverparens issue that made me jump to develop), I don’t think it should be much longer than that.

2 Likes

I do recommend checking it out. I had a custom emacs config for over a year, and wanted to have a nice experience with evil-mode which I wanted to use since a few weeks. Figuring out nice evilfied-keybindings for everything however would have take a lot of time. spacemacs keybindings are very though through, consistent and easy to learn.

@pesterhazy: some in the Nextjournal team have switched to the spacemacs develop branch, and it works just fine, it has some bugs fixed which weren’t fixed on master yet. If you do ClojureScript development and prefer safe structural editing (using evil-cleverparens), I have a PR open which makes this work on develop: clojure: Enable safe structural editing for cljs and cljc by kommen · Pull Request #10224 · syl20bnr/spacemacs · GitHub

2 Likes

One of the downsides of Emacs for me is figuring out configuration on my own, so I understand the appeal of having a solid common platform that’s made a lot of common-sense choices for me. You can see that that’s pretty common, with Bozhidar Batsov’s Prelude and Spacemacs (and others, such as Phil Hagelberg’s Emacs Starter Kit) becoming increasingly popular. I know I’ve spent more time than I’d like bending Emacs to my will (or, as it sometimes feels like, meekly trying to persuade it to be nice to me).

When I first heard about Spacemacs, the impression I got was that it was targeted for Vim users, with a lot of focus put on its evil-mode support. Having not been a Vim user, that didn’t have much appeal to me. Recently I’ve heard that it’s now pretty good for general Emacs use, so I decided to give it a try for a couple of weeks using only a Spacemacs config. I’m now back on my old Emacs config. The pain points for me (some echoing @anurag.peshne’s comment above :

  • It’s yet another configuration system to figure out. use-package on it’s own (and package.el and ELPA before it) has greatly simplified my emacs config. .spacemacs feels like another layer of abstraction that is hiding things rather than making things simpler.

  • And Emacs has been around for a long time, so many of the examples of how to do things are based on . Figuring out how to properly use these examples with Spacemacs has been frustrating.

  • It still seems more Vim/modal-focused than I like, even when using holy-mode. I’m not a modal-mode fan, so I understand this is a personal preference.

  • It definitely felt slower than my old setup. I’m sure part of that is because it’s loading much more. This is during use, not initial load. And moving back, it feels lighter.

I think I’d still like to find a great baseline Emacs config with sensible defaults, though I’m increasingly leaning towards the realization that I’ve got enough customization that I’m familiar with at this point that no one starter kit is going to give me what I want without some pain. Perhaps I’ll try Spacemacs or one of the other options available sometime in the future. With other tooling challenges in the Clojure universe to contend with, dealing with my editor isn’t something I’m willing to spend a lot of additional time on.

And one of the great things about Emacs is that each of us can use it how we want to. I’m glad there are efforts like Spacemacs out there tackling these types of problems because it’s something we can all benefit from, even if just partially.

2 Likes

I started on emacs with spacemacs because it made the learning it easier. After some months I moved to"pure" emacs because spacemacs seamed too cluttered and I didn’t like all the keybindigs. Also there were some small annoying things that I didn’t manage to disable like some Hydra stuff (which I hate)
I don’t like spacemacs but it was extremely helpful to get me started with emacs

3 Likes

Couldn’t agree more. My literate emacs config (org mode doc) even recommends Spacemacs to new Emacs users. It was a much longer tail to get to where I wanted to be, but I know how and where to fix things, and I can look at spacemacs layers for ideas when I want to add features or support to my setup.

1 Like

I agree with you that it’s slower then a hand crafted emacs config, but please note that the space menu delay is on purpose :stuck_out_tongue: if you hit the combos they work without the space menu showing up.

basically something like " m s f" (in clojure-mode) will send the current sexp to the repl instantly, you don’t have to wait for the menu to show up.

1 Like