@tomjennings

I'm not sure what part is surprising here. Definitely Emacs arose on top of TECO via Control-R mode as described. I guess people are surprised there was something before emacs-lisp?

There was one semester of Sussman's course in between the old 6.031 and the revised 6.001 where they had been on an 11/45 and wanted to move to the 10, and I packaged up a thing called MinEmacs (a mini-emacs) that was not extensible and just had a basic set of commands I thought would keep people from getting confused.

Stallman did NOT like my packaging. He said that Emacs was not about the command set and that it could have vi's command set for all he cared, but that it was about extensibility [edit: i should've said customizability here, though both, the ability of users to program it, in other words. Sorry I have no quote.], and that I should not use reference to Emacs for what I did. I had been worried that some region commands were a bit surprising because Emacs did not visibly display the region and it was often baffling what happened to the region. He wrote a library called Novice that he said was the right way to do this. With it loaded, when you did one of the worrisome commands (which were still disabled by default) it would ask you if you knew what you were doing and wanted to turn the command on. This behavior became a standard part of emacs when the port was done to emacs-lisp, so there is no novice library now. But at the time it was a separately loadable thing.

I tell the story mainly because it gives a sense of what the identifying characteristic was of Lisp as I understood it based on his strong reaction to what I'd done.

@kentpitman @tomjennings Hunh. Were there other mini-emacs's before microemacs?

@davefischer @tomjennings

Dunno.

My editor mostly curtailed extension. not sure it it was smaller. Don't recall exactly how I built it. I'm not trying to compete for a place in history with the reimplementation crowd. I just feel like there WAS a lot of cool work at risk of not being recorded. People wrote papers on certain things, but they were encouraged to delete other things because diskspace was always at a premium.

So I feel like there was competition with emacs that I don't see represented in that summary page.

People wrote macro packages. Emacs was a particular set of macros, My impression as i arrived on scene was thst TECMAC was competing with EMACS, each of which packaged such macros.

I would at least like to see related work like that represented in such writeups, because just like with backquote/quasiquote in Lisp, there was a soup of ideas that a lot of people had implemented before something was finally standardized, and what later seemed like an invention was really more of a competition, not even competitive, just people getting work fone differently. Even bundling things into traded libraries was an evolving notion.

EMACS was part of a soup of parallel efforts that got whittled down because managing your own was a pain, and for some it meant more trading away their own ideas for someone else's just to get out from under maintenance burden.

Some people just had large libraries that got added on to one or another of these. Like Dave Moon's lunar library. There were two different TECO compilers, really compressors. They disagreed over whether to compress out the spaces or to require you to use underscores that would get replaced by spaces a similar problem exists today with verbose mode and regular expressions if you're looking to understand thaf problem.

Control-r mode in TECO, the idea of associating a sequence of editor commands with each keystroke, seem to me the real innovation. What I recall from the time, so I can't say for sure, was that it was Steele's suggestion and Stallman's implementation. I don't know if that was right but that was what I was told.

1/2 (this message ran long, and sorry for typos which maybe I'll fix later, but I'm in a hurry today and doing a lot of voice dictation of terms that are not transcribing well)

@kentpitman @tomjennings @davefischer
> EMACS was part of a soup of parallel efforts that got whittled down
> because managing your own was a pain, and for some it meant more
> trading away their own ideas for someone else's just to get out from
> under maintenance burden.

This makes me curious what was the cause of the maintenance work? OS
churn? Porting to new hardware? New file formats? Evolution of
the underlying programs and tools that they invoked?

@craigbro @tomjennings @davefischer

> what was the maintenance work

That's a really good question actually. I'm not sure if I can remember specifically, although I do know that there are new versions of things released from time to time. I think it was mostly pressure from users to fix bugs or add features.

TECO was remarkably stable as I recall, Vastly more so than Emacs lisp, which completely wrecks my extensions every single time there's a new major version. And with small exceptions, people mostly did not call other libraries as subroutines. They just built their libraries directly on TECO.

It's possible that ZBabyl, my library for Zmail compatibility on top of the Babyl malil reader made some assumptions about Babyl, but probably those were not violated very often, if at all.

I'm not saying the tenor of the time was that there was no software rot. Maclisp used to change incompatibly almost every week, and this is one of several pressures that led to Common Lisp. There is a tension between the need to develop new things and the need to be stable so that new things can be layered on top.

TECO may have had small things added to it, but I don't perceive that it changed a lot. At least I don't remember it impacting me much.

And the operating system did change but generally in compatible ways, not withstanding the dire nature of a name like incompatible time sharing system. That was mostly a name joke about CTSS (the compatible time sharing system) as I was told, though never bothered to check.

For example I think I mentioned some recent message about the echoin system call being added to the OS. TECO and/or emacs advantage of that, but I don't think it affected most programs, including most emacs libraries.

So I'm going to go out on a limb on the basis of far too little information, since I only maintained a few libraries, and say that most of it was just feature requests and in-library bug fixes in a time when it was popular to be very responsive to such things in order to maintain a customer base.

I wrote TeX mode. I think there was a trivial one before that, but I'd found it to trivial to use. As I recall it's concept of what a dollar sign was was just a variant of vertical bar in lisp, which was really inadequate. Mine added things like flashing matching dollar signs and separate managing of bracketing enclosure differently inside of dollar signs and outside. I was doing a lot of editing in a raw TeX and needed unbalanced things to work well. It had support for looking at things in comments that you could leave to say to view the buffer as different zones of correctness so that one type of graphical and completeness somewhere didn't poison the whole buffer's syntax analysis.
I hope/think the stuff I did on this got transliterated into emacs-lisp code.

I wrote a version of lisp mode that extended indentation to work like the list machine where it knew that some number of forms have special indentation before the body. This data driven so you could declare your own operators to have that same concept. I suspect somebody transliterated this as well to emacs-lisp.

And I wrote a mode line manager MODLIN, that my NEX library (an extension of Bob Kerns' EX library, which was partly borrowed from Lunar and other libraries). There was a lot of redundancy and not all of those libraries needed to survive.

NEX had a nice feature, which Jonathan Rees might have imported into gnex, I have not checked, of flashing the matching backquote when you type a comma in lisp mode. That was a case where an extension was needed because backquote was not originally in Lisp. And c-x # for keyboard macros arose just because I had a lot of things that were numbered and I wanted the keyboard macro to be able to insert successive numbers.

1/2

@craigbro @tomjennings @davefischer

But in general there was a rich commerce in suggestions because the ITS mailer, COMSAT, supported the notion that you could mail to BUG-anything or FEATURE-anything. If there was not a specific mailing list, it would go to BUG-RANDOM-PROGRAM or FEATURE-RANDOM-PROGRAM and a human would get it to the right place. So you could always report bugs on anything. And people genuinely took great pride in things they maintained. Which was why it was overhead cost some didn't want.

But an example of a problem in a library was that modeling would sometimes go off while in the mini buffer and the mini buffer load line was different than the regular mode line and it would get tangled while operating a mode line update at an interrupt level. Don't remember if that was a teco bug, an emacs bug or my bug. But complex shared state was an example of something where software could get out of alignment.

There was a library I did not write call LISPT which was a sort of precursor to things like slime, that ran as an inferior process to a lisp, abd it relied on coordinated support insude lisp, so I'm sure there were maintenance issues there. I saw recent references to LEDIT which also did a similar kind of thing. The reference I saw in the last month somewhere in social media seem to suggest that LEDIT was the thing everyone used, but LISPT what's the thing I and people I know were using. So again, more competition than sometimes people mention.

2/2

@craigbro

I was not part of those worlds so cant comment specifically.

But before integrated cpu chips every computer was an utterly different instruction set, different system, different arithemetic model, different io and certainly, different and incompatible languages and compilers.

As late as the DOS era C compilers varied widely, and not source level compatible. Open source as people know it today didnt exist because it couldn't. (Though User Groups sharing tapes -- within a manufacturer eg DECUS -- goes back to the dawn.)

Very often moving any significant program from computer A to computer B was as hard or harder than anything to day, even for a relatively modest text editor. The sheer diversity is hard to imagine today.

@kentpitman @davefischer

@tomjennings @craigbro @davefischer

This is going to go into a lot of personal opinion that I cannot back in any objective way. I'm just exposing my own thoughts.

I mostly agree with this, and surely there were a lot of site conditionals. And note I call them site conditionals and not architecture conditionals, because exactly as you say, they seemed so specific to a particular machine. Even the four PDP-10's running ITS were slightly different model numbers. They knew about each other and could cross-call each other under some circumstances over the chaosnet (effectively what is now the ethernet) but theit identity mattered. Maclisp was distributed among these, but also made to work for TOPS-20, which was very similar to the PDP-10. ITS TECO was similarly made available in those environments. Early prototypes of what was eventually free software. I think the term copyleft predates, though I didn't check. The term all rights (or writes, I don't recall) reversed being a joke on All rights reserved. But there was no financial advantage to selling such software. No real market for somebody to buy it. So it was shared because kind of why not? It was not yet a market economy. Money came from elsewhere.

And capitalists like to tell themselves that they are special in some way, that they are driven, where ordinary people are lazy. Or that only smart people will do good things if not forced to participate in markets. But I'm not so sure. I think when you free people from having to chase money for food, they get excited and creative because they have the freedom to stop and think without worrying about starving, to have fun without being criticized for not doing something useful, as if having fun was not useful. And I think that would happen to more than just this crew of people.

I don't think the enabling thing was just at these people were smart. I think it's that they had the freedom to explore. Market economies are based on scarcity being valuable, but this economy was not based on that and so it didn't have to hoard software, it could share it.

I'm not really opposed to free software. There are many places it's done good things. But the concept is dissonant with our economic system which intends you to hoard something, to make it uniquely yours, that you can extort value from others. It's worth stopping and thinking whether that's a good model. Many think that that's what free software does, but it does not. Free software forces you to stop and think whether you can afford under a system that wants you to do something completely different to stand up to that system by injuring yourself under its model. That's a much more risky thing and not a risk everyone can take. But not because they don't want to share or they don't understand, just because the current system is harsh and not everyone is up to fighting it.

But what I'm saying is that we're also in charge of that system that's being fought and then in some sense the wrong battleground has been chosen. Free software has some nice ideas in it, but goodness or badness of an idea is sometimes chosen according to context, and even as there's much good that's been done with free software in spite of the obstacles, that same good might be done differently if we had a world based on collaboration that did not require us to care about licenses at all.

Free software is a pragmatic patch to a system, but it carries a kind of technical debt that can only be resolved by fixing the system iself properly.

YMMV

@kentpitman @davefischer @tomjennings
> I don't think the enabling thing was just at these people were
> smart. I think it's that they had the freedom to explore. Market
> economies are based on scarcity being valuable, but this economy was
> not based on that and so it didn't have to hoard software, it could
> share it.

See the world, you have built it, with shoulders of iron.
See the world, but it's not yours, say the stealers of Zion.
- The Clash - The Equaliser

My relationship to free software over my 30 years as a developer is founded upon the fact that it is what enabled my career. I didn't go to college, or have a local peer group. Learning linux, and using free tools to build my own workstation, clusters, and eventually, becoming a lisp programmer, would not happen with the generous sharing of others. I was able to share much of my work as open source, because little was actually depending upon the license.

I agree with you, we should not confuse the visible and valorized "capitalist economy" with the entirety of the socio-economic systems that we depend on, build, and flourish within.

@kentpitman

I wholeheartedly agree with you, and have similar criticisms. The free software movement has serious problems, as you say. Its also being used to build the surveillance culture we're living under. Technology is not freedom and technological improvements are not progress.

@craigbro @davefischer