What should people know about the subject of your book? Why is it important?
Go is the new kid on the block, and it doesn’t look like it’s disappearing any time soon. Although it was originally developed as a systems programming language for Google, programmers have realized its much broader potential. Many major applications are already written in Go, such as Cloudflare, SoundCloud, and Docker. I’m told that the Chinese love it!
Right now, Go is used mainly for server-side programming, but it is starting to make inroads into many other areas such as web, robotics, and machine learning. Some people claim it will eventually replace Node.js, Ruby, Python, and even C++. Sure, we’ve heard it all before, but one thing is certain: interest in Go is increasing rapidly.
What’s so good about it? Well, it’s a general-purpose language that lends itself very well to specific tasks, such as web services. It has some great features, particularly around concurrency. But most of all, it’s small, it’s simple, and it forces you to create code that will be easy for you and others to maintain. If you have programmed in any other language, then you’ll pick up Go easily. And why not invest the time? It could very well be the Next Big Thing.
When did you first become interested in this subject?
Oh, I just can’t help myself. I can’t bear to miss out. If I hear that some new technology is out there that will CHANGE EVERYTHING, I just drop what I’m doing and look into it. Normally my interest is short-lived: I realize that it’s all just hype and go back to using the old tools that I know and trust. But something about working with Go really appealed to me. It’s just a great language to program in, so I’ve stuck with it.
By writing this e-book, did you learn anything new yourself?
I learn something new every time I write or teach. Even though this is a beginner’s book, the act of putting words on the page forced me to really think about what I was telling readers, and question my own assumptions. In doing so, I learned a lot. After all, they say if you want to learn: teach!
How will this subject change over the next few years?
I hope the answer is “not much.” The main appeal of Go is its simplicity and the fact that the language itself is small. However, the Go ecosystem doubtlessly will change a lot. As people find ever more use cases for Go, there will be new modules and frameworks popping up all over the place. Many will be of minority interest, but some will become almost as important as the language itself, like Rails was for Ruby.
Do you see the subject as part of a larger trend in software development?
Yes. Developers crave simplicity and the ability to develop applications rapidly. We’re also beginning to run up against the limits of what we can achieve in silicon, and I haven’t seen any quantum computers in PCWorld yet, so we’re increasingly looking at what we can do to optimize the software that runs. Therefore, developers will want simple methods for developing and managing highly concurrent applications, and that’s one of Go’s biggest strengths.
What other books or resources on this topic do you recommend?
For the definitive text, see The Go Programming Language by Donovan and Kernighan. Golanger Dave Cheney has put together a great page of resources for new and improving Go developers, and I can’t argue with anything there: https://dave.cheney.net/resources-for-new-go-programmers. Also, keep an eye out for my forthcoming book Go Web Development Succinctly, which will be published by Syncfusion very soon.