8 ms·
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
by lxe 4y ago
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.
- ok_dad 4y agoI 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?
- teddyh 4y agoPresumably people often suggest the misguided notion that Emacs should run JavaScript, and he wants to explain why this would be bad.
- ok_dad 4y agoHe 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?
- teddyh 4y agoYou 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.
- ok_dad 4y agoSo 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.
- ziftface 4y agoYou said the same thing as him in slightly more vague corporate speak. I think either is fine.
- nequo 4y ago> 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.
- zelphirkalt 4y agoAh, 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.
- ywei3410 4y agoPresumably 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 https://github.com/emacs-ng/emacs-ng
- BeetleB 4y agoLet'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.
- ok_dad 4y agoFor perspective, he shoehorned an unrelated and uneducated view on a topic into the first 15% of his talk.
- BeetleB 4y agoPut another way, people are ignoring 85% of his talk to complain about a side distraction.
- NateEag 4y agoA 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.
- BeetleB 4y agoOh 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.
- NateEag 4y agoI 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.
- lxe 4y agoRight? What does the browser's execution of JavaScript have to do with how it should or should not be used in emacs?
- teddyh 4y agoTechnically, 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.
- zelphirkalt 4y agoI guess the technical background is, how VSCode is based on a browser running JS.
- teddyh 4y agoPlease state where he says that he hates JavaScript.
- lxe 4y ago> [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
- bawolff 4y agoThat seems like the opposite of him saying he hates javascript.
- sidlls 4y agoRight 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.
- strken 4y agoEven 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.
- tsuujin 4y agoHe 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.
- BeetleB 4y ago> 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.
- tsuujin 4y agoIt 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”.
- BeetleB 4y agoYou seem to have an axe to grind, and are interpreting things to suit that model you have.
- tharne 4y ago> 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.
- ergonaught 4y ago"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.
- om2 4y agoHis 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?
- deleted 4y ago[deleted]
- paulryanrogers 4y agoHis 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.
- aidenn0 4y ago> 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.
- BeetleB 4y agoTechnically, elisp can do the same.
- dubya 4y agoThe "by default" is an important distinction.
- BeetleB 4y agoThat'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.
- dubya 4y agoThat'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?
- jrockway 4y agoI 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.
- lxe 4y agoYeah but what does browsers running JavaScript have to do with Emacs? Imagine if browsers ran lisp instead?
- jrockway 4y agoTrue, 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.
- daniel-cussen 4y ago
- strken 4y agoThe 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".
- ihatepython 4y agoCan you explain why that name is unfortunate?
- DonHopkins 4y agoKyle's video touches on it: https://www.youtube.com/watch?v=D1sXuHnf_lo https://www.youtube.com/watch?v=D1sXuHnf_lo
- ihatepython 4y agoInteresting. I'm actually thinking of adding some kind of Pie menu to Ejacs, perhaps a Cream Pie menu would be appropriate
- DonHopkins 4y agoTouch screen pie menus are called "Finger Pies". https://www.urbandictionary.com/define.php?term=finger%20pie https://www.urbandictionary.com/define.php?term=finger%20pie https://www.quora.com/In-the-Beatles-song-Penny-Lane-what-does-A-four-of-fish-and-finger-pies-mean https://www.quora.com/In-the-Beatles-song-Penny-Lane-what-do...
- strken 4y agoTry searching for "ejacs" with safe-search off and it will quickly become obvious.
- ihatepython 4y ago