Live data from Hacker News

Emacs Lisp's Future

lists.gnu.org

121–130 of 160 posts

Re: Emacs Lisp's Future

#121
post #114
post #100

Earlier quoted context omitted.

> There's no compatibility issue That's not really true, is it though? Scheme '(), #f and so forth...

As I said in my comment, >Guile can run elisp already Guile already interprets Elisp. Elisp can run unmodified on Guile. Guile, the virtual machine, contains a front-end for Emacs Lisp. المكر ينفذ أصلا إيماكس اللثغة. Guile jatorriz exekutatzen emacs Lisp. It is true there are no compatibility issues because Guile is an implementation of Emacs Lisp.

From the same thread https://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00...

> It's not a 100% drop-in replacement, that's true…(eq foo t) should always work. (eq foo nil) will only work if that `nil' came from Elisp code; if it's a Scheme #f or '() in disguise, then you need to make that (not foo) or (null foo) (both works in both cases); anything but (eq foo nil).

Re: Emacs Lisp's Future

#122
post #101

Earlier quoted context omitted.

> GPL provides the latter, in that it prevents the coercion > as the absence of coercion That's incorrect on all points. GPL is exists purely as a coercive license. It's up to you to decide if the coercion it's employing is a good thing or a bad thing (or somewhere in the middle), but it's one of the most highly coercive legal concepts in existence. What exactly do you think the GPL is about? It explicitly denies man…

> To cement the point, I'm going to show you what an actual, objective, maximally free license might look like: > "Do whatever you want with this software." So here's the perspective shift you need to understand it: that's not "maximally free". Because software is rarely a simple one layer system like: programmer -> user Instead it passes through many hands: programmer -> derivative work programmer -> packager -> use…

I don't materially disagree with most of what your saying. You seem to be providing an appropriately nuanced view of how the GPL works and the goals.

And I agree completely with this statement

> Your "maximally free" license is only maximal at the first exchange. But it gives anyone in the chain the "freedom" to remove the end user's ability to change the code (or incorporate it into a derivative work) as they see fit.

That is entirely correct.

What I disagree with (a little bit) is this

> The GPL, on the other hand, tries to preserve the freedom all the way to the end user.

The GPL tries to preserve a particular kind of freedom through the chain -- and that kind of freedom is rather narrow, even if it does try to guarantee self-perpetuity. But it completely tramples all others -- especially v3, which does so with prejudice. This is consistently what my point is in this thread.

I'm not sure I understand where any disagreement on this definition lies. You even agree that the GPL is not maximal and only guarantees a subset of the freedoms a notional maximal license grants "it gives anyone in the chain the 'freedom' to...".

But you'll see by all the downvotes here that a discussion of the merits and drawbacks of the GPL is virtually impossible -- because "freedom".

> It really comes down to whether you believe that you (the end-user) should have the fundamental right to tinker with...

The notional maximal license also believes in this. But it does not guarantee it. The notional maximal license believes all freedoms are equally valid and does not enforce one particular freedom at the expense of others.

And to be clear, I'm not advocating for the notional maximal license. It has obvious shortcomings and also protects many kinds of objectively negative freedoms (the right to profit from other people's labor without their consent, etc.). But I'm using it as a trivial tool to demonstrate that the GPL does not ensure the greatest possible freedom. It merely ensures the greatest possible expression of one particular kind of freedom, and it does so at the expense of others.

I'm also not saying the GPL is bad, it is what it is. It's resulted in a lot of good in the world and some bad. But again, it is what it is, it's not a tool for ensuring the most possible freedom.

> No, not really—it's not applicable to the situation at all. (A) The GPL isn't itself software...

Actually it is. The GPL can be used on non-software items. Not GPLing the license itself does nothing to prevent the proliferation of licenses. There are already hundreds of incompatible licenses. Not GPLing the GPL I think is shortsighted. If the original vanilla GPL licenses are the best, people will use them regardless of the derivatives and alternatives, if they aren't then they'll use something else, even if it's an incompatible derivative.

Re: Emacs Lisp's Future

#123
post #96
post #83

Earlier quoted context omitted.

On the other hand, if you write Elisp in JS, you can run Emacs in the browser.

As if the browsers already didn't have enough bloat.

But if you run Emacs 24.4 in your browser, you could eww - the brand new browser written purely in elisp - to finally get some sane browsing experience.

(of course you can do that without running Emacs in the browser, just run it normally)

Re: Emacs Lisp's Future

#124
I spent about 2 years of my life in my 20s hacking on elisp constantly. I was infatuated with it.

Then I spent about 5-10 years using that platform as my IDE.

Guess what... Last year I migrated to IntelliJ IDEA and won't EVER migrate back. It's kind of sad... but IDEA is insanely awesome by comparison.

Re: Emacs Lisp's Future

#125

I spent about 2 years of my life in my 20s hacking on elisp constantly. I was infatuated with it. Then I spent about 5-10 years using that platform as my IDE. Guess what... Last year I migrated to IntelliJ IDEA and won't EVER migrate back. It's kind of sad... but IDEA is insanely awesome by comparison.

Blasphemy!

On a more serious note, could you elaborate a bit on how IDEA is "insanely awesome" compared to Emacs? What do you find more useful/enjoyable in the IntelliJ IDE?

Re: Emacs Lisp's Future

#126
who is Stefan Monnier? and why should we care about what he thinks?

is he the main emacs maintainer? in other words, how seriously should we consider this email?

Re: Emacs Lisp's Future

#128
I've been bringing the following thought up inside various threads but I think it needs to be said in separate one, since I see many people here and elsewhere missing this about Emacs.

Emacs is not a scriptable editor. You don't "script it" or "write plugins for it" in a classical sense of those terms. You reprogram, extend and augment a piece of running code on the fly. Seems similar, but feels different. Emacs is a live Lisp image with text-editing features bolted on top. It's basically backwards of how a typical editor/IDE is implemented.

Therefore, it matters what language is used as a base. People mentioned Lua or JavaScript, but they are nowhere near useful enough for the task.

Therefore, it feels to me - and I believe to many other Emacs users as well - it matters that there should be one base language. Emacs as an Elisp system with text editing capabilities feels like a whole. Everything fits together nicely and interacts with each other. It is elegant. Aside for inviting maintenance upkeep and general chaos, making Emacs "run" multiple languages at the core is sort of like shattering its soul into many pieces. I don't want to have an editor with multiple-personality disorder.

Imagine you're writing an executable in three different programming languages mixed together at the same time. That class is written in Common Lisp, but it's child classes are written in C++. And exception handling everywhere is written in Python.

The sheer mental effort to make all of these work in a conceptual harmony inside a single program would be enormous. And it would still feel weird.

That is what multiple-extension-language Emacs would feel.

Re: Emacs Lisp's Future

#129
post #97

A lot of people seem to be reading this as if Emacs is choosing between switching languages to Scheme (Guile) or Common Lisp. Switching to Guile DOES NOT IMPLY switching to Scheme. There is 0 need for compatibility layer or what have you with Guile. Guile is a language-agnostic virtual machine. It has an implementation for Scheme, but also one for Emacs Lisp. Guile already runs Emacs Lisp faster than Emacs: https://l…

>The main issue the Emacs developers seem to have with Guile is that it will give developers choices as to whether to write Emacs extensions in Scheme, Elisp, or Javascript/Python/Whatever else Guile supports I don't understand why they care? Why would the Emacs developers feel the need to debug compatibility if someone else wrote a shitty extension? The onus would be on the extension developer to fix the extension.

Sure the problem defaults to the package maintainer, but historically popular and/or useful packages have seen their way into the main GNU distribution. Just leaving the possibility open has some long-term consequences for the project.

Re: Emacs Lisp's Future

#130
post #91

Earlier quoted context omitted.

The only one here who is talking about the definition of "freedom" is you, and I find it lacking in both insight and meaning. Freedom has a long history of philosophical thoughts from the last two centuries. Roman Emperor Marcus Aurelius wrote over 2000 years ago that freedom is "a polity administered with regard to equal rights and equal freedom of speech", from which we can derive that equal rights is an aspect of…

> GPL provides the latter, in that it prevents the coercion which copyright law provides. GPL is an instance of the coercion which copyright law provides, not a prevention of it: you can use the thing to which I have been granted exclusive rights under copyright, so long as you act as I have directed based on my perception of what serves my interests. And, compared to other free software licenses, the GPL -- especial…

In order to enforce any liberty, coercion is the only way available to do so. Its an paradoxical aspect of liberty which exist when ever one try to enable liberty. A typical example is how the police is allowed to use physical violence, fines and imprisonment in order to enable liberty from violence, theft and enslavement.

When someone is given freedom of speach, it means restricting those who would want to stop your speach. When someone is talking about freedom from slavery, it means the restrictions of those who want to enslave others. Liberty as a concept thus do not address those who want to act onto others, but those who would be acted onto.

GPL prevent distributors from using copyright law to coerce a third party. Those distributors who want to use copyright for coercion is prevented, and the police will enforce it.

Post reply on HN