What paths will the Go programming language take? This question is posed to CoreOS CTO and Co-founder Brandon Philips, and DeferPanic Founder Ian Eyberg, at the start of this edition of The New Stack Analysts podcast, recorded at GopherCon 2015.
“We’re talking about systems that aren’t writing kernels – not writing underlying, low-level bits that are talking directly to hardware – but systems that are interacting across a data center or across the Internet,” says Brandon.
“The cool thing is,” says Brandon, “it’s a piece of technology that’s enabling a lot of interesting research and development in those areas. So you’re seeing time-series databases being built, you’re seeing these consistent databases being built, schedulers, things that talk to and configure network fabric.”
Ian says that Go has a consistent syntax that’s easy to learn, that he can read it in one environment and then another, and see the same style. Upon learning it, one can read it anywhere, in easy-to-understand terms, says Ian, whereas Erlang, for example, is a language that has some similarities to Go, but it is hard for people to understand what they are looking at when they see it.
People other than those on the language core team are able to import external packages, an idea that Brandon calls good, interesting, and well-thought-out. As the Go language and tooling matures, it can remain lean.
According to Ian, packaging in general has become a contentious issue. As has generics, too, suggests Alex.
“I think a small minority of people have a problem with (generics),” says Ian. “The people that have a problem with a lack of it, they’re so used to a different style of programming from other languages that allow them to mix and match their code freely, even when it might not be the best idea to do that.”