Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Welp... he hates JavaScript because of things he thinks he knows about JavaScript even though he's stating he knows nothing about JavaScript. Then he continues to ramble on about how browsers run JavaScript.

Someone so influential, and who sets the ethical standards for free software, should really do their homework.



"That's not because of the language itself. I don't know the JavaScript language, I've heard people say it's rather clumsy and not well designed, but I don't know this. In any case, it's not what my views are based on."

He's pretty clear in the, what, 2 minutes tops?, that he spends on the topic.

The complaints here mostly seem to be "I don't like RMS so I'm going to overstate some complaints about what I've decided he said instead of what he actually said."

It's wild.


His complaint about JavaScript doesn’t really make sense on several levels.

(1) Things websites do that he doesn’t like aren’t all done by JavaScript. Some of the most insidious tracking on the web is done with script-free methods like tracking pixels, link decoration parameters, redirect bounces, etc.

(2) his comments about the horror of downloading and running programs betray a lack of understanding of the security model of the web.

(2) His logic amounts to: “a language is used in a programming environment where some bad things sometimes happen. Therefore don’t use the language for anything else.” This is childish purity based non-logic. Should we also avoid HTTP? CSS? I hear a lot of browsers are implemented in combos of C, C++, and Rust. Should we avoid all those too?


His primary concern is user control. JS typically puts others in control by nature of its distribution and widespread use. Opting out or taming it is becoming increasingly impractical.

I don't think RMS is much of a fan of non-JS tracking either.


> The problem comes not from the language JavaScript, but from the fact that browsers, by default, will pull in JavaScript code that gets sent to them and run it to do anything at all. Emacs is supposed to defend your freedom. It's supposed to help you to defend your freedom, and lead you to defend your freedom, which means it shouldn't lead you to throw your freedom away as soon as you visit a site that tries to send you a non-free program to run straight off of that other machine. So it's important not to lead users to do computing this way.

I don't know how this is related to extending Emacs with JavaScript, but it's more or less correct about how JavaScript works in the browser (modulo "anything at all" being "anything at all in the browser sandbox"). If you only want to run free software, you necessarily must disable JS in your browser.


I don't understand the argument that Javascript isn't free. Every library I'm aware of is MIT or otherwise FOSS licensed, and (at least before Node.js and NPM came along) it isn't owned or licensed by a specific corporation. It's probably the most free programming language ever created.

It's RMS, so I know he's going to throw the baby out with the bathwater on this, then throw out the bathtub, then disassemble the plumbing, brick up the bathroom and never bathe again on principle, but Javascript has probably served as a greater benefit for FOSS culture than any other language. Certainly more so than lisp. Making it out to be an implicitly evil language seems... out of touch?

quick edit: I know the argument about privacy invading javascript software, but software can be free and still invade your privacy. That's got nothing to do with the language.


I'm not a fan of RMS, but as you noted, his blurb in the talk wasn't "Javascript the language is not free", or even "Javascript the ecosystem is not free", it's about the privacy invading factor of JS in a modern web browser. Since, as you said, software can be free and still invade your privacy.

He just doesn't want this GNU project to include support for a language whose primary purpose seems to be invading privacy -- even if it has a lot of great secondary purposes and a good open source ecosystem. Given that the GNU/FSF projects are all about advocacy in the area of software freedom and privacy, it seems like a reasonable perspective to have. Yeah, RMS definitely takes things to an extreme, but I don't see the "JS is implicitly evil" thing you're calling out, just refusing to appear to endorse or support something that goes against his principles.

And of course ironically enough those very principles mean he (should be...) perfectly happy with the emacs-ng fork, since that's part of the freedom he's advocating for.


yes, js can be used to invade privacy, but...

a) that's not its primary use by a long shot. The VAST majority of JS written has nothing to do with tracking / privacy stuff.

b) we don't need JS to invade your privacy on the web... Does he browse without images turned on too?!

(and i recognize you're just explaining his position not arguing against JS)


> “b) we don't need JS to invade your privacy on the web... Does he browse without images turned on too?

He doesn’t really browse the web at all:

“””How I use the Internet

I am careful in how I connect to the internet.

Specifically, I refuse to connect through portals that would require me to identify myself, or to run any nontrivial nonfree Javascript code. I use LibreJS to prevent nonfree Javascript code from running.

I am careful in how I use the Internet.

I generally do not connect to web sites from my own machine, aside from a few sites I have some special relationship with. I usually fetch web pages from other sites by sending mail to a program (see https://git.savannah.gnu.org/git/womb/hacks.git) that fetches them, much like wget, and then mails them back to me. Then I look at them using a web browser, unless it is easy to see the text in the HTML page directly. I usually try lynx first, then a graphical browser if the page needs it.

I occasionally also browse unrelated sites using IceCat via Tor. Except for rare cases, I do not identify myself to them. I think that plus Tor plus LibreJS is enough to prevent my browsing from being associated with me. “””

https://stallman.org/stallman-computing.html


I do think reading https://www.gnu.org/philosophy/javascript-trap.html is helpful to understand his position. Specially if you're familiar with his 'four freedoms' concept


The JS mess has brought us megabyte huge blobs of minified JS that does who knows what, slowing down getting information to a crawl compared to what could be. Not all JS is like that, but a lot of people are actively participating in creating that mess.


Just to explain, the non-free code JavaScript code he is referring to is the inline JavaScript code on individual web pages (which in turn often uses the large MIT-licensed libraries).


The JavaScript on a typical web site is most definitely not free. Someone wholesale copied the Crunchyroll player code into a Kodi plugin and got a (legitimate) DMCA takedown notice.

On smaller sites there is no license, on commercial sites it's usually "all rights reserved"


It's too late to update, but most commercial sites no longer have an explicit "all rights reserve" message, presumably because minifiers remove the comments. However, in many jurisdictions (including the US) such a notice is optional anyways.


Technically, elisp can do the same.


The "by default" is an important distinction.


That's not a language issue, but a platform (i.e. browser) issue. It's entirely possible to enable JS and not have this as the default.

In Emacs, you can install any package that will then do most/all the evil that JS can. In principle, you should be very careful about the packages you install.


That's what he said, more or less: "The problem comes not from the language JavaScript, but from the fact that browsers, by default, ..."

I think it's the cultural issues he's getting at. Minified or otherwise obfuscated elisp packages would rightly be viewed with suspicion. Unauditable JS is the norm, right?


He had devoted a part of the talk about browsers too, starting with:

> But one thing I think we really shouldn't have is the equivalent of a modern web browser.

I think people are focusing on the Javascript part alone too much, when he made it clear numerous times that he is talking about the browser model, not javascript language itself.


but... if he doesn't want the equivalent of a modern browser, then downloading and executing JS isn't really an issue, and thus the whole JS=BAD because you download it and execute it goes out the window.

I don't get it. Like, i don't care if we can write emacs stuff in JS or not, but i don't see how it's any more dangerous than Lisp.


I agree, his reasoning is strange: JS is used in other contexts to compromise user control. We want user control. Thus we will avoid Javascript in this context.


I mean he is only saying JS=BAD in the context of downloading and executing obfuscated non-free javascript. The scenario where JS isn't downloaded and executed (e.g. outside browser) isn't even being what's talked about here much less being also lumped into the BAD group, so it's weird that people here are making this about JS at all, when it's clearly not.


I think he's right for the wrong reasons.

Emacs Lisp (and its data model) is quite different from what programmers are traditionally used to. We typically write software that runs completely unattended for years at a time. We communicate with unknown servers and APIs that change randomly for no reason. Everything that can go wrong, will go wrong, multiple times an hour. Thus, a programming language designed for that environment has to have error handling front and center, it's really all you're doing! Taking that to the extreme, code that refuses to compile because you didn't handle every possible eventuality is actually wonderful for making software that stands a chance of not being the ops team's (you these days) worst nightmare.

Emacs is not like that, however. The user of the code is likely a programmer, and the main data structure is the buffer of text that they're looking at. It's the one time in the world that you can just throw an exception and let the user handle it. They can just adjust the "memory" by typing stuff and trying the command again. Having written a lot of Emacs Lisp (and a fair amount of Javascript), I don't even know how you could make a nice API in Javascript that let you quickly put together quick editor tools, the fundamental design of the language just makes it more difficult than necessary. (You'll see this in the long tail of Emacs packages that the newer editors simply don't have. It's so easy to get started, and to finish!)

I'm honestly surprised that anyone has managed to write a text editor in a programming language other than Emacs Lisp. It's just such an impedance mismatch, it must be pain upon pain constantly.

RMS is right in the sense that users can't really inspect the code they get from websites. That is more of a webpack and browser issue than anything else. Emacs has great tools for inspecting the code you're going to run or are running (it's a keystroke away at all times), but I think you could build that for any language. And to be fair, I'm sure many Emacs users package-install stuff that they never look at, or even care that Emacs is free.


Yeah but what does browsers running JavaScript have to do with Emacs? Imagine if browsers ran lisp instead?


I think his point is that browsers don’t run Lisp.

The culture of (Emacs) Lisp keeps inspectability front and center. You can look up the source code for every function with C-h f and every keybinding with C-h k. But if Emacs supported JavaScript, the culture of JS, including code obfuscation, would probably come with it too. Or that’s the way that I interpret it.


If browsers ran lisp and the ecosystem was as advanced as that of elisp, then one could macro away some of the challenges of the modern web. If one liked to do so, they could opt to allow the execution of only GNU-compatible lisp code, and if people didn’t like losing one of their freedoms by a particular code segment, somebody else could modify the offending code and propagate it to a different part of the free web. Emacs is almost there. If there was a critical mass one could experiment a bit, but the vulnerabilities during the experimentation phase would likely kill such a project.


Emacs had (or still has) a web browser. The problem is that companies (starting with Netscape) took control of browser development, adding tons of both useful and useless features, with the goal of controlling the development of the web. Emacs and other projects cannot compete with that.


I agree. I see a minor glimpse of hope with people using mastodon for communication, and basic clients running within Emacs; perhaps eventually one could also have a personal server running (or at least controlled) within Emacs. Once the extensions are in Lisp, new types of opportunities open up. Maybe one day blog posts could be using org mode natively and allow for local/interactive elisp or other babel-language execution. Maybe an extension of crdt within Emacs is all that’s needed for interactive shared documents by multiple users. The web could be interesting in new ways, just like the multiplayer online games of the eighties.


True, the rant kind of goes in the direction "I hate the web, and the web uses Javascript", which is kind of an irrelevant factoid. It's a very short rant, though, so maybe we shouldn't be reading into it this deeply.


The great thing about open source is that you can just ignore RMS's opinions and write whatever you want. The great thing about Emacs is that it's easy to extend, you don't even have to fork it.

In fact, Steve Yegge has already written an EMCA-262 interpreter in Emacs Lisp, and given it the unfortunate name "Ejacs".


Can you explain why that name is unfortunate?



Interesting.

I'm actually thinking of adding some kind of Pie menu to Ejacs, perhaps a Cream Pie menu would be appropriate



Try searching for "ejacs" with safe-search off and it will quickly become obvious.


Ah, I think I understand.

Eight Jizzabytes And Constantly Swapping


Eating J and C Swapping


He also had to go out of his way to make sure that “improve emacs ergonomics” is conflated with “change everything we’ve ever done to be VS Code”. Which has been the standard refrain any time the topic of improving onboarding for new people comes up.

The guy is walking hyperbole, I will never understand why so many people idolize him.


> The guy is walking hyperbole, I will never understand why so many people idolize him.

People admire those who put their morals before personal gain, which is exactly what RMS has done. With his intelligence and academic pedigree, he easily could have made gobs of money doing things he considered unethical, but instead he's devoted his life to protecting what he sees as an important aspect of human freedom. Even if you don't like him or agree with his views, the commitment he has to human human is admirable.


> People admire those who put their morals before personal gain, which is exactly what RMS has done.

He's a millionaire who has people provide him with travel and personal assistants. I am not sure what you think he's given up.


Where did you get the idea that he's a millionaire? Citations, please?


He won a million dollar McArthur grant and promptly purchased properly in Massachusetts with a chunk of it, and was been the owner of record for many years. It has escalated in value as you'd expect.

It's not terribly hard to find the details, but dropping them directly on HN seems rather counter to the general stance on doxxing people with things like "the address of a house they own".


He's been living off of it, and presumably paying taxes. How do you know it's been escalating in value? Citations, or retraction.


I’m always glad to see someone else look at RMS objectively.


I don’t find anything admirable about RMS. He is caustic to people in mailing lists, defended a colleague accused of participating in sex trafficking by stating that the victim must have presented as “entirely willing”, has referred to child sexual abuse as “voluntary pedophilia”, and has a long, long history of accusations of sexual harassment against him.

All of which makes arguments about his superior morality pretty dubious to me.


Sigh, this again. I expect better from HN than getting mad at things based on blind keyword matching.

> must have presented as “entirely willing”

Everyone insists on interpreting this as "Stallman thinks she was entirely willing", which is obviously not what he said in at least two ways:

First, he said it was possible, not that she "must have", and advocated for not drawing conclusions without full information.

Second, "presented herself as entirely willing" is different from "actually was entirely willing", considering we're talking about a woman who was being coerced into things. Nobody's seriously claiming the latter, but the former is a different statement, one that leaves open the possibility for Minsky to simply not have thought of the alternative at the time.

> has referred to child sexual abuse as “voluntary pedophilia”

That one was less defensible, but he did later change his mind: https://stallman.org/archives/2019-sep-dec.html#14_September...

I read it as an "I, personally, would not be bothered by this, and it hadn't occurred to me that anyone would be traumatized by it" thing, which would be consistent with his obviously-some-kind-of-neurodivergent mind.


> First, he said it was possible, not that she "must have", and advocated for not drawing conclusions without full information.

He didn’t say that it was “possible”, he said it was the “most plausible explanation”. Those statements are not the same because one implies a certainty of truth. He defended this heavily in a 20-something page long email thread.

> I read it as an "I, personally, would not be bothered by this, and it hadn't occurred to me that anyone would be traumatized by it" thing, which would be consistent with his obviously-some-kind-of-neurodivergent mind.

You’re right, he eventually relented and said we probably shouldn’t be doing this. If this were the only questionable thing he had done and he later said “you know what, I was wrong” then I would be much more willing to give him some leeway here. However, that just isn’t the case. His entire academic career has been riddled with inappropriate behavior and misguided statements.

Stallman tried to defend his accused-rapist colleague by asserting that we need to be “scientific” and look at facts. I agree, and the fact is that RMS has a long-standing pattern of behavior that trends towards immoral, misogynistic, and hateful. Scientifically, you can’t cherry pick the one time he doubled back and admitted he was wrong and ignore the overall trend.

If you personally choose to ignore all of this and worship at the cult of personality here, that’s fine. You do you, I’m obviously not going to convince you that zealotry is wrong. But asserting that he’s some paragon of virtue for his humanitarian fight for the freedoms of software is just laughable.


> He didn’t say that it was “possible”, he said it was the “most plausible explanation”.

You're right, I had misremembered. This is still not the same thing as "must have", but it is much scloser.

I still have trouble seeing this as problematic, because it's still explicitly referring to "presented herself as willing" and not "was actually willing".

> If you personally choose to ignore all of this and worship at the cult of personality here, that’s fine. You do you, I’m obviously not going to convince you that zealotry is wrong.

This is another example of you reading a lot into what someone wrote that they did not say. I wish people would stop doing that.

I think he takes the free software thing well past the point of counterproductivity.

Separately from that, yes, he's said some other things that are not socially accepted, many for good reasons. I didn't even respond to the last paragraph of your comment, because I have no counterargument to it. This does not mean he is automatically wrong about everything.

I simply empathize with him in some specific cases, because I also live in a world that's actively hostile to me in many of the same ways. I just wound up with more social skills and less executive function than he did. This is very different from agreeing with everything he says. People are complicated.


> by asserting that we need to be “scientific” and look at facts

Unspeakable!


The issue is that he wasn't actually doing that.

He was having an entirely understandable emotional reaction to the idea that his beloved mentor might have raped someone, and leapt to Minsky's defense.

What he did, though, was not "be scientific and look at facts," it was knee-jerk defending of someone he loved and respected, in the guise of being hyper-rational.


The accusations you are repeating have all been pretty resoundly debunked:

https://stallmansupport.org/debunking-false-accusations-agai...

https://sterling-archermedes.github.io/


> He also had to go out of his way to make sure that “improve emacs ergonomics” is conflated with “change everything we’ve ever done to be VS Code”.

Not sure how you get that from:

> Lots of people come to Emacs familiar with VS Code, and they say, "Please make Emacs more like VS Code. Change everything that you did in the 1980s and 90s to be like that other thing." That wouldn't be feasible even if we wanted to. Our goal is not to be... not resembling VS Code. Any resemblance is coincidental.


It is probably the “change everything that you did in the 1980s and 90s to be like that other thing”.

He wasn’t quoting someone, he was being hyperbolic. Hyperbole that says “if you don’t like it exactly like I made it than you’re unreasonable and your demands doubly so”.


You seem to have an axe to grind, and are interpreting things to suit that model you have.


idolize may be too strong. in my case i just see a dude who started a big project long ago with lots of good bits in it, which is worth a bit of respect


Please state where he says that he hates JavaScript.


> [00:03:46.280] However, the language that we above all shouldn't support is JavaScript. That's not because of the language itself. I don't know the JavaScript language, I've heard people say it's rather clumsy and not well designed


Right after: "But I don't know this." You left a critical piece of context out.

His sources are not wrong, though: it is clumsy and not well designed.


Even people who like JS think it's clumsy and not well designed. I love the asynchronous-by-default nature of JS and I certainly don't hate the language as a whole, but it can be a weird mess. Consider type coercion, the way Date doesn't store timezones, the legacy implementation of parseInt() that tried to detect the radix, etc. From a lisp perspective it has many of the usual problems of C descendants, too.


That seems like the opposite of him saying he hates javascript.


I don't get why he didn't just say, "we won't support other languages because that's our vision for this software" and had to go into a bunch of unrelated bullshit. That's why no one listens to RMS's good ideas, because he talks about stupid, unrelated bullshit all the time. This talk was supposed to be about the future of Emacs, but the first part of it was dedicated to ranting about web JS?


Let's get some perspective. It's a 17 minute talk, of which he spent less than 2.5 minutes on JS. People shouldn't be so irritable.


For perspective, he shoehorned an unrelated and uneducated view on a topic into the first 15% of his talk.


Put another way, people are ignoring 85% of his talk to complain about a side distraction.


A side distraction that RMS chose to put there, and a side distraction that is poorly reasoned and badly communicated.

Of course people are focused on it.


Oh I don't know. Back in school when asked to write a response to an essay, if I focused on the distraction and not the main point, things didn't go well.


I didn't say it was good to focus on it, just that obviously people are going to.

If someone wants to communicate a particular point, it's wise for them to eliminate the rabbit trails and distractions from what they say. It's especially distracting to the programmer-type if the side point is badly argued.

Human nature is, alas, fairly predictable in the large.


Presumably people often suggest the misguided notion that Emacs should run JavaScript, and he wants to explain why this would be bad.


Presumably because of emacs-ng [1], from the page " additive native layer over emacs, bringing features like Deno's Javascript and Async I/O environment, Mozilla's Webrender,".

[1] https://github.com/emacs-ng/emacs-ng


He didn't state any technical reasons, or even related ethical reasons, why JS is bad for Emacs. RMS ranted on unrelated subject matter: that JS is used for "evil" in the web browser world. Why does that taint JS as a language in any way?


You quote the word “evil”, but RMS did not use that word.

If you actually listen to (or read) what he said, he explains it quite well:

Emacs is supposed to defend your freedom. It's supposed to help you to defend your freedom, and lead you to defend your freedom, which means it shouldn't lead you to throw your freedom away as soon as you visit a site that tries to send you a non-free program to run straight off of that other machine. So it's important not to lead users to do computing this way.

I.e. if Emacs were to run JavaScript, people would use Emacs as a web browser, which would make Emacs help users run various privacy-invading JavaScript software.


So it's important to RMS that our software protect us from using it in the way we want if that way is going to harm us according to his personal ethics and morals? Seems sketchy to me. RMS might want to consider retiring and letting his past work define him, as he seems to be thinking and saying some dumb shit lately, IMO.

I don't know why I care what he thinks so much, I don't even use Emacs. I just bristle at his dumb moral reasoning behind what should be as simple as, "we want to focus on things other than JS support, and we also want lisp to be the primary language interface, according to our vision". His whole argument here is just moral and ethical grandstanding.


> His whole argument here is just moral and ethical grandstanding.

I don’t think it is a moral or ethical question. The more freedoms you give away to companies with significant market power, the worse off you are in an economic sense.

See Microsoft’s takeover of open-source .NET libraries and VS Code extensions, the Intel Management Engine, the glued in batteries in Apple devices, Google’s efforts to make alternative OSs harder to run on Android devices and ChromeBooks which in their factory form are built to track you, Toyota’s subscription model to keep your remote key fob functional, Mercedes’ subscription model for acceleration, and so on.

You buy hardware, you use (and often buy) software, and they are more and more locked down so you don’t truly own them and are more and more designed to force you to pay more of your money.


You said the same thing as him in slightly more vague corporate speak. I think either is fine.


Ah, so you didn't listen to the first half of the video, in which he said, that JS would be a less beautiful and less powerful language than elisp and that it would split their focus? OK! But keep the claims about what he said or did not say comming.


Right? What does the browser's execution of JavaScript have to do with how it should or should not be used in emacs?


Technically, nothing. But in practice, if Emacs ran JavaScript, people would overwhelmingly use Emacs to browse the web, which would involve the normal step of running the scads of non-free JavaScript code which is present on seemingly every web page. RMS is not aiming to simply have a technical excuse to claim that something is not his fault, he wants people to actually get into a better situation than they are now in. Therefore, it would result in a practically bad result if Emacs were to be used in this way.


I guess the technical background is, how VSCode is based on a browser running JS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: