
Buttery smooth Emacs (2016) - tosh
https://www.facebook.com/notes/daniel-colascione/buttery-smooth-emacs/10155313440066102/
======
xte
IMO any "old enough" and complex enough software suffer some kind of
"age&complexity" problems... No matter how you design it, unix choose
simplicity and we see that today no real unix exists anymore (yes, they do
exists per name, but in fact they do not follow unix principles), ITS, Emacs,
LispM, Alto, ... choose integration and completeness and except Emacs they are
essentially dead... Modern software try to choose modularity and if you find a
modern complex enough software you know well how messy pachyderm is...

Personally I choose (recently) Emacs as my main computing environment because
even with it's many problems (there are and recent evolution solve some and
add others) it's the most effective computing environment I have ever found.

So in conclusion I dream a "modern Emacs" with an EXWM that play nice with any
kind of GUIs (it gets a bit worse recently for floating windows or floating
windows apps change for the worse I do not know exactly), I dream a damn
coherent and complete MUA instead of my actual super-spaghetti-code mess mix
of mbsync+notmuch+afew+homegrown crappy scripts + ... just to have a damn good
modern and efficient email solution NO ONE, web(cr)app(y) UIs included seems
to provide... I dream a GuixSD in org-mode in my own personal config so I have
an "my_desktop.org" that contain anything from OS to Emacs config and I can
export, change, replicate it in a snap... But that's a bit of a dream for now.
New nice stuff arrive (doom modeline is really nice, for instance) but change
the entire ecosystem, perhaps re-writing it in Guile Scheme... Well It's
unlike to happen more than a timid POC by few smart guys...

~~~
benj111
I'm trying to parse your first paragraph.

Isn't Unix entirely about modularity?

And I suppose you could argue that emacs is a (os like) substrate that enables
modularity on top of it. Theres an old joke, emacs is a nice OS, only lacking
a decent text editor.

Or are you referring to the actual code itself?

~~~
jrockway
I think he's just saying that the Unix philosophy of hundreds of different
programs that communicate with pipes lost out, for him, to everything in one
address space communicating with data structures, which is what Emacs is.
Emacs was derided for being the anti-Unix. It's a text editor... but it has a
shell, and a calendar, and reads email? CRAZY. WRONG. But in reality, the Unix
way is showing its age and Emacs was a solution ahead of its time.

Emacs as a computing environment is remarkably consistent across platforms.
Say you write code, commit to a git repository, and run shell-like commands.
Your Windows computer will look exactly like your Linux box if you use Emacs
with magit and eshell for those operations. I personally kind of fell out of
using a lot of Emacs's extras, and am constantly cursing the inconsistency
between platforms.

But, to some extent, Emacs has failed even in that regard by depending a
little too much on the host OS. As far as I can tell, there is no binary I can
download for Windows that will let Emacs spell check anymore; the last time
someone compiled aspell was in the early 2000s and the latest version of Emacs
explicitly checks for that binary and tells you you can't use it, providing no
alternative. The failure is not in packaging this for Windows, of course, but
rather in allowing the OS to provide the spell checker. That should just be a
lisp package! But alas, it is not. (You will also find this in other things.
M-x rgrep is a favorite of mine on Unix-like systems. But on Windows, find.exe
is not quite the "find" that find | grep is looking for, and it's kind of a
pain to get your path setup to find the Unix version of find while in Emacs,
and still let native windows programs get find.exe included with Windows.)

However, for those ambitious enough to decide to implement the functionality
in pure Lisp... you get "write once run anywhere" which is quite enjoyable.
(And was a thing before anyone ever coined the phrase "write once, run
anywhere".)

~~~
xte
Well... Unix bring the idea of being a "base platform" for third party
software using simple IPC as a way to integrate any different kind of
software. This work well in many case, but can't really scale so I consider
UNIX model as a good model for "embedded devices" nothing more. Today's unix,
only with X prove that unix model does not exists anymore.

Emacs bring the idea that there is no real distinction between application,
OS, data whatever, we need a completely integrated computing environment that
act "uno animo" easy bent and build for anyone by anyone. This works really
well, but in academia, so in a super-slowly evolving environment because the
level of complexity needed to realize such idea in practice is so high that's
demand decades only to create a desktop... That's why Emacs while keep
evolving and even after decades it's still on the scene, it shine or better as
someone say it outshine other software like the sun outshine night stars, but
it suffer it's own architecture being nearly unable to really radically
evolve...

I hope for a distant future with a GuixSD OS, perhaps based on Plan9 (more
interest IMO than Hurd), that boot directly into Emacs instead of a shell and
anything is done with Guile Scheme so I can really see and use a LispMachine
in the present (future) but it's a dream I do not really think it can ever
arrive...

~~~
anthk
\- GuixSD is writting a Bash replecement shell based on Scheme =) \- About
Unix and Emacs, I like both approach, but Emacs tends to locks itself pretty
often. Now, if there was an Acme-like editor without mouse chord and Vi keys,
it would blast anything. Emacs has google-translate-at-point, I, myself, just
use xsel on the clipboard and pipe it automatically to translate-shell. A cwm
keybinding, and I get a translated text on a popup.

~~~
sedachv
> I, myself, just use xsel on the clipboard and pipe it automatically to
> translate-shell

You can do SHELL-COMMAND-ON-REGION (M-|) and get the output in the echo area.

------
jlarocco
FWIW, I've used Emacs for a long time (i.e. long before this article was
published) and don't recall it ever flickering.

Not to say it didn't, or that it wasn't a problem for the author, but he's
exaggerating a bit when he says it flickered all the time.

~~~
swolchok
He doesn't say it flickered all the time for everyone:

> The amount of flicker you actually see depends on things like whether
> redisplay optimized the last update, your video driver, and the purity of
> your soul.

------
kkylin
Last time this showed up:

[https://news.ycombinator.com/item?id=12830206](https://news.ycombinator.com/item?id=12830206)

And for anyone else using Emacs on a Mac:

1\. I use the plain vanilla GNU Emacs from here:
[https://emacsformacosx.com/](https://emacsformacosx.com/). It does flicker
from time to time, but it doesn't bother me.

2\. Some Mac users seem to prefer this:
[https://www.emacswiki.org/emacs/EmacsForMacOS](https://www.emacswiki.org/emacs/EmacsForMacOS)
It's supposed to be flicker-free, among other things, but doesn't play well
with MacOS native fullscreen (which I like), at least the last time I tried
it.

~~~
__lm__
On Mac I use the emacs-mac port by Mitsuharu Yamamoto:
[https://bitbucket.org/mituharu/emacs-
mac/overview](https://bitbucket.org/mituharu/emacs-mac/overview) which, in my
opinion, works well. It can also be installed via brew (from source) or brew
cask: [https://github.com/railwaycat/homebrew-
emacsmacport](https://github.com/railwaycat/homebrew-emacsmacport)

~~~
kkylin
Sorry, that's the one I meant to link above. Thanks for putting it up.

------
salutonmundo
Don't you _dare_ write about emacs on Facebook! ;) (At least it works without
JS.)

Choice of platform aside, good article.

~~~
mapcars
Does it work without JS? I had to turn it on to read..

~~~
salutonmundo
Works for me with NoScript enabled in Firefox.

(It even works in emacs!
[https://i.imgur.com/NHI7Hh2.png](https://i.imgur.com/NHI7Hh2.png))

------
jwr
I was planning on taking on porting Emacs to the iPad, given that it's a
fantastically fast, light and low-power modern portable computer. But reading
this gave me pause, I'm not sure I can dedicate as much time to this as it
seems will be necessary...

~~~
kickingvegas
If you’re willing to give up local editing, Blink.sh/mosh + tmux +
emacs/emacsclient on a remote host has done the job for me.

~~~
jwr
No, Blink does not work for Emacs.

This is a common misunderstanding: a serious Emacs setup will use multiple
modifiers (in my case, I need at least Shift, Control, Meta/Alt and Super,
preferably also Hyper). My Mac's command key is mapped to Super in my native
Emacs. My Emacs as an IDE is basically unusable without the Super modifier. As
there is no way to get the additional modifiers through Blink, this is a non-
starter. Additionally, the terminal is a bit too slow, and there are a number
of other issues (for example, remapping CapsLock to Control kind of works, but
there is a small delay, so you get missed keystrokes sometimes).

So, while I use and love Blink, it does not help with Emacs at all.

~~~
sedachv
> Meta/Alt

Meta and Alt are two separate modifiers, so if you get a JIS Japanese layout
keyboard (QWERTY with extra modifiers), you can have Alt as a separate
modifier, at least in X11, which has enough mod bits (mod1 through mod5) to
cover everything. Handy for quick input of APL, Greek, etc. Unicode
characters.

------
jeffrallen
> The authors (mainly RMS, whose present sanity reflects this effort) intended
> redisplay to be used on text terminals over slow links.

The best quote in this article.

------
sn41
GNU Emacs works better for me, since I use darkroom mode and fullscreen. It
looks nice, and is useful to focus.

------
olvar_
Does this means that Emacs will now be usable on remote desktops such as x2go?
It tends to close by itself and, if I remember correctly, it was related to
some redrawing issue that, I hope, could be solved by this.

------
schpaencoder
I just use 4coder instead

~~~
Koshkin
Non-free, closed source.

------
pietrasagh
I use emacs and vim quite rarely, only when I see potential benefit of it.
Both have some amazing features but also seems to be locked in stone age on
IT. In my opinion this is most deterring for new user - not "steep learning
curve". I wonder why they refuse to open their eyes to current (or at least
2000's) state of technology. They cling to ancient foundation of their
programs as something unmovable and unchangeable. This just looks like appeal
to tradition. Or they are total nerds that don't care about reality ;-)

~~~
anthk
Funny enough Emacspeak for the blind totally owns any new GUI technology. They
can do everything from inside: IM, web, news, coding, playing music, reading
ebooks, MUD's, check the mainstream news...

[https://tvraman.github.io/emacspeak/applications.html](https://tvraman.github.io/emacspeak/applications.html)

Your reality and bullshit applications such as Electron based bloatwares are a
bad joke against disabled people.

~~~
snazz
They are also a bad joke against those of us who have underpowered or older
machines. I love my 2006 MacBook (with OpenBSD) and I sure won't be running
Electron on there even if it supported the OS. Emacs is wonderfully fast.

~~~
anthk
Also, I am an nvi/ed user, and I'd recommend yasr(1) for the blind, but, man,
disabled people having a highly integrated textual env with sound icons, I
can't just do nothing but to applaud them for the efforts.

------
ngcc_hk
A total readable programmer horror story. Unusual such a good writer.

—-

The idea of an old architecture can still hack to work explain the genius of
chinese in china. Living in a modern worl with all those new idea like
democracy and free trade on the last 30 years or 200 years, you can still live
and intermix whilst creating genetic modified baby and reedy are 1 million
people in concentration camp at etc. I think Emacs could be a good model of
understanding how old meet new, how one (worldview) beats the Multiverse we
are in.

—-

Just need to sell emacs to African or Facebook to use the same old and
successful model.

