
Emacs 25.1 RC1 - unsignedint
http://lists.gnu.org/archive/html/info-gnu-emacs/2016-07/msg00000.html
======
grabcocque
I just want to take this opportunity to once again proselytize the wonderful
SPACEMACS, the thing that made me fall in love with Emacs all over again.

[http://spacemacs.org/](http://spacemacs.org/)

For those that haven't used it, it's a carefully designed and polished Emacs
kit based around Evil mode (the vi emulation layer).

~~~
joebergeron
As someone who is a loyal Emacs user, would you recommend Spacemacs over
regular old Emacs? Also is the migration process very difficult? I've got to
say, it actually looks very nice and well polished.

~~~
mrsheen
It's suitable for vim users who want better vim experience. For all other I'd
suggest vanilla emacs or Prelude.

~~~
groovy2shoes
As a vim user, I emphatically disagree. It seems to support most vim commands,
but the ones it doesn't support of course become the most frustrating. As an
example, I cannot use <space> for movement/direction because it consistently
pops up some stupid menu, even in the middle if entering a command.

As a vim user, I'm also used to my editor starting up _instantly_. Spacemacs
takes so long to load that it's laughable. And since GNU emacs is single-
threaded, the whole UI is completely locked while it processes the massive
amount of configuration needed to make spacemacs what it is. The only thing
"better" about that is that it gives you an opportunity to take a coffee
break. I'm reminded of the "code's compiling" XKCD: boss says, "hey! quit
horsing around!", worker says "spacemacs is loading!" And this is with 8GB of
RAM, 8 processor cores clocked at 3.2 GHz, and filesystem on an SSD drive.

And then you run into problems with many packages from MELPA. If some third-
party package introduces its own keybindings, then you still wind up with odd
emacs-style keybindings here and there, rather than Vim-style ones.
Furthermore, Vim's leader key is backslash, not space, regardless of how _you_
like to configure it.

So, what's "better" about it? The fact that it's got a "pretty" powerline
statusline by default? The fact that it uses some dark colorscheme by default?
That's not enough for me to abandon vim.

~~~
kiiski
> Spacemacs takes so long to load that it's laughable.

Emacs is typically started once, and then you open files in the same instance.
With vanilla emacs you can use `emacs --daemon` to start it as a server, and
then use `emacsclient` to open files. That way it should open pretty much
instantly. I'm not sure what Spacemacs calls those.

~~~
groovy2shoes
Yes, I'm aware. The thing is, I haven't had any issues with vanilla emacs's
startup time in over a decade. That's probably because I don't load hundreds
of packages I don't need in my init.el. Spacemacs, on the other hand...

EDIT: Furthermore, I really don't see how a Vim user is supposed to consider
that an improvement. I can't picture someone saying, "I used to just run my
editor when I needed it, and it started instantaneously. Now, it takes so long
to start that I just leave it running all the time. It's so much better!
Powerline! YEAH!!"

If people like Spacemacs, that's fine, I don't care. Use what you want. But
I'm really getting sick of hearing that it's "a better Vim", because it's
really, _really_ not. In fact, it's so much not-Vim that whenever I use emacs,
I prefer vanilla emacs, even though I've been using Vim for over a decade.

------
0xmohit
The NEWS file usually gives more details about the changes and such. The NEWS
file [0] can be found in the git repository. (C-h n if you are already running
emacs.)

[0]
[http://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=e...](http://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-25)

------
preek
Looking for a changelog, I found this interesting collection of blog posts:
[http://endlessparentheses.com/tags-
expanded.html#emacs-25](http://endlessparentheses.com/tags-
expanded.html#emacs-25)

~~~
unhammer
[http://endlessparentheses.com/new-in-emacs-25-1-archive-
prio...](http://endlessparentheses.com/new-in-emacs-25-1-archive-priorities-
and-downgrading-packages.html) is what I'm most looking forward to – being
able to prefer stable versions, but install unstable if there is no stable
release =D

------
grabcocque
Also, this is the last release of Emacs for which RMS will be the maintainer.
He's been the principal maintainer on and off since 1976, so he's probably
earned a rest.

~~~
lispm
I was under the impression that GNU Emacs did not exist in 1976. How did he
maintain it then?

~~~
grabcocque
First version, such as it was, is older than me.

~~~
throwanem
Wrap that link in a referer stripper, please. Otherwise it redirects to a NSFW
expression of jwz's low regard for Hacker News.

------
dimitar
To those familiar with Emacs development - is there a tendency to modernise
the UI and generally make it an easier out-of-box experience?

~~~
oblio
I don't know why you're being downvoted, it's a valid complaint.

I tried Emacs/Spacemacs and for example, there's no decent tabbed interface. I
mean a real tabbed interface, at least as good as Vim's. The answers I got on
this topic ranged from: "you're not going to need it" (how do you know what I
need?) to "use this random package which kind of provides a limited subset of
the tabbed interface UX" to "write it yourself" (...).

~~~
josteink
> I tried Emacs/Spacemacs and for example, there's no decent tabbed interface.
> I mean a real tabbed interface, at least as good as Vim's. The answers I got
> on this topic ranged from: "you're not going to need it" (how do you know
> what I need?) to "use this random package which kind of provides a limited
> subset of the tabbed interface UX" to "write it yourself" (...).

I'd like to offer a _different_ explanation, which I think it much more
truthful and reflects the Emacs way(tm).

In Emacs everything (and I mean _everything_ ) is represented by the same type
of primitives: _Buffers_ made out of _text_. Every interaction with such a
text-buffer is represented as lisp-code implementing an _Emacs mode_.

This is the core of Emacs. _Everything_ in Emacs must build on this. No
exceptions. And that's incredibly powerful.

Because of these "limitations" it means everything (and I mean _everything_ )
in Emacs can be processed using the same primitives, the same functions and
the same keys.

There's no magic buttons, or drop-down lists, or special UI elements exempt
from this.

I can search/grep for text in any buffer. I can recursively grep for results
in my grep-result buffer. I can navigate these search results, the same way I
would navigate a code-document. I can enable spell-check in any mode I like
(like Git commit-mode). Etc etc.

It also means that any customization I've done to any part of Emacs, I can
apply to any third party extension as well. It means I can customize and
interact with a extension which extends another extension. There's almost no
limits to what you can do with these simple but powerful primitives.

And all that in a simple and uniform way. _Everything_ at your finger-tips.
Both as a Emacs-package developer and an Emacs-user.

Once you get used to it, it's really a captivating thing and everything else
starts feeling _wrong_.

If you want to make a tabbed interface... How are you going to represent that
using those primitives? How will that work?

How will you make sure you tab-line/row stays in place and is exempt from
other rules which governs the current buffer and the Emacs mode it runs (not
to mention the user-customized rules for this mode)?

I'm not saying it can't be done. I'm just saying it wouldn't be very Emacsy,
and it's probably not a trivial thing to implement either. Especially when you
consider that all your code also needs to work in a terminal. Emacs should be
able to work 100% in a SSH session too, you know. At least for me, that's one
of it's many selling points :)

So non-trivial and not very Emascy. That doesn't sound like anything which is
going to get lots of developer-time. Neither core nor third-party.

~~~
oblio
Vim has (more or less) the same buffer paradigm. And it still has a proper
tabbed interface.

It can be done, it's just that there's no interest in the community or from
the developers.

I can understand that, on the other hand such things make sure that a large
number of people won't ever enter the Emacs community, for good or bad.

If you don't believe me about the popularity of the tabbed interface, I
present:

\- the addition of tabs to Vim

\- the #1 feature request for Visual Studio Code, now implemented, tabs

~~~
wtbob
So you mean GUI tabs I guess? How would one even begin to display hundreds of
tabs on a screen? I hate that Firefox doesn't make it as easy to switch tabs
as emacs makes it easy to switch buffers.

~~~
redacted
IIRC vim's tabs are just views into buffers - you don't need to have a tab per
buffer at all. So you can switch between tabs, or between buffers in a tab
etc.

------
ataylor284_
The big change for this release is direct access to shared libraries.
Traditionally, emacs has executed binaries directly for all its external
interaction, using stdin and stdout for all communication. Now it will be able
to call libraries and use their native APIs rather than just two text streams.

This had been long resisted on the grounds that this feature could be used to
link emacs with non-free code.

From the ChangeLog:

    
    
      ** Emacs can now load shared/dynamic libraries (modules).
      A dynamic Emacs module is a shared library that provides additional
      functionality for use in Emacs Lisp programs, just like a package
      written in Emacs Lisp would.  The functions 'load', 'require',
      'load-file', etc. were extended to load such modules, as they do with
      Emacs Lisp packages.  The new variable 'module-file-suffix' holds the
      system-dependent value of the file-name extension ('.so' on Posix
      hosts) of the module files.

~~~
taeric
I'm curious what required this. I have to admit that the "distanced" approach
of using stdin does a good job of forcing a logical boundary between existing
tools and emacs. In particular, it makes debugging markedly easier, since you
can usually see what the program was trying to do.

That said, I do agree that just wanting to avoid non-free linked code is not
productive. That ship sadly sailed and emacs seems to be losing ground to
products that don't have this concern.

~~~
ataylor284_
I'm not following things as closely as I once did, but I think one of the main
drivers was using gcc/clang for analysis, to e.g. make parse trees available
inside emacs.

~~~
taeric
That makes sense. Though, it is a shame both of those don't just give a dump
of the tree based on a flag. :( I am guessing there just isn't a good textual
representation for some of these things?

------
gtycomb
Emacs 25.1 RC1. Installed it, tried it on Fedora 23. It works like a charm. I
continue to be amazed at the design. Thanks to all involved.

------
spdustin
I want something like a "couch to 5k" for emacs, does that exist? A daily
exercise that I can do to go from "couch" (no emacs experience) to "5k"
(proficient enough to get shit done with emacs and not miss Sublime Text).

~~~
idanoeman
I really recommend starting with spacemacs. Guide-key alone
([https://github.com/kai2nenobu/guide-
key](https://github.com/kai2nenobu/guide-key)) makes everything SO much more
discoverable. Plus, their use of SPC as a universal prefix for useful commands
is pretty nice.

------
cletus
Isn't it going a tad ridiculous when release candidates of minor roasts are
somehow "news"?

