4 ms·
> Emacs shares the same namespace for everything. Addon developers just namespace their stuff by putting a prefix on their identifiers. It's not really an issue
by danShumway 6y ago
> Emacs shares the same namespace for everything. Addon developers just namespace their stuff by putting a prefix on their identifiers. It's not really an issue even for them.
I use and love Emacs (Spacemacs), and I am probably never going to move to another editor.
BUT as someone who maintains a Spacemacs config, no, Emacs addons break each other all the time. It's not just a namespacing problem, it's which events you're hooking around or interrupting, it's which system features you're changing that other addons rely on.
This kind of organized chaos works out OK in Emacs because I can read the source code of the offending Spacemacs layer or script and wrap around it to get it playing nicely with the rest of my setup. Emacs has very good debugging tools built into it, and you can hack on the editor in the editor. It also has a fairly decent community of people online who will help you debug configs as long as you're not being too annoying about it. This all ends up being pretty important, because you are going to need to debug configs.
Emacs expects you to be a power user that knows how to program, and if you are a power user that knows how to program, there are advantages to that. But even with those advantages, the sheer amount of time I've wasted getting EXWM to play nicely with other workspace addons...
I just think there's benefits and tradeoffs to both approaches, and I wouldn't be so quick to dismiss the engineers who decided that their users shouldn't need to learn how to program to keep a functioning set of addons running in their web browser.
- Reelin 6y agoMy question is then: where's the hackabale power user browser implemented in something like Common Lisp with a REPL, hot swap debugging, and built in disassembly tools?
- ChrisSD 6y agoTo be honest I'm surprised Emacs isn't a browser yet. It does everything else.
- danShumway 6y agoThere are efforts, and there are things you can run, but I wouldn't personally recommend doing so. I am very paranoid about browser security, and I (frankly) don't trust smaller browser projects that aren't highly vetted by lots of people. That's an entirely separate conversation. My opinion is that it ends up being simpler and safer at the end of the day to just wrap the entire Firefox application in an Emacs buffer and then intercept keypresses to that buffer. But you do lose out on a lot of stuff by doing that; I'd love to have tighter integration.
- throwaway_pdp09 6y agoIt has a browser, eww (https://www.gnu.org/software/emacs/manual/html_mono/eww.html https://www.gnu.org/software/emacs/manual/html_mono/eww.html), and I think others. eww doesn't work very well yet. Try it for fun only. And it's slow. Pretty certain it does cookies but not js. I think there's an emacs web browser which delegates the actual mechanics to something external, and only acts as a front end for display/interaction. Never tried it.
- ravar 6y agoI would love to know about this mythical browser, the web is one of the last things i don't have in emacs. I would dearly love to fix this.
- throwaway_pdp09 6y agohttps://html.duckduckgo.com/html?q=emacs%20%22web%20browsers%22 https://html.duckduckgo.com/html?q=emacs%20%22web%20browsers... get you https://www.emacswiki.org/emacs/CategoryWebBrowser https://www.emacswiki.org/emacs/CategoryWebBrowser as the top link. In the latter EAF isn't a web browser despite what it says. Have a look at the others. Piggyback browsers aren't going to be sophisticated, that's just how it is.
- zelphirkalt 6y agoThere is w3m inside Emacs though, which can be good.
- danShumway 6y agoAnd this is (one of the reasons) why it's wildly important that we have a diverse browser ecosystem rather than all building minor forks of Chromium. And this is also why (disingenuous as they often are), some of the "web is too complicated" arguments can't be completely dismissed, because it is true that building a secure browser that's safe to use is a gargantuan task. And this is also why it stinks that the Servo team got gutted, because Servo was shaping up to be an interesting new low-level embedded engine in that space. Both sides are true. I understand completely why Mozilla went the route they did, and I agree with their decision to do so, and I also sympathize completely with the people who want to be able to live-hack on their browser in their browser. I want the ability to do that too. But I think the only way to solve that is to have more browser diversity... somehow. I also don't want Firefox to be unusable for nontechnical users. I need a secure, reasonably private browser that's not based on Chrome that I can recommend to nontechnical friends and family.
- ChrisSD 6y agoTrouble is not only the complexity of a web browser (and security thereof) but that Google's "living standard" is a constantly shifting target. Even a company like Microsoft couldn't keep up with it and gave up. So long as Google is in charge and has infinite* resources to throw at it, nobody else is ever going to be able to keep pace. Apple works around that by not really trying to keep up. It implements features in its own time (or else some third party contributes code to WebKit). But iOS gives Apple a captive audience which means it has much more freedom to be "slow" compared to Google. As much as I might philosophically dislike their policy of only allowing their own web engine on iOS, it is the only thing keeping WebKit alive as a major alternative.
- Santosh83 6y agoApple and Microsoft both have resources to dedicate as much man/machine-power as Google does for their browsers if they wanted to. They just don't want to play the neck-and-neck game any more. MS has opted to simply use Chromium while Apple as you say goes at its own pace. But they do have the capacity to match Google if they choose to, given some ramp-up time.
- dralley 6y agoBrowsers are some of the most heavily optimized software out there, and they use a lot of memory. I don't think switching from C++ to Lisp would work out so well.
- Reelin 6y agoAre you aware of how heavily optimized (for example) SBCL is? Similarly, significant portions of Firefox are implemented in JavaScript at this point. I'm willing to accept a Fortran implementation via FFI for the truly performance sensitive bits though. /s
- smabie 6y agoNyxt is a browser that supports that. It wraps WebKit though, which is both good and bad I guess. Give it a try, it's nice.
- hpfr 6y agoWhat if I told you this is being enthusiastically developed and is supported by NLNet https://nyxt.atlas.engineer/ https://nyxt.atlas.engineer/ https://github.com/atlas-engineer/nyxt/issues/887 https://github.com/atlas-engineer/nyxt/issues/887 https://nlnet.nl/project/NyxtBrowser/ https://nlnet.nl/project/NyxtBrowser/
- Reelin 6y agoThis is amazing and sounds like exactly what I was imagining.
- zelphirkalt 6y agoThere is Nomad, which I think is either a GNU project or at least Free Software and written in (using?) GNU Guile. Not sure how mature it is.
- servilio 6y agoYou mean this one? https://www.nongnu.org/nomad/ https://www.nongnu.org/nomad/
- dleslie 6y agoI've never once had issues with Emacs like you describe, and I've been using it for about 25y. I think the key is that I don't use any deeply intrusive packages. No Spacemacs, no Evil; hell, I won't even touch EDE. Still, my personal config is _packed_ with tweaks and custom packages, and I've maintained it continuously all this time.
- danShumway 6y ago> I think the key is that I don't use any deeply intrusive packages Sure, but if you're not interested in using deeply intrusive packages or addons, then why does the sandboxing and forced separation between addons matter? I can keep a clean Firefox config if I don't install addons that do anything too interesting, but if I don't install addons that do anything too interesting then I'm also not really going to be affected very much by the move from XUL to webExtensions. I think the core of the debate is about the intrusive packages, not the surface-level ones. The only reason for Emacs to embrace the more dangerous kind of "everything is editable" levels of customization that people are advocating for within Firefox is so that we can implement stuff like Evil, EXWM, sidebar previews, embedded GTK apps, etc... Those are the power-user selling points of Emacs that keep me hooked on the platform.
- dleslie 6y agoI use interesting packages. lsp, dumb-jump, projectile et cetera.