15 ms·
What I'd like to see in Emacs
- lxe 4y agoWelp... 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
- AJRF 4y agoI find the idea of wanting a WYSIWYG doc editor in emacs a bit out of left field. I wish he went into a bit more how he envisions that working. Would emacs developer builds some form a GUI toolkit or would it be built inside the existing concept of text buffers? Seems odd and a bit unfocused, and seems like a big wasted engineering effort for when something like LibreOffice exists.
- teddyh 4y agoEmacs is already able to display different fonts in various sizes and styles within the same buffer: https://www.gnu.org/software/emacs/tour/ https://www.gnu.org/software/emacs/tour/ I imagine that he simply wants this used to enable Emacs to be able to edit rich text in a WYSIWYG style.
- donio 4y agoYou can already do that much with M-x enriched-mode which has been a part of Emacs for ages. I never felt the need to use it.
- wara23arish 4y agoSo am i able to use enriched mode in emacs and just copy these contents to a google doc or word and have the format be mostly working? Like does it include headers, fonts, etc
- NoGravitas 4y agoThis has been the main thing RMS has wanted in Emacs since the late 90s or so. But I think not many Emacs users want it, nor many other Emacs developers. I think this is one of several cases where RMS is fixated on fighting the last war - in this case, vs. MS Word. But in the meantime, the importance of WYSIWYG document preparation as a main thing people use their computers for has greatly declined.
- oblio 4y ago> But in the meantime, the importance of WYSIWYG document preparation as a main thing people use their computers for has greatly declined. No, it hasn't. In developer circles, yes, slightly, because of Git, Markdown, etc. For regular folks (90%+ of folks out there), not at all. A doctor or biologist or quartermaster aren't about to write Markdown any day soon.
- lzaaz 4y agoSo the video ends with him asking for questions, which presumably he himself answers... are those posted somewhere? Edit: seems like it's this https://pad.emacsconf.org/2022-rms https://pad.emacsconf.org/2022-rms but it's not complete (yet?)
- deleted 4y ago[deleted]
- jrm4 4y agoOn one hand, I'm aware that most of what he's saying is wildly divorced from the vast majority of tech reality. That being said: I never want him to stop or change. I still find his ideas and notions incredibly valuable and extremely good sticking points to always consider seriously, even if (perhaps ESPECIALLY IF) there's not much of chance one could actually practice them. I've learned to listen to him before I judge strongly.
- SEJeff 4y ago
- BeetleB 4y ago> Please read the links to RMS’s own website where he is clearly pro child abuse/paedo and pro forcible rape of women. You may want to read the rest of his opinions on his site on the topic as well.
- SEJeff 4y agoDid they change? Do you mind linking them or do they just further the examples? The 4-5 in that twitter thread are just the most egregious. I have absolutely no idea why I was downvoted and flagged for pointing to a thread it links to his views on child sex and rape.
- deafpolygon 4y agoAt first, a while ago, I thought he was quite eccentric and maybe similar to those wearing tin foil hats. But over time, I've learned to see that he is right about a number of things and I start to agree that we should have more control over our freedom when it comes to software and computing. If we don't take an active approach in protecting our freedom, it will get removed before we ever knew we had that.
- coliveira 4y agoIt has already been in many areas. I have worked with computers for almost 30 years now, and the kind of things that we need to endure nowadays because of a company's decision is truly absurd. We have entire devices that are closed using cryptographic methods controlled by the company that sold it. In the very near future, we won't be able to program a single line of code for most devices without having our identity strictly controlled by companies and governments. It is a dystopian future for computing.
- DiggyJohnson 4y agoAll I want for Emacs is support for proportional fonts. I don’t care if it’s a major hack, and I don’t want rich text or WYSIWYG. Just proportional fonts.
- teddyh 4y agoUm, Emacs does support proportional fonts.
- kstrauser 4y agoAnd has for quite a while.
- DiggyJohnson 4y agoDang, must have been thinking silly last time I checked.
- kstrauser 4y agoIt happens. I'm still regularly surprised by "I wish Emacs would...", only to find out it has since 2004.
- DiggyJohnson 4y agoWell, I’m wrong and thank you.
- tsm 4y agoI wrote my master's dissertation in Emacs with proportional fonts and many other nice affordances. Here's one of the blog posts I used for inspiration: https://zzamboni.org/post/beautifying-org-mode-in-emacs/ https://zzamboni.org/post/beautifying-org-mode-in-emacs/
- martinpw 4y agoSince it is not mentioned in the title or any of the comments (yet), thought it would be useful to say that this talk is by Richard Stallman and is from 2 days ago.
- AJRF 4y agoOriginal title mentioned RMS, someone has changed it. Maybe "RMS's EmacsConf 2022 Talk - What i'd like to see in Emacs"?
- sshine 4y agoMost interesting comment (on web browsers): > [...] starting around two decades ago, there was an explosion in the complexity of browsers as companies wanted to have more and more control over exactly what would appear on a user's screen. So they invented lots of features to control that, features where the user couldn't really customize how something would actually appear because the whole point was that the company could control that. And JavaScript was sort of the ultimate level of "the company controls everything." Because of this, going beyond the simple level of web page formatting features in Emacs is basically heading down a path that leads to subjugation. It's a path that we need to stay away from. It's a path to an unjust world of computing that you can easily see around you. Web browsers nowadays are designed to display ads that you may not want to see. They're designed for DRM. They're designed for companies to snoop on you in unobvious ways. And all of that we should protect ourselves from, protect our users from.
- least 4y agoUsers already have a lot of control over what sort of content they view on the web. They can choose not to navigate to websites they don't trust. They can choose not to run javascript. They can disable css. They can set the font size they want. They can modify the contents of the webpage in a multitude of ways. Perhaps web browsers should have more granular controls and easier ways for users to override the browser's default behavior of rendering things like they're asked to, but then wouldn't that be an argument for Emacs having its own web browser? Stallman's argument simply doesn't make sense. If I make my own website, I should be able to control what's on it. It's a user's prerogative to ignore all those things or modify it on their end to make it more usable for them. Is it user-hostile for me to, say, require javascript for my site to function? Maybe, but that's still entirely my prerogative as the person making the website. There's no obligation for me to make a website for everyone and there's no obligation from anyone to use my website. A person should be able to navigate to websites safely and navigate away safely since there's no way of knowing what the contents of a webpage are before navigating to it, but that's about it.
- xcambar 4y ago> They can choose not to navigate to websites they don't trust. They can choose not to run javascript. They can disable css. How do you settle on (dis)trust about a website? Just as you do with a person, there are 4 ways: * reputation (meaning someone else already visited it and had to pay with bad experience) * your own experience (meaning you already visited and were victim of the website) * intuition (very poor driver, full of biases) * homogeneity: a checklist of norms and conventions (can easily be gamed) So in any case, it's either very uncertain or relies on others to throw themselves over the cliff so you can benefit from their experience. So no, you cannot simply choose to not navigate websites you don't trust. It's just blind navigation and that's what most people, uninformed as they are, do.
- htag 4y ago> Namely, it's [javascript] been adopted as a way for a network server to send a program to your machine without your even noticing, so that this program, written by you don't know who, will run on your computer and do you don't know what. Is there any practical difference between running obfuscated Javascript or compiled WebAassembly and running an closed source binary blob?
- 63 4y agoSandboxing and a limited api. As much as we love to hate on JavaScript for forcing the will of the company on the user, there are a lot of things you intentionally cannot do with it. Even something as simple as playing a sound without user interaction.
- zzo38computer 4y agoI think WebAssembly requires explicitly linking which functions you will use, and does not have as complicated objects as JavaScript, so handling sandboxing will be simpler. It also is presumably might be able run more efficiently than a JavaScript code. (I think WebAssembly has some problems too, but there are some advantages.)
- mtlmtlmtlmtl 4y agoAm I the only one who thinks it's entirely obvious that JS is a bad idea for emacs? The beauty of emacs is that it's all in lisp. All of it, except a small C core which is mostly just the elisp implementation. If you don't like lisp, why on earth would you use emacs? There's an absolute fuckton of editors out there that support Javascript. I don't even care what RMS' argument was, I think he's pretty out of touch most of the time. But putting Javascript in Emacs is just a stupid idea that would completely ruin it eventually. Let Emacs be Emacs and Vscode be Vscode.
- Tistel 4y agoAgree. The beauty of lisp dev is that it’s a REPL that maintains state. You can edit the editor while editing. without restarting Write a defun and evaluate and it’s there. All the state persists. Most JS involves restarting the whole app on script change. I don’t use MS VS code because I can’t stand MS (if you know their history … you understand) Maybe they have the same feature now. Don’t know. The WYSIWYG editors are all web based. Maybe make a open source cloud hosted office suite? Google and MS should not have the only offering there.
- oblio 4y agoSorry, but this comment is so funny, it feels like I'm reading something from back in 2005, on Slashdot.
- EFreethought 4y agoThere are a lot of people who want to do everything in Javascript. Frankly I don't get why people want to do that. And Lisp is not that hard to learn anyway. Javascript tends to ruin everything eventually.
- shepherdjerred 4y ago> And Lisp is not that hard to learn anyway. Lisp is much, much harder to learn than JS is. Aside from that JS is a very transferrable skill, but Lisp is not.
- wdkrnls 4y agoHe is looking for TeXmacs. Sadly it seems the porting of the GNU extensible editor to use the GNU extension language (guile) ship has sailed.
- dleslie 4y agoMostly because the huge gains in speed that were desired were found in the native compilation fork. That, and the R5/R6/R7 debacle has alienated many from scheme.
- e3bc54b2 4y agoNot to mention the humongous pile of Elisp written over 40 years of its existence is hard to be backwards compatible with for any new implementation. Emacs' core isn't known to be the best codebase in existence, but it is battle hardened and hard to replicate.
- guestbest 4y agoI was thinking that applications like operating systems reveal the language they are written in as they are extended and there is too much c++ in texmacs to port it over to emacs which appears to be written in c. I can’t really comment on guile without researching it but the low level ideas are between scheme and lisp are incompatible with the lisp language, and I think he mentioned that when he said ‘non-Lispy language would be a mistake’.
- zzo38computer 4y agoI do not use Emacs, although I can still comment, about the specific things they mentioned. They are right it does not have to be VS Code; if you like that, then you can use VS Code. However, if you want specific features, then that is a different thing, and will have to be considered specifically. If you want JavaScript in Emacs, it could be an external extension, maybe; it probably should not be included by default. However, if the model is different enough from Lisp then it might be hard to fit; nevertheless, such an extension might help if you need to run JavaScript codes designed for other editors that do use JavaScripts, without having to rewrite them (polyfills will be possible, if necessary). Lisp alone probably isn't ideal though, and you should be allowed to write extensions in C as well (I don't know if this is already possible; maybe it is). WYSIWYG editing should have "reveal-codes" function also; without such thing, WYSIWYG isn't very good. One thing I think would want to have in text editor is capability of non-Unicode text encodings which don't convert to/from Unicode. You just should not expect that everything is conversion in one unified character set; it does not really work.
- zelphirkalt 4y agoPeople can make use of C dependencies from Emacs it seems. If we look at vterm, it uses libvterm, a C library.
- bradjohansson 4y agoNo disrespect to Stallman, but it's hard for me to understand what problem he's trying to solve here. Various unofficial packages have made Emacs usable to me in my work as a software engineer, which combined with Emacs's unparalleled text editing capabilities and keyboard shortcuts make it a powerful tool indeed. Without many of those unofficial packages, I would be forced to use VS Code or some alternative. In my observation, Emacs has been moving in the right direction, addressing outdated aspects and sources of lagging performance, and adding essential features like LSP support natively. I hope that Emacs contributors and maintainers can keep this focus.