Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The Ingebrigtsen quote is meaningful. One should think of "using Emacs" not like "using Vim" but like "using the JVM."

Emacs is a powerful platform for building hackable, command-and-ui driven applications. You may not like the text editor that ships with a default Emacs install, but you don't have to use it! There are others (e.g. evil.)

There are also other applications. Some of my favourites are

- calc (desktop RPN calculator with advanced functionality)

- magit (context-aware git UI that interacts seamlessly with the git command line)

- sunrise commander (orthodox file manager that thanks to TRAMP can visit remote filesystems as if they were local)

- ediff (diff reconciliation between files)

and my train is coming now so this is where the list stops but it could go on for a long time.



Even though I've been using emacs as my main IDE for ~3 years (when I switched from Java in IntelliJ to Go), and using it for non-IDE tasks for ~5 years, I wouldn't recommend anyone builds a command-and-ui-driven application in Emacs if they have any expectation to use it outside of the Emacs ecosystem.

For example, I love magit and find it much nicer than many Git GUIs, but I would still recommend something like Git Kraken (or just the GIT CLI) to someone who is not already using emacs for other things.

Emacs is extremely idiosyncratic, and the barrier to entry of using an Emacs-based app is nowhere near as small as using a JVM-based app (and even that is too much for most uses).


calc is just insane. From the manual:

"Calc was originally started as a two-week project to occupy a lull in the author’s schedule.

...

Emacs Lisp would surely reach its limits long before the project got too far out of hand.

To make a long story short, Emacs Lisp turned out to be a distressingly solid implementation of Lisp, and the humble task of calculating turned out to be more open-ended than one might have expected.

Emacs Lisp didn’t have built-in floating point math (now it does), so this had to be simulated in software. In fact, Emacs integers would only comfortably fit six decimal digits or so (at the time)—not enough for a decent calculator. So I had to write my own high-precision integer code as well, and once I had this I figured that arbitrary-size integers were just as easy as large integers. Arbitrary floating-point precision was the logical next step. Also, since the large integer arithmetic was there anyway it seemed only fair to give the user direct access to it, which in turn made it practical to support fractions as well as floats. All these features inspired me to look around for other data types that might be worth having.

Around this time, my friend Rick Koshi showed me his nifty new HP-28 calculator. It allowed the user to manipulate formulas as well as numerical quantities, and it could also operate on matrices. I decided that these would be good for Calc to have, too. And once things had gone this far, I figured I might as well take a look at serious algebra systems for further ideas.

... (and on and on and on) ...

Final thanks go to Richard Stallman, without whose fine implementations of the Emacs editor, language, and environment, Calc would have been finished in two weeks."

If you look at its feature set, it is amazing how much can be done with it. It has nifty features like evaluating formulae inline in any buffer, and replacing the expression with the result. Expanding things to their LaTeX representation, etc.

I spent a lot of time trying to learn it. I use it for simple calculations, but ultimately decided it is not worth my time to go much further. That same effort would be better spent learning Sage, with a lot less cognitive load. And there is decent integration between Sage and Emacs.


One other notable application is gud (realgud?), although for some reason I'm having a hard time getting used to it. Must be my vim bindings.


Git gud? :)


I recommend calc, I fell in love with RPN and can’t use normal calculators anymore.

Never heard about sunrise commander though.


Same here. I knew about RPN before Calc, and knew there were calculators that used it, but it seemed bizarre to me. Once I started using Emacs, I decided to see what Calc was all about, and finally realized how slick it feels. It's really cool to need to do some math while coding or writing, hit a quick keybind, and have a full-fledged calculator right in my editor.

And the cool part is you can do things algebraically, too. Even solve for variables. Really crazy program.


I occasionally need a calculator, but I just evaluate elisp expressions in *scratch*. What am I missing by not using calc?


Fewer keypresses. RPN input is very efficient that way. Something like (sqrt (log (* 3 (+ 9 7))) in calc is "9 RET 7 + 3 * L Q".

(Sorry about the bad example, I'm short on time.)


Thanks, that makes sense, especially the avoiding parenthesis part.


I would also add ztree-diff to that list.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: