Perhaps a nit, but he didn't "write" any version of EMACS to my knowledge, just improved existing versions of them, in the two cases I'm most familiar with, making a significant qualitative difference.
Guy Steele provided the start of the first (in that there were 3 or so visual TECO systems, each with its own key bindings etc., and he got enough people to agree on one), and RMS took off with it and made it into much of what makes EMACS good (minus normal users writing code, since that version was in TECO). I'm sure he contributed to the the Lisp Machine's EMACS, but Dan Weinreb was the major author of its two initial versions (EINE Is Not EMACS, ZWEI Was Eine Initially).
The current EMACS we use was written by an obscure guy at CMI who included a bytecode compiler in it, you might have heard of him, James Gosling ^_^. RMS illicitly started with a copy of this, the rights holders, UniPress, which ran as much as possible then on the "gated community open source" business model, including EMACS, were savvy enough not to try to do anything about this (heck, even in the face of some pretty vicious stuff from RMS, up to and including an face to face accusation that they set his house on fire (it was a couple of kids with matches and ... kerosene as I recall); we did name our Laserprinter "Software Hoarder" :-).
Don't know about gdb, but he does to my knowledge get full credit for starting gcc, the GNU project and of course the GPL, essentially the modern FOSS movement, and it's hard to overstate the value of that.
Disclaimers: acquaintance/sort of friends for a while ... until I went to work for UniPress, I worked for Lisp Machines Inc. (LMI) at a time when he was pretty much the only guy working on the MIT/LMI fork and keeping it fairly close to feature complete with Symbolics, and we were roommates for a few months in the latter part of 1983, starting a bit before the launch of the GNU Project, in that (half of a) house that later was torched.
> The current EMACS we use was written by an obscure guy at CMI who included a bytecode compiler in it, you might have heard of him, James Gosling ^_^.
This doesn't seems like a fair characterization of what happened. GNU Emacs was never something one could consider "written by Gosling."
GNU Emacs did start out with bits of Gosling Emacs in it, in particular the redisplay and buffer-management code (which were tricky to get right), but Gosling Emacs and GNU Emacs were always very different programs, internally as well as in their UI. In particular, of course, GNU Emacs had a real full-fat lisp interpreter whereas Gosling Emacs used a rather weird language with a vaguely lisp-like syntax called Mocklisp. GNU Emacs was influenced a lot by Gosling Emacs in other ways, of course, e.g. the use of real buffers to display completions instead of an ephemeral completion display like the original EMACS.
Up until that time, Gosling Emacs had been widely used and freely shared at CMU (where Gosling was a grad student), and RMS thought he had a verbal agreement with Gosling to use those parts he did. However Gosling then sold it to Unipress, and Unipress didn't agree... It's not clear exactly what Gosling really said to RMS, but my interpretation is that he didn't care so much about such issues and probably just said "yeah, yeah, sure" when RMS asked—after all, everybody else was using Gosmacs in source form—but of course a commercial company did care about such issues, and took a much more hardline stance.
So, RMS had to rewrite the parts he got from Gosling Emacs.
I suspect the end effect of all this could be described as positive though, because it made very clear the importance of paying attention to the legal details as well as the technical ones.
Ummm, no. I was a front line witness to all this, after all (at one point I realized I could be a witness if this had gone to court).
By the time this was playing out, I was intimately familiar with the C base of (UniPress) Gosling EMACS, from having finished a MS-DOS port and was working on an Amiga port. So it was no trouble to look at GNU EMACS to determine it was, in the the legal, copyright sense, a derivative work, not something that was influenced by it, which is not something that RMS/GNU were even claiming at the time.
They said, based on an email they claimed to have received (that as I recall they never produced, but as you note all this hardly matters), that they were authorized to start with an old version of Gosling EMACS, and they claimed they fixed this legally by rewriting every part of it they got from Gosling EMACS ... which doesn't cut it, legally. If UniPress had been run by junkyard dogs they could have done an USL v. BSDi and put the GNU under a legal cloud, except they probably would have won. It was an unconscionable risk for RMS to take.
Fortunately, all they did was verbally disagree, they thought GNU EMACS would create a bigger market for Gosling EMACS, which I'm sure was true for a while (the version GNU started with was ancient and missing a lot of polish), and that no one would win if they took it to the courts. It probably helped that they'd previously worked at Plauger's Whitesmiths and the separation was as ugly as you can imagine, although the legal drama was cut short when the other side's lawyer was caught burglarizing their office, which doesn't tend to impress judges....
Note the other comments in this discussion about how RMS isn't a good steward of many of the efforts under his control, and I'd add specifically "look at how GCC died and was replaced by a community version", the Lucid Emacs/XEmacs mess (in the link that points out RMS can't sing), and Hurd's beyond Duke Nukem Forever path.
As I said, parts of it were copied, but many parts of it were not. You cannot say in any reasonable sense that Gosling "Wrote GNU emacs" (but of course that is not necessary to win a copyright challenge; part is enough).
[I also spent tons of time looking at the source code for both versions at the time, and both the similarities and differences were pretty clear.]
Obviously I disagree (although I don't think our disagreement is very large), I would say the truly essential parts were written by Gosling, and that RMS and company's biggest value adds were on top. Hmmm, I suppose that it might be a bit like "GNU/Linux", except the gcc etc. tool chain makes the argument for the latter stronger.
Without reviewing my Finseth, what is there besides buffer management and its linked redisplay, built in commands (a lot of which were copied, like my favorite marker of backup-by-copying-while-linked, which in the '80s was to my fairly extensive knowledge unique to Gosling EMACS), keymappings and the extension language? (Half my professional work in the '80s was on many different versions of EMACS, and I believe I worked on every significant UNIX one, although only Steve Zimmerman's CCA Emacs was a real competitor to Gosling/GNU EMACS as machines got enough memory. Note when I say "worked on" I might mean nothing more than porting; today's young whippersnappers are spoiled by the Linux mono-culture and/or modern package systems :-)
You say the first two "were tricky to get right" ... you've got that right, back in those days when resources were dear and performance was critical (Eight Megabytes And Constantly Swapping :-), they were in my opinion the hardest parts, especially since the superiority of the buffer gap vs. linked lines wasn't necessarily intuitive, and didn't the main file of the Gosling redisplay code have a skull and crossbones at the top? Although I'll admit to some bias since buffer management on the PDP-11 and non-VM PCs and 68000 workstations was problematic, in this case especially for a code base that started on a paging super-minicomputer (the VAX). Once you had those, building on top of them is fairly obvious, and a if not the largest part of the quality was a matter of taste, where RMS was vastly superior to Gosling, from using "standard" keymappings to a real LISP.
Guy Steele provided the start of the first (in that there were 3 or so visual TECO systems, each with its own key bindings etc., and he got enough people to agree on one), and RMS took off with it and made it into much of what makes EMACS good (minus normal users writing code, since that version was in TECO). I'm sure he contributed to the the Lisp Machine's EMACS, but Dan Weinreb was the major author of its two initial versions (EINE Is Not EMACS, ZWEI Was Eine Initially).
The current EMACS we use was written by an obscure guy at CMI who included a bytecode compiler in it, you might have heard of him, James Gosling ^_^. RMS illicitly started with a copy of this, the rights holders, UniPress, which ran as much as possible then on the "gated community open source" business model, including EMACS, were savvy enough not to try to do anything about this (heck, even in the face of some pretty vicious stuff from RMS, up to and including an face to face accusation that they set his house on fire (it was a couple of kids with matches and ... kerosene as I recall); we did name our Laserprinter "Software Hoarder" :-).
Don't know about gdb, but he does to my knowledge get full credit for starting gcc, the GNU project and of course the GPL, essentially the modern FOSS movement, and it's hard to overstate the value of that.
Disclaimers: acquaintance/sort of friends for a while ... until I went to work for UniPress, I worked for Lisp Machines Inc. (LMI) at a time when he was pretty much the only guy working on the MIT/LMI fork and keeping it fairly close to feature complete with Symbolics, and we were roommates for a few months in the latter part of 1983, starting a bit before the launch of the GNU Project, in that (half of a) house that later was torched.