every beginning is hard, but at least it doesn't deal with resolving DLL procedure addresses by hand, which it would've had to do if syscall.NewLazyDLL wasn't available.
after a while things will settle down and this "hello world" program will boil down to something much simpler, like:
import "win"
func PopWin(text string) {
win.NewWindow(text, ...)
}
also keep in mind that this is the version that purposely avoids using C and, as a consequence, can be cross compiled for windows on every machine with Go installed. there are benefits to that.