I second all this. I'm using Zed today, but I was using Emacs for 20 years, then Sublime/VSCode/etc. for a few, and now Zed. If it disappears, I'm going right back to Emacs without a moment's hesitation.
I spent 25 years using emacs before vscode (1997 to 2022-ish). I didn't go deep, I mostly just enjoyed the core parts of emacs + ccmode. I don't enjoy LISP but I still enjoy emacs, if that makes any sense.
MS made some very real and very usable innovations. Emacs hackers/maintainers would be wise to copy them, like I'm sure Microsoft copied things from emacs.
It's a bit like the UI aspect of the browser wars. Everyone wins when good things are cloned and then iteratively improved upon.
vscode does three things extremely well: defaults, defaults and defaults. The most important ‘you just need M-x do-whatever after installing the whatever-doer package’ is supported out of the box (no details on purpose, try running emacs or vim without any config and compare to a clean fresh install of vscode).
I used Spacemacs for years and recommend it to others. It was fantastic in the early days, but the stability seems to have diminished. I encountered more bugs over time that I'd have to troubleshoot and fix myself.
I switched to Doom Emacs a couple of years ago. It's well-maintained with regular updates, fantastic language support, and lightning fast. The CLI tooling is also nice (i.e., you can run 'doom upgrade' to update everything, or 'doom doctor' if you encounter an issue).
It's the closest equivalent to VS Code in terms of working out of the box. Not to mention the advantages of Emacs with Vim keybindings. There is a learning curve, but the GitHub documentation is excellent.
Adding support for Ruby on Rails development, for example, is as simple as uncommenting '(ruby +rails +lsp)' line in the '~/.config/init.el' file, and then running 'doom sync'. There's a long list of supported languages and tooling [0].
It’s gotten way more ergonomic, BTW. Even if you treat it as a toolkit to build your own editor, the building blocks are much nicer than they were back then.
Thing is, I don't want to build my editor, I want to live the dream of Xerox PARC workstations, and that is what IDEs are for.
I had to make Emacs my go to editor in UNIX, because in those days there were hardly any alternatives, IDEs only started to be taken seriously on UNIX around 2000.
Even James Gosling, one of influencial people in the Emacs history says its time is now passed and he rather use Netbeans,
Speaking of old obsolete versions of Gosling Emacs, Lars Brinkhoff just posted this source code for UniPress Emacs 2.20 he got from from Hans Hübner! That's the version we called NeMACS, with support for NeWS (Gosling's PostScript based window system), tabbed windows and pie menus, etc:
DonHopkins on June 2, 2023 | parent | context | favorite | on: Brave Browser introduces vertical tabs
UniPress Emacs for NeWS in 1988: Scriptable GUI, tabbed windows, pie menus, hypermedia authoring tool for HyperTIES browser.
Emacs served as an IDE with tabbed window and pie menus, for interactively editing, viewing, and navigating HyperTIES markup language documents, graphics, and interactive PostScript "applets".
HyperTIES browser and Gosling Emacs authoring tool with pie menus on the NeWS window system
>HyperTIES is an early hypermedia browser developed under the direction of Dr. Ben Shneiderman at the University of Maryland Human Computer Interaction Lab. This screen snapshot shows the HyperTIES authoring tool (built with UniPress's Gosling Emacs text editor, written in MockLisp) and browser (built with the NeWS window system, written in PostScript, C and Forth). The tabbed windows and pie menu reusable components were developed by Don Hopkins, who also developed the NeWS Emacs (NeMACS) and HyperTIES user interfaces. (Sorry about the quality -- this is a scan of an old screen dump printed by a laser printer.)
Emacs provides the pie menus you see popped up in the illustration (Articulate, Edit, New (Storyboard, Link, Picture, Target), Define) that control the HyperTIES browser from the custom text editing mode of HyperTIES storyboards (like web pages), which the HyperTIES browser (in the background, which emacs controls in a sub-process) formats and displays. HyperTIES also uses pie menus for navigation and in interactive "applets" programmed in PostScript.
DVRC on June 3, 2023 [–]
Do any version of UniPress Emacs (that support the NeWS driver) or NeMacs survive?
I wrote the following description of how NeWS relates to modern web browsers and "AJAX" in the NeWS article on Wikipedia, and I also worked on TNT (The NeWS Toolkit) at Sun:
https://en.wikipedia.org/wiki/NeWS
>NeWS was architecturally similar to what is now called AJAX, except that NeWS coherently:
>- used PostScript code instead of JavaScript for programming.
>- used PostScript graphics instead of DHTML and CSS for rendering.
>- used PostScript data instead of XML and JSON for data representation.
[...]
HyperTIES Emacs Authoring Tool MockLisp code (Yet Another HyperTIES Implementation, This Time In Emacs):
I'm something of a vim fanatic because Emacs was sluggish, but these days have to admit that the multicore support turned out fine and the difference isn't that big anymore.
Uh, not only that. I recently updated from emacs 29 to emacs 30 where native compilation is enabled by default and it’s much much faster. Like, noticeably faster.
Ah, nice. Definitely time for me to carve out a few hours and try it out again, then.
Who knows, maybe I'll have closed the circle in a year and gone back to Emacs full time, where I started off in the editor wars a quarter of a century ago.
I think a lot of people don't have a problem with commercial software, but rather with the disingenuous behavior that some companies display.
VSCode was/is often touted as open source and Microsoft are using it to present themselves as community loving until MS sees an opportunity to extract some money/hinder the competition.
In comparison, Jetbrains is transparent with their offerings and what you get. There is in my opinion a clear difference in how they operate and how they are perceived.
Thanks for linking it. Obviously not a great approach.
I'd still look at Jetbrains more favorably than most other tech companies. Clearly not perfect by any means. To be fair to them, they seemed to listen to the feedback and provided it as a separate plugin.
I figure e.g. emacs will always be there when that happens.
All I need is a Github Copilot clone and a good code search feature.
Oh and automatic reloads of open but unchanged buffers when switching between git branches.
Oh and the ssh remote extension.