Oh please don't get me wrong, Stallman's contributions are immense and shouldn't be ignored.
Was the problem just in the different approaches between Stallman and Torvalds? That being: Stallman wanted to create GNU from the outside in (editors, then tools, then compilers, then the kernel) whereas Torvalds went inside-out?
>Stallman wanted to create GNU from the outside in (editors, then tools, then compilers, then the kernel) whereas Torvalds went inside-out?
A new editor or a new command-line tool was immediately useful to a user of a proprietary Unix.
In contrast, a new kernel would not have been useful to the user of a proprietary application or a proprietary command-line tool unless perhaps pains were taken to give the new kernel binary compatibility with proprietary kernels -- and even then there would have been worries about whether the user had the legal right to run the proprietary tool on the new kernel.
In summary, the order in which Stallman chose to build the pieces was the order that grew the user base the fastest, which in turn grew contributions from developers the fastest, in a virtuous cycle.
Grew the user base of portions of the GNU system the fastest, yes, and was arguably a correct choice for his aims. A number of things contributed to a faster rise of use of Linux compared to Hurd - which then saw the same virtuous cycle.
I think part of the difference in approach can be explained by the arrival of the 386 processor. At the time Stallman makes his announcement he needs Unix workstation vendors to donate their proprietary hardware for him to work on, because at that time that was the only way to get a running Unix environment. By the time Torvalds makes his announcement you've got 386 processors widely available, plus Minix as a viable and cheap (but not free in either sense) alternative to Unix running on top of it.
In some ways you could argue Stallman's approach was disrupted by the arrival of cheaper commodity hardware.
I think it boils down to two differences in approach: 1) Linus was more radically open about including others in development of the kernel, and 2) Linus was more focused on "working" than "right" in kernel design. These happened to combine beautifully, as a working kernel meant people using the system and wanting to make it better.
Linus also benefited tremendously from having the GNU toolchain and userspace already available.
Ah, yes he did, except he was obstinate about using anything more fancy than email. As I remember it, though, there were a lot of ports of the GNU tools to all the unices, and the PC was still not as good as the Unix workstations. So where's the motivation to make Hurd, you know?
People weren't really clamoring for Hurd or a kernel for GNU, because they got an OS with their computer, and got the GNU tools and libc. The really major geeks would buy old, used workstations, which were built like tanks and were plenty fast for running single-user unix.
There's also the more obvious difference in design. Hurd was supposed to be a micro-kernel whereas Linux was a much more straight forward monolithic kernel. One requires the inter-operation of lots of systems whereas one is just one big system that can just keep track of everything inside instead.
I'm pretty sure no one could build a functioning micro-kernel that'd be useful and able to compete at the time the Hurd project was still relevant. Then again, maybe I'm just making excuses for the FSF.
Well, that's more or less what I'd meant by 'focused on "working" rather than "right"' - GNU was trying to do what theoreticians suggested made the most sense; Linus was trying to do what had worked before. Both have pros and cons, but the latter is "safer" and certainly seems to have paid off here.
Was the problem just in the different approaches between Stallman and Torvalds? That being: Stallman wanted to create GNU from the outside in (editors, then tools, then compilers, then the kernel) whereas Torvalds went inside-out?