What is self-hosting, and is there value in it?

edA‑qa mort‑ora‑y - Feb 15 '19 - - Dev Community

I got a chance to talk with CppCast* and one of the questions that came up was self-hosting. I thought I'd write something quickly about it, and leave it open to discussion as to the value in it.

*Sorry, no embed as they don't appear to be listed on the podcasts here. 😟

I was working on the Leaf compiler, which we talked about on the show because it was written in C++. I was asked whether my goal was to self-host it.

Self-hosting means the compiler is written in the language itself. In this case, it'd mean the Leaf compiler is written in Leaf. A lot of languages have this is a goal, such as Go or C#. Whereas a language like Python or JavaScript are not self-hosting.

I said that self-hosting was never a goal of Leaf. I think that answer was a bit unexpected. Sure, ultimately, it would be self-hosted, but I couldn't think of any short-term value in it. It brings no new features to the language, yet creates a boot-strapping hassle. Having another language written in C++ doesn't hurt either community. Just as Python being written in C doesn't detract from either Python or C.

Do you think that having a self-hosting compiler represents a kind of maturity for the language? Is it a case of eating your own dog food? Or is it unnecessary and distracting from a language's main goals?

What do you think?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player