Please hear me out: Do not consider this as some unrealistic ambitious project that I am going to pursue. This is purely a thought experiment and design discussion on the feasibility of the idea that bothers me.<p>I use Emacs most of the time. I do consider it a great piece of software purely due to its extensible nature. I can go on about how Emacs is fabulous, but that is not the point here.<p>I use VSCODE too. And it is also a great text editor based on Electron.<p>Electron is a great framework too.<p>Most of us while doing software development, use a browser. Either for browsing documentation, finding answers, checking the meaning of the error messages, etc. We copy code from the editor, shell to the browser, and back to the editor, and shell.<p>Also using electron we can create almost any kind of desktop application. Currently what is happening is we create/ship the entire Chrome/JS run time to create an entirely new application for each specific case.<p>Now let's try to put the pieces together.<p>Why can't there be a single editor that has a similar extensible nature as emacs but uses JavaScript as the scripting language, and develop extension using HTML and CSS unlike only a text-based extension using elisp in emacs, so that we can leverage the Chrome runtime efficiently?<p>Why can't we browse the web, edit text, and use the terminal all simultaneously?<p>Yes, anything is possible given that we solve the hurdles.<p>Based on your expertise and experience what challenges do you consider one may face during the design and implementation of these requirements?
I was going to shout "heretic!" How dare you defame the C-c C-f gods with your BLASPHEMY!<p>But yes, you're right, Electron <i>is</i> pretty cool and doing thought experiments is also cool.<p>However... as a backend developer, I rarely use a browser. And when I do, I use Eww in emacs. If I want to read a pdf, I convert it to sixels and print it out to the terminal. Plus, if I stay in the terminal, my identity goes with me when I ssh to other systems, so I can avoid SSO weirdness.<p>I'm not a BIG elisp fan, but I like scheme more than I like javascript (the reason I like javascript is I it has some scheme-like features.) The last time I thought about replacing emacs I thought about doing it with Janet. But I'm willing to bet you could compile Janet to JavaScript or JavaScript to Janet or really anything to anything else, so I think the rendering model might be the component to get absolutely right.<p>Before you go off on HTML plus CSS, I encourage you to look at DSSSL, CSS and XLS(T)'s spiritual successor. The flow object model it used was IMHO much better than HTML's box model.<p>It makes me think I should stop talking and write some code. I'd be real interested to hear more about what you come up with, even if it's just ideas or code snippets or very basic demos.
This is exactly what emacs-ng does?<p><a href="https://emacs-ng.github.io/emacs-ng/" rel="nofollow">https://emacs-ng.github.io/emacs-ng/</a><p>> This project should be considered an additive native layer over emacs, bringing features like Deno's Javascript and Async I/O environment, Mozilla's Webrender, and other features in development. emacs-ng's approach is to utilize multiple new development approaches and tools to bring Emacs to the next level. It is maintained by a team that loves Emacs and everything it stands for - being totally introspectable, with a fully customizable and free development environment. We want Emacs to be a editor 40+ years from now that has the flexibility and design to keep up with progressive technology.<p>I guess it uses webrender instead of electron?
I'm surprised that nobody here mentioned Atom [1]. IIUC, Atom was designed to be hackable like Emacs.<p>A successor to Atom is Pulsar [2].<p>[1] <a href="https://github.com/atom/atom">https://github.com/atom/atom</a><p>[2] <a href="https://pulsar-edit.dev/" rel="nofollow">https://pulsar-edit.dev/</a>
<i>Do not consider this an unrealistic ambitious project... this is purely a
thought experiment</i><p>Well, which is it?<p>Your rambling suggests extreme ignorance of how emacs is built, and what
it's good at.