A few points:<p>1. There is no such thing as a universal runtime. All runtimes are coupled to some language&#x27;s semantics. The idea of a universal runtime has been tried several times and has always failed, or in the best case been limited to languages that are basically skins on top of the same underlying semantics (e.g. C# and VB.NET).<p>2. The IRs in the Go compiler are <i>especially</i> strongly coupled to Go semantics. Your language would have to replicate many idiosyncrasies of Go to run on its runtime. For example, you would be unable to benefit from performant lexically scoped cleanup the way e.g. Java (or basically any other language) can, because the Go language &quot;defer&quot; construct has extremely dynamic semantics and there is no support in the compiler for C++-style unwind tables (at least, I don&#x27;t see why there would be, given that nothing in Go needs them).<p>3. Go is not a good candidate for this universal runtime in 2016 due its lack of a mature optimization pipeline. Maybe in a few years, but in the meantime you&#x27;d be better off using HotSpot or .NET for this purpose.