Downsides though, if you want to write aforementioned mixed C# and C++ code, it's not really documented well. Generally .NET wants you to use pinvoke instead.
Discussion
May stick with Go and Java for now but sounds interesting.
I also like java, I just found tooling and C-ish syntax more appealing when starting out. Ring me up if you ever want to try some fun things out like breaking the GC guarantees with unmanaged code ;)
visual studio build tools also supports mixed code debugging, so if you need to jump into a dll or read assembly as your debugging your managed code, you can step through it as long as debug symbols are available.