Remix.run Logo
userbinator 5 days ago

It's notable that vi has been specified by POSIX (along with ed and ex), but not emacs.

PhilipRoman 4 days ago | parent | next [-]

https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu...

> The community of emacs editing enthusiasts was adamant that the full emacs editor not be included in IEEE Std 1003.2-1992 because they were concerned that an attempt to standardize this very powerful environment would encourage vendors to ship versions conforming strictly to the standard, but lacking the extensibility required by the community. The author of the original emacs program also expressed his desire to omit the program. Furthermore, there were a number of historical UNIX systems that did not include emacs, or included it without supporting it, but there were very few that did not include and support vi.

spauldo 5 days ago | parent | prev [-]

vi was born on UNIX early enough that every UNIX wound up with it.

Emacs was born on mainframes and made its way to UNIX much later, after vi had already become the standard.

skissane 4 days ago | parent | next [-]

> Emacs was born on mainframes and made its way to UNIX much later, after vi had already become the standard.

Berkeley released the first version of vi in 1978–development had started in 1976 but I don't believe pre-1978 versions were released publicly. The first versions of Unix for Emacs (James Gosling's implementation, and Warren Montgomery's implementation, developed independently of each other) were released in 1981. But I don't think that three year head start was the biggest factor here.

I think a much bigger factor was the fact that vi came with BSD Unix for free, while Gosling Emacs was being sold as a commercial product (although also freely available under rather restrictive terms); I'm not sure what terms Montgomery Emacs (from Bell Labs) was available under, but it soon evolved into CCA Emacs (a commercial product). Free very often beats commercial. The first release of GNU Emacs wasn't until 1985.

And then another major factor was that in 1983, AT&T decided to make vi part of UNIX System V. I think the reasons they decided against Emacs included the fact that they could get vi for free from Berkeley, whereas the most popular Unix Emacs implementations in 1983 they'd have to pay licensing fees for commercial use. Montgomery Emacs was developed by Bell Labs so they owned that, but it was relatively primitive and obscure; CCA Emacs was derived from Montgomery's, but had rewritten all the code so no longer was under Bell Labs copyright; GNU Emacs likewise started out as a modified version of Gosling's Emacs and then escaped Gosling's copyright by rewriting all his code, but in 1983 it wasn't an option yet, and its (proto-GPL) licensing terms likely would have been too scary for AT&T's lawyers anyway.

anthk 5 days ago | parent | prev [-]

This. Emacs came from GNU which GNU is not Unix; Emacs it's a tool to give Unix users freedoom (and a Lisp, OFC) from the Lisp Machines RMS used to use. Also, Emacs it's really huge, the closes to a "Posix Emacs" would be mg, as it's included under the OpenBSD base, but sadly it doesn't support Unicode. If it supported it, tons of Emacs users would use it as a quick editing tool, as 'mg' still launchers faster than 'emacs -nw -Q'.

And, as you said, Emacs and Lisp were for big machines, and Emacs it's like psychodelic/progressive rock: something to freely experiment creatively without machine restrictions. If you improvise "live", as jazz masters do (Lisp Machines), the better.

Unix would be like techno music from Kraftwerk: simple but well made beats and samples -machine made-, repetitive, they sound automated. But once they are put together they create something new and brilliant. Some people remix these samples and they create crazy stuff like the songs of The Avalanches, too. Kinda like Unix orthogonality between small tools and pipes.

Very different philosophies, but mixing GNU (Unix clone) and Emacs (Emacs from ITS was distinct from GNU Emacs) created something really powerful. For instance, you could automate mail and usenet fetching and sending data in the background with daemons (freeing resources for Emacs and unblocking I/O) and hack the frontend/parsing code like crazy, Or Telega, with telega and telega-server as the daemon to talk with Telegram, or even something like Mu and Mu4e for Email. Or simply, EMMS calling mpv in the background for audio and video playing -you can watch movies fom Emacs- (and mpv itself to yt-dlp for online videos) seamlessly.

In the art world, that would be like industrial music, a mix between automatization and improvisation, and, FFS, Ministry and some Prodigy songs were 100x better than Techno subgenres and every Hair Rock and Heavy Metal band with the same poses and tropes everywhere...

kragen 4 days ago | parent [-]

Just to clarify, Emacs came from ITS, predating GNU by IIRC almost a decade and even the actual construction of any Lisp machines. GNU Emacs was at least the fifth Emacs, following the original PDP-10 Emacs, Multics Emacs, Zmacs, and Gosmacs.

anthk 4 days ago | parent [-]

I hope the downvote isn't because of your answer, because I already mentioned that. I even emulated ITS under Simh, and I tried both Emacs and MacLisp.

kragen 4 days ago | parent [-]

I hope not too; your comment was very good, just a little confusing.

spauldo 4 days ago | parent [-]

Who got downvoted? Both of your comments were accurate. The music comparison stuff is subjective, but that's not worth a downvote.

(I don't know how to see downvotes in Hacki, hence why I ask.)

kragen 4 days ago | parent [-]

Possibly at some point anthk's comment was downvoted?