5 ms·
Not an Emacs user, so forgive me if I'm being dense, but is this (from the README) really true? Emacs will change how you think about programming. Emacs i
by mrec 8y ago
Not an Emacs user, so forgive me if I'm being dense, but is this (from the README) really true?
Emacs will change how you think about programming.
Emacs is an incremental programming environment. There's no
edit-compile-run cycle. There isn't even an edit-run cycle. You can
execute snippets of code and gradually turn them into a finished
project. There's no distinction between your editor and your
interpreter.
I'm assuming what it means is "Emacs will change how you think about programming Emacs Lisp". Which is a rather narrower proposition, and much less of an incentive to switch, since I doubt many non-Emacs users are particularly interested in programming Emacs Lisp.
- bachmeier 8y agoMy interpretation is that it's not a statement about writing code but running it. It's accurate IMO but probably not terribly important in the grand scheme of things. > I doubt many non-Emacs users are particularly interested in programming Emacs Lisp By definition, if you're programming Emacs Lisp, you're an Emacs user. Emacs is the interpreter.
- serhart 8y ago> By definition, if you're programming Emacs Lisp, you're an Emacs user. Emacs is the interpreter. That's not necessarily true. Guile supports Elisp as a language. You can write Elisp sans Emacs.
- another-cuppa 8y agoIt is true. Learning any Lisp changes how you think about programming. Learning Emacs Lisp will make you wish all development was like that.
- tmountain 8y agoClojure + Cider inside of "Spacemacs" is the most enjoyable development environment I've used in over 20+ years of programming. It's amazing how quickly you can get stuff done. Lisp changes how you think about programming. Emacs gives you the shortest path to a code/test feedback loop.
- tsmarsh 8y agoYeah, it does that. Its not just emacs lisp, clojure, clojurescript and CL2 all have tight integration. The difference is what it means for your repl. You can trivially attach your repl to a running process. So you change an expression, tell emacs that you'd like that to be sent to the repl, and because the repl is attached to your running process everything updates immediately. I put this together years ago: https://www.youtube.com/watch?v=W2NJppeLsN8 https://www.youtube.com/watch?v=W2NJppeLsN8 It does a pretty terrible job of demonstrating what this might mean for something like web development where the feedback circle is usually as bad as it can be.
- rauhl 8y agoYes, it’s true — and it’s not just true of elisp (which is a decent language) but also of Common Lisp, Python, Scheme and others. It’s probably most true of elisp, because the editor itself is written in elisp, but one gets something of the same tight edit-execute cycle in those other languages too. Once you’ve been there, you’ll probably never want to go back. My only wish is that emacs were written in an even better language than elisp (like Common Lisp).
- ealhad 8y ago> My only wish is that emacs were written in an even better language than elisp (like Common Lisp) There are a lot of bad things in CL too, unfortunately. I wonder if a Lisp will become really popular in the near future. Maybe Racket?
- lispm 8y agoThere are 'bad things' in any programming language. Common Lisp is actually quite a bit more advanced out of the box than Emacs Lisp: lexical binding, excellent error handling, good support for compilation, extensive object-oriented features, it has multiple implementations with independet code bases, implementations with threading, ... CL has been used to develop Emacs editors already. But the thing is a non-starter. There are a few million lines of Emacs Lisp for a specific editor, which nobody will rewrite.
- rauhl 8y agoEmacs Lisp has lexical binding these days. I’d like to see an Emacs with a Common Lisp core, and an elisp execution engine to run all the legacy elisp code. https://github.com/blindglobe/clocc/blob/master/src/cllib/elisp.lisp https://github.com/blindglobe/clocc/blob/master/src/cllib/el... looks like a decent first start, although it supports an older version of elisp. Someday if I have the free time I’d love to spend time working on such a thing. Maybe when I’m retired!
- lispm 8y ago
- db48x 8y agoThe more usual statement is that learning Lisp will change how you think about programming. Many have said that it will expand your frame of reference, and make you a better programmer in whatever other languages you end up using. I agree with them, and also that having a programming language so easily accessible inside your editor is also similarly liberating. You can decide that your editor can work more efficiently in some way, then take a few minutes to extend how your editor works, and then continue on with your original task. As languages go, I would say that Forth and Prolog also have this quality of expanding your frame of reference.