6 ms·
Most programmers these days are quite astonished that anyone would actually still use Emacs. If they realized how much functionality it has, and how powerful it
by jpatte 13y ago
Most programmers these days are quite astonished that anyone would actually still use Emacs. If they realized how much functionality it has, and how powerful its extensibility model is, they'd be ten times as astonished. It's got things that Eclipse may never have, not in a hundred years, and that's no exaggeration.
Thrill me.
- taeric 13y agoFor one, libraries that aren't written in Java. :) Startup times less than seconds. The dead simple ability to execute any lisp in any editor with a few key presses. A really good integration with REPL environments. A somewhat nice way to treat a shell as a REPL. A mail client I like. (Hard to say that is good for others...) And, it is overstated, but org-mode really should be looked at. Literate Programming. Task management. It has it all.
- sandinmyjoints 13y agoThe mark ring. The kill ring. Registers. Each kind has its own use. Painless keyboard macros. Name, save, edit, insert a counter, make them yours. Dired. Wdired. The find-*-dired functions. Org-mode. Tramp. These are all built in. Beyond that: a major mode for pretty much any language you can think of. Packages like magit and expand-region also immediately come to mind.
- chetanahuja 13y agoand it all works about the same with a GUI or over ssh in a terminal. I pity the new engineers stuck with Eclipse or whatever (muscle memory doesn't transfer).
- agentultra 13y agoI've heard Emacs referred to as a Lisp run-time that happens to implement a text editor within it. You can reprogram it within itself without stopping to parse, recompile, or reload any code. This is pretty normal for Lisp-based applications. One interesting library I've come across is skewer-mode. It depends on a package that implements an asynchronous web server to inject some handy javascript into your browser that opens up a two-way channel with Emacs. I just have to add the href to load the script in my file and then I can open up a javascript REPL in emacs and load code into my browser without refreshing or anything. I've heard of projects that let you programmatically embed and control webkit instances. I publish books from emacs. It's a handy programming environment and not merely a single-purpose application.
- specialist 13y agoI would like to add that customizing/extending Eclipse has become a nightmare. Two of my plugins stopped working in 4.x. Took forever to get a simple Nature and Builder working again under 4.x. Eclipse's uses XML to declare UI, behavior, expressions. Completely baffling. Terrible docs. Extremely difficult to debug. I was reduced to trial and error (after copying working examples I found). I've used Eclipse since the early alphas. Its muscle memory. Scouting the plugin dev stuff of IntelliJ, it doesn't appear to suck so mightily. I've forced myself to start using IntelliJ. I miss LISP so much I could cry. Even so, I remain wary of metaprogramming. And I very much want to do plugin dev, vs modifying the runtime, for the separation of concerns. I've had to customize all-in-one runtimes and borking the whole runtime with a bad override is not fun to debug. I've not done emacs plugins, so can't comment or compare.
- agentultra 13y ago> I miss LISP so much I could cry. Even so, I remain wary of metaprogramming. And I very much want to do plugin dev, vs modifying the runtime, for the separation of concerns. I've had to customize all-in-one runtimes and borking the whole runtime with a bad override is not fun to debug. Your concerns are artificial! Let go of your concerns and be free. The hundreds of Emacs users around the world are already doing it. It's great. It used to be a bit of a wild-west without lexical binding but we have that now and it's going over pretty well. Fewer libraries step on each others' toes as adoption spreads. We have package management built-in. We have awesome introspection and debugging tools. There are a lot of wonderful built-in packages. My init file isn't even written in raw elisp anymore. I use a well-documented org file. The amazing org-babel library is bundled in. My init file is written for humans to understand and only incidentally for my editor to execute. It's great. I only wish more software was designed this way.
- erikcw 13y agoDo you happen t have your dot files up on github by any chance? Would love to take a look at how you setup your init files with org-babel.
- 13y ago
- agumonkey 13y agoAll the things cited below are just a matter of libraries, things that I don't find particularly worthy, someone could reimplement them in Eclipse. What Emacs gets by being an lisp based system, is a pervasive dynamic circularity that, Eclipse (among others) ~is far from enjoying[1]. Anything is a burden in Eclipse, the SDK is a maze of stateful randomly order objects[2]. You needed a book to have a menu action running your code. In emacs it's one line, very declarative, very composable[3] and you're done. It's pretty and gets out of your way. Everything in Eclipse was over-engineered (plugin repos that takes minutes to actualize, so much for Java jitted static typing performance). The only joy you get is the surprise you actually got the elephant dancing. This and the target miss. It was a reinvention of Visual Age but it lacks good user interaction basics (edition is very crude, hard to extend, snippets were a new shiny thing in 2007) And now that elisp has lexical-scoping, you can enjoy functional idioms to the fullest (dash.el) making your eclipse plugin java code (prior 8) even harder to swallow. [1] at least when I was quite messing with Eclipse (circa 2007) EMF, OSGi, Eclipse plugins, Eclipse SDK running in Eclipse. [2] how many ways you can get a particular object, accessing things through indexes (myArray[0] is not a stable path to anything) [3] write a simple function, wrap it in a command, wrap it in a menu or a keybinding. very iterative, layered ..
- pnathan 13y agoWell, for one thing, writing plugins is absolutely smooth in Emacs. This is not true of Eclipse, beyond the thinnest and palest shadow of a doubt. The only way forward for Eclipse to get anything approximating this is, IMO, to build a Clojure front-end for plugins to use. But design wise, the Eclipse plugin system is awful comparatively. Some of that comes from Java's native lack of extensibility and static nature. Some of it is just plain old design pattern profusion.
- tptacek 13y agoMagit. Tramp. Org-Mode. Macros. Ido. Flycheck. Hilock.
- wglb 13y agoAnd Paredit, emacs.desktop, rmail, slime, w3m mode, make integration, remember mode, instant keyboard macros, color themes, font choices.
- tptacek 13y agoRemember mode is like a very small subset of what org-mode does, right? I wasn't an org-mode believer until a few weeks ago, and then used it to bookmark and track notes for a large software project I had to audit, and it was amazing.
- wglb 13y agoIt is awesome. Remember mode is just a very simple way to remember stuff, and it can be plugged into org mode. The biggie that I forgot is calc. Just awesome.
- tptacek 13y agoI've never used calc. I use rpn, an incredibly simple rpn calculator someone I know wrote in like 1998. Why would I use emacs calc? (Curious).