I'm a fan of Go's "go run". For example, you can do:
go run main.go
or: go run ./cmd/server
When invoked this way, Go compiles your code behind the scenes, but you don't have to create a binary.This means Go lends itself pretty well to ad-hoc scripting or writing small script-like tools.
Unfortunately, Go doesn't support shebang lines, but with gorun [1] you can:
#!/usr/bin/env gorun
package main
func main() {
println("Hello world!")
}
[1] https://github.com/erning/gorun