Things that can be self-hosting

Posted in:

With slightly different concepts of “self-hosting”:

  • Compilers (if the compiler can compile itself e.g. gcc, GHC, many others)

  • Operating systems (either in terms of development of the OS, or virtual machines run on the OS)

  • Build tools (e.g. make, autoconf etc.)

  • Version Control Systems (git, mercurial etc.)

  • Testing libraries and tools

  • Debuggers

  • Bug tracking tools (e.g. Trac)

  • Editors and IDEs (if you use the editor/IDE to develop itself)

  • File distribution servers (e.g. web server, bittorrent client/server, which can be used to distribute themselves.)

  • Grammar definition languages (e.g. BNF, which can be described in BNF)

  • Package management tools (apt, Cabal etc)

  • Documentation tools (e.g. Sphinx)

  • Manufacture of robot parts

  • An item in a list that depends on self-reference to be properly understood, like this one :-)

I'm struggling to define this concept exactly. A common thread with all of them is that there will be some kind of boot-strapping problem before maturity is reached. Also, most of these things can be classified more simply as “software development tools” – due to the fact that most software development tools are software, there is the possibility of this kind of “recursion”.

Are there other things in this category that I haven't thought of? Are there lots of areas of life outside the software world where this is common?

Comments §

Comments should load when you scroll to here...