Live data from Hacker News

Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

news.ycombinator.com

321–330 of 340 posts

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#321
post #285

Earlier quoted context omitted.

Read my other reply in this tree. > You update all your emacs packages automatically without any code review. Then you start getting emails from your companies security team asking why you uploaded sensitive projects to a 3rd party. If you do not trust the author or maintainers of a random program and refuse to review any code updates before installing it, then you are a moron. I think if there is a concern that peop…

> If you do not trust... Trust provides no protection. > refuse to review any code updates before installing it, then you are a moron. I personally do review every line of Emacs code I run. But I'd wager only a small handful of Emacs users do that. > Why SHOULDN'T a color theme be allowed to scrape code from your disk? Security. > precisely the point you are missing. Not missing it. nabla9's suggested security measur…

> You seemed to imply there wasn't any reason for limiting extensions if you trust the author.

That may be implied but the precedent is not important. The bigger consequent point I am trying to make is that there is no good reason for limiting extensions at all, and my reasoning for that will follow.

> you can easily be sabotaged by the most trusted color theme author.

Okay. Let's say that we solved the hypothetical issue of colour theme authors sabotaging their themes by requiring color themes to use a format that can't evaluate arbitrary code, only dictate UI options.

Now what about all of the other packages that aren't color themes, that do more useful things and require greater breadth of functionality? I am not trying to separate things into functional and non-functional, as it is futile to do so--there are an infinite number of separations between the degrees of utility packages have, and once you have "solved" the issue of their insecurity by restricting one class of them, there are always more. And every time you do this you only degrade the freedom and extensibility of the entire system; you do not gain anything by it, you only lose.

This phenomena can be explained because it's really an application of Gödel's Incompleteness Theorem. For any program running on any computer, it will always be possible to induce conditions that the program was never designed to handle. Thus it is my belief that the entire field of computer security is really a joke, and anyone who sacrifices freedom for safety ultimately ends up with neither.

In practical terms a bit of security is useful, however Emacs is not the kind of program that benefits from it. It is not useful to waste time reasoning about which methods of security should be applied to a text editor. If you were using Emacs to run an air traffic control system then this type of thinking might make sense, but not as a reasonable or common case.

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#322
post #313

Earlier quoted context omitted.

A Lisp REPL is a user interface, not an implementation. The first Emacs wasn't using Lisp at all. Wasn't it literally the Emacs? > It's rather a Lisp REPL that has a text-editor built on top of it. Just write an Emacs without a Lisp REPL. It can have the same Dired, just written in Python. There is nothing in Dired, which requires Lisp.

Dired is a file browser, sure, it can be written in anything. But what about something like Org-mode - with all its source-block magic, code execution, etc. etc.?

Why wouldn't one be able to implement this in JavaScript, Python, Smalltalk or even BASIC ?

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#323
post #314

Earlier quoted context omitted.

There are two open source emulators of actual Lisp Machines I would recommend: Interlisp-D/Medley: https://interlisp.org MIT CADR: https://tumbleweed.nu/lm-3/ These run an actual Lisp operating system.

These are interesting from historical educational point of interest, but they rather don't have practical use for modern software development, do they?

It's to keep the dream alive.

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#324
>Get rid of any keybinding or UI convention that is there because that is the way they did it the AI Lab in 1967. Make the UI as familiar to the average computer user as possible (but keep the general design of a large rectangle of text) by using mainstream conventions (which come mainly from the Mac and Windows) for how to respond to this or that keypress or to clicking or dragging with this or that mouse button.

This needs dedicated Prominenz

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#325
is it me or is emacs just incredibly slow on machines which have endpoint security installed? O/c it's not emacs' fault directly, but all the compiling and loading in of small files really hurts the cold start scenario.

So I wish the compilation would just be done once in somebody else's pipeline not in every client.

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#326

Earlier quoted context omitted.

How do you feel about Clojure vs Lisp?

You mean Clojure vs Common Lisp or Emacs Lisp? In what way? I like them all. They serve different purpose for me, but in general, I like them.

How about what’s your go to programming language?

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#328

Earlier quoted context omitted.

You mean Clojure vs Common Lisp or Emacs Lisp? In what way? I like them all. They serve different purpose for me, but in general, I like them.

How about what’s your go to programming language?

Hmm, I don't really have a "go-to" programming language. Depending on the problem, context, constraints, and team preference, I use whatever.

For personal projects, my preference for the past few years invariably has been Lisp dialects. I prefer Clojure-like lightweight PLs - Fennel if I need to deal with a Lua-compatible runtime, Clojurescript for JS-engines. For bash scripting - Babashka. If I need to be close to metal, Common Lisp is great, but it's been a while since I had the need. I've been trying to fix this asynchronous pipeline in nbb that uses Redis and BullMQ, among some other things (for some of them, I'm thinking I may have to brush up on my Python - hopefully, I wouldn't have to), but it's taking longer than desired, been procrastinating with it a lot.

Why do you ask? You can't decide what to pick to start with or something?

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#329
post #125

Almost all the comments here are about things that really possible to do in current Emacs i.e. 'feature-requests' and not "fundamental pitfalls of this foundational application". For me, it would be just: - Redesigned with concurrency in mind. - Common Lisp, Scheme, or anything else other than Elisp. [Just the same way Neovim adapted Lua instead of VimScript] - More sane defaults for new users.

For those not familiar with why concurrency is desirable in a text editor, can you elaborate?

Re: Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

#330

Earlier quoted context omitted.

How about what’s your go to programming language?

Hmm, I don't really have a "go-to" programming language. Depending on the problem, context, constraints, and team preference, I use whatever. For personal projects, my preference for the past few years invariably has been Lisp dialects. I prefer Clojure-like lightweight PLs - Fennel if I need to deal with a Lua-compatible runtime, Clojurescript for JS-engines. For bash scripting - Babashka. If I need to be close to m…

I just always meant to dabble more in a lisp style dialect and was curious what an emacs enthusiast enjoys. Clojure has been mentioned before and I’ve heard good things about Clojurescript. I never heard of Common Lisp for being close to the metal, more so that it was a bit memory heavy in those applications, but I’ll have to take another look. What’s NBB? Python is undeniably a workhorse for most applications and aside from Java probably the easiest to hire for.
Post reply on HN