I’ve been playing around with Google’s programming language known simply as Go lately, and have learned quite a bit about concurrency, parallelism, and writing code to effectively use multiple CPU cores in the process.
An Overview of Go
If you are used to programming at the systems level, Go is effectively a replacement for C, but also has higher level functionality.
- It is strongly typed
- It can be compiled
- It has its own unit testing framwork
- It has its own benchmarking framework
- Doesn’t support classes, but supports structures and attaching functions to variables instantiated from those structures
- Doesn’t expose threads, but instead uses a construct called “channels” for communication between different parts of a Go program. More on channels shortly.