gcc can compile the source code for gcc
vim can edit the design docs for vim
bbs can brainstorm ideas for bbs
bbs1 can brainstorm ideas for bbs2
vim can edit the design docs for emacs
gcc can compile the source code for lisp
Self-hosting bootstrapping software is powerful.
But modular software is powerful too.
And a module, by definition, cannot be independently self-hosting.
A fixed-point combinator allows monolithic self-reference aka "recursion".
Generalizing to modular self-reference aka "mutual recursion" uses a "poly-variadic" fixed-point combinator:
https://okmij.org/ftp/Computation/fixed-point-combinators.html
ocaml
let rec even : int -> bool = fun n -> n = 0 || odd (n-1)
and odd : int -> bool = fun n -> n <> 0 && even (n-1)
The power of [spoiler]GNU plus [/spoiler]linux isn't that it's a good self-hosting operating system; it's that it's O(2^N) bad "cross-hosting" operating systems where N = earth's population.
I'm not smart enough to find the correct combination of modules by myself, but I believe there's a software that could help me collaborate with others to do so.
Nor am I smart enough to program [i]that[/i] software by myself, but I believe there's a software that could help me collaborate with others to do so. [i]ad infinitum[/i]
GitHub can host the source code that runs GitHub.
Google Docs can host the design docs for Google Docs.
Wikipedia can host the brainstorming for Wikipedia.
[b]What's next?[/b]
(Forgive me for not knowing the names of libre versions of these websites; the Fediverse fails because it does not host Discovery services for the Fediverse.)
(I understand people manually do Webrings by hand, but the Protocol & User Interface lack 1st-class immanent support)