All Unkept

Things that can be self-hosting

Posted in: Python, Software development  — 

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 §

blog comments powered by Disqus