I'm just discovering the Go programming language.
(FWIW, I am fluent in C++, Ocaml, C, Common Lisp, Scheme, I know well Linux, and I have designed & implemented GCC MELT; I am considering a rewrite of some MELT monitor in Go, but have not decided it yet)
I am a bit confused about the required layout of some Go workspace. I still am unease with the notion of packages in Go (they seems similar to Ocaml's modules) and the interfaces in Go (they look like Ocaml's signatures or module types).
The How To Write Go Code document mentions both a pkg/
and a src/
mandatory subdirectory, but Michael Maccanis' Oh shell example don't have any src/
and I was still able to build it using the
go get github.com/michaelmacinnis/oh
command mentionned in its README.md
. Why (and how) does that work (without any src/
) ?
If that is important, I'm using go1.8rc2 on Linux/amd-64 (Debian/Sid). I'm trying Go right now (and did not look into it before) because Go 1.8 (scheduled before spring 2017) should have plugins and these are a feature essential to me.
PS. I've read (and liked) the Go for C++ programmer wiki; but I might miss the Go for Ocaml programmer equivalent.