6 ms·
Taking it to Th’emacs
- one-more-minute 12y agoCheck out Light Table. It has a really interesting architecture specifically designed to support that kind of interactive scriptability / extensibility, and the fact that it's written in a decent Lisp (Clojure) is the icing on the cake. It's a joy to work with, because even when the internal code has problems you can just patch it on the fly.
- taeric 12y agoReally seems that you can take emacs back to the core by just looking at the origin of the name. Editor MACroS. Says it all right there, it isn't just a text editor. Indeed, the text editor portion is almost incidental. Emacs is a set of programs that all operate with the text editor as the common environment. This works remarkably well with things that communicate through text. Which is, not unsurprisingly, a lot. Doesn't work as well for purely visual things. Especially not those that are lacking a text representation.
- yarrel 12y agoEmacs can display and edit vector graphics. I wrote a dedicated vector image editor a while back ("Minara") in which the application, tools, and images were all just Scheme code (using Guile). I'm now wondering about representing and manipulating bitmap images in a similar way to Emacs' vector handling. I think it could be fun and I don't see any practical impediments. Just represent the image as a PPM-style text while it's in Emacs then write it out as binary afterwards.
- taeric 12y agoOh, certainly. And you'll never get a lack of my preaching the gospel that is org-mode. The inline latex/ditaa/graphviz/whatever manipulation is truly first rate and borderline mind blowing. The problem, I think, is when people refuse to think of the textual representation as a reflection of the graphical one. Worse, we constantly dream of many textual representations of the same visual thing. Consider the constant wishing there was an AST based code editor, and then all of us that point out how paredit is that editor. More to the point, the more complicated your AST or other language, the more difficult it can be to have meaningful semantics that are intuitive. What does it mean to type into a graphics image? Go down? Etc?
- S4M 12y agoDo you have Minara available somewhere? I'd be interested in taking a look.
- agentultra 12y agoThere are WebKit integrations in Emacs available [0]. The beauty of emacs is that it's actually programming language kernel that has a text editor built in. You can extend Emacs far beyond text. [0] http://www.emacswiki.org/emacs/WebKit http://www.emacswiki.org/emacs/WebKit
- rthomas6 12y agoThis makes me wonder if it would be a good idea to make an emacs clone with another language, say, Scheme or Lua? Or Haskell? Edit: ah, it looks like it's been done for Scheme: http://www.emacswiki.org/emacs/GuileEmacs http://www.emacswiki.org/emacs/GuileEmacs
- RichardFord 12y agoEmacs is my preferred text editor. I don’t use old-fashioned text editors as much as I used to, because I often need more specialized tools. I use IDEs for various programming languages and other things when producing high quality documents. And yet, I often wish I could subsume these with a tool that had the basic goodness of emacs. I love the ease of customization of Emacs and other text editors, but they're just plain dumb when it comes to knowing programming languages.
- taeric 12y agoMe thinks you haven't used emacs as much as "other text editors." There are very few features that people "wish" emacs had, that it doesn't actually have. Specifically, language recognition is not just regexes in emacs.
- TeMPOraL 12y agoShameless plug, but I wish I had this feature in Emacs: https://news.ycombinator.com/item?id=8247426 https://news.ycombinator.com/item?id=8247426 ;). I'd make it myself, but between work, thesis and procrastinating on HN, I'm not going to do this anytime soon.
- taeric 12y agoThat looks like it should be ridiculously easy to do. Feels like it would be annoying pretty quickly, though. (I typically have my computer completely muted...)
- TeMPOraL 12y agoI'm not proficient enough in elisp to feel that it's ridiculosly easy ;). Probably it would be annoying, but you do science by testing things ;).
- Cieplak 12y agoPerhaps this is not the right forum but does anyone know of a good emacs mode for jump-to-definition in Python? I've used ctags and jedi but haven't been able to configure anything as awesome as the Python plugin for IntelliJ (same as PyCharm). To implement it, it would require a combination of static analysis and on-the-fly interpretation, given Python's duck typing. If emacs had this, I would use emacs all the time.
- hollerith 12y agoEmacs has built-in scripting language. . . . All of the editor’s functionality is exposed via APIs written in the scripting language. As a consequence, you can control everything emacs does programmatically. This makes emacs extensible in a way that is far deeper and more powerful than a plug-in architecture. A plug-in architecture must anticipate every desired extension to the system. Since it never can, it always disappoints in the end. Along the way it grows ever more complex and bloated in its futile attempt to foresee every possible need. With a language, you can code any extension you need. Does anyone who has tried to modify both Emacs and an editor (or IDE) with a plug-in architecture agree or disagree with that?
- to3m 12y agoComplex and bloated, eh. Thank God emacs has managed to avoid that fate... As far as extensibility goes, the openness is the most important part, I think. No need for a scripting language necessarily - though it makes many things more convenient.
- _delirium 12y agoHaving picked up Emacs recently, it feels sort of the opposite of bloated, though there is definitely complexity. I think its reputation for being large dates to a different era of minimalist Unix tools, when Emacs using MEGABYTES of memory ("eight megs and constantly swapping") looked big compared to vi. But if you're comparing emacs to Eclipse, it's a resource-stingy speed demon.
- hollerith 12y agoEmacs is not complex and bloated by the standards of recent decades. To address the "complex" point, yes, there are a lot of lines of source code in the Emacs tarball -- not nearly as many as in Firefox's source-code tarball or Chrome/Chromium's, but certainly at least an order of magnitude more than, e.g., Bash's tarball -- but the vast majority of those lines of code will never run on your machine unless you make a conscious decision to do so. E.g., the tarball contains at least 9000 lines of Emacs Lisp specific to the Ada programming language (code that indents code written in Ada, code that applies Ada-specific syntax coloring / highlighting, etc), but unless you explicitly load the files containing the 9000 lines or you open a file with the extension ".ada", those 9000 lines will (unless I'm really missing something) never run. Emacs does have a steep learning curve. E.g., what Emacs calls a frame, everyone else calls a window; what Emacs calls a window, everyone on Windows, Mac, etc, calls a pane (and the decorations around Emacs's panes, er, windows, look nothing like those around most of the panes on the OS on which the Emacs is running.) E.g., Control-U in Emacs does not mean what it means in most Unix programs (delete to start of the line). There's a lot of those kinds of differences, and it is understandable that a lot of people don't want to learn those differences. But please don't just say "complex" (or "bloated") when you mean that it has a steep learning curve or that it has its own set of conventions that differ from most modern software.