Interview: Google’s Marcel van Lohuizen

Satish Manohar Talim
4 min readSep 3, 2015

--

Marcel van Lohuizen

Qs. Welcome and thanks for taking out time to share your thoughts. For the benefit of the readers, could you tell us something about yourself?

Marcel: I’m Marcel. I’m currently working on the Go team at Google. I joined Google a long time ago. I started on the search engine and worked on the development of Borg, a large-scale cluster management system used internally in Google that now has an external port called Kubernetes. During the early stages of this project, I worked with Robert Griesemer and a bit with Rob Pike. At some point, I became a manager at Google. This was fulfilling in its own way, but I’m now happy to be back doing development.

Qs. Why and when did you decide to start working with Go?

Marcel: I was looking around for a new project to work on at Google and got the opportunity to work on Go. I didn’t know too much about it but was primarily excited to work with old colleagues again. I soon learned to love the language!

Qs. What are you currently working on?

Marcel: I am working on various things, including fixing a long-standing issue in the “reflect” library and extending the testing framework. But I’m mostly focussed on developing the golang.org/x/text repo, which holds packages for internationalization and soon localization.

Qs. How should one go about learning the Go language? What material (books, eBooks, online tutorials etc.) would you recommend?

Marcel: My approach to learning any languages is to first skim the spec and then just start trying to write some little programs and look at examples. The tour is a good start. Go also doubles as a great scripting language. This may be a good way to start with small programs.

Qs. What best practices are most important for a new Go developer to learn and understand?

Marcel: For me it was more what practices to unlearn. Having thought OO for most of my life, I had to unlearn to think about type hierarchies. One will quickly find this to be quite liberating. It reduces the amount of needless early-stage design decisions.

Qs. Which areas in Go should a would-be Go programmer concentrate on, in your opinion?

Marcel: I would say focus on Go’s strengths. Get a good grasp of the concept of small interfaces and how this allows you to stitch together code (like “io.Reader”). Getting a good grasp of the concurrency principles will make you use it more. You’ll be surprised how often this comes in handy.

Qs. What are the pros and cons of Go that are being discussed in the development community and what is your opinion on that?

Marcel: An often-heard con is the lack of generics. It can be useful at times, but adding generics to a language can also greatly complicate it. I greatly appreciate the simplicity of Go.

Qs. Most beginners in Go would like to contribute their time, skills and expertise to a project but invariably are unaware of where and how to do so. Could you suggest some?

Marcel: godoc.org is a good starting point to find out more about existing open-source Go projects.

Qs. What has been your biggest challenge while working with Go?

Marcel: For me it has been keeping things simple. The standard of keeping things simple in the core library is very high. This has been the most challenging part of API design.

Qs. What types of applications are currently being developed in Go and what changes do you foresee over the next year or two?

Marcel: The canonical Go application is a server backend. I think Go will increasingly make it into frontends as well. With the significant GC improvements we saw in 1.5, Go will also increasingly be used in more performance-critical applications. I also think it is noteworthy that many of the hot and exciting new projects use Go (Docker, Kubernetes, etc.). Docker and everything around it are moving at lightning speed and Go seems to be the language of choice in this new area.

Qs. How do you see the market for Go Programmers in the work place? What is the future for Go?

Marcel: Go has proven that you can combine the ease and fast development cycle of dynamically typed languages with the performance and security of typed languages. I think this will mostly mean that Go (or languages with similar properties) will increasingly be used as a replacement for dynamically typed languages like Python and Ruby. I think Go will play a major role in the new cloud technology.

Qs. How excited are you about GopherConIndia 2016?

Marcel: Very! I have never been to India and I’m looking forward to learning more about the country. Can’t wait to taste the local food.

Qs. Do you have any other suggestions for our readers?

Marcel: If you haven’t heard of Docker yet, take a look. The world revolving around Docker is very Go-oriented and is developing into an exciting new field of its own.

Thanks Marcel for sharing your views with us. I am confident that your insights would help all the would-be Go programmers. In case you have any queries and/or questions, kindly post your questions here and Marcel would be glad to answer.

Note: This interview first appeared in the GopherConIndia blog.

--

--

Satish Manohar Talim

Senior Technical Evangelist at GoProducts Engineering India LLP, Co-Organizer GopherConIndia. Director JoshSoftware and Maybole Technologies. #golang hobbyist