Interview with Matt Aimonetti, the co-founder and CTO of Splice

“Go is way less verbose than Java”

Gabriela Motroc
Matt Aimonetti

Go is a new hot language that may dictate trends this year. We talked to Matt Aimonetti, the co-founder and CTO of Splice, about the complexity of Go, its community and the need for more documentation, posts and books for new programmers.

Go adoption has not always been strong, but that changed after its inclusion in high-profile projects, including Docker. Go has been used by The New York Times and BBC Worldwide, but also by, Dropbox, SoundCloud and more and the trend continues. If the pace continues, Go adoption could become the next Java in enterprise, according to a blog post by Shiju Varghese, a Solutions Architect and published author.

We talked to Matt Aimonetti, the co-founder and CTO of Splice, about the benefits of Go, its community and what can be done to improve this programming language. 


JAXenter: Hi Matt! In your Medium post you mentioned that Go is for everyone. What do you mean by that?

Matt Aimonetti: Go is a new hot language and its adoption is skyrocketing. However, I started noticing that some considered the language to be an advanced language and therefore not suitable for novice programmers. New programmers are told that they should first learn an “easier” language and then move to Go. In my post, I argued that new developers might actually want to start with Go. I also wanted to make sure developers outside of the community don’t perceive the Go community as an elitist community only reserved to top computer scientists and engineers in big companies. Finally, I’m encouraging the community to create more documentation, posts and books for new programmers.

JAXenter: Why do you bet on Go? 

Matt Aimonetti: When I started my startup Splice three years ago, I knew that we needed a solid code foundation. I had to deal with bad early stage startup code so many times that I wanted my company to have to deal with a crazy amount of technical debt as we start getting good traction. At the time I was evaluating Clojure, Scala and Go, concurrency and high performance were critical so Ruby, Python and JavaScript were out. I wrote some Clojure professionally and I knew it wasn’t for me (while I love the concept of functional programming, I can’t seem to architect my code in a way that allows me to re-read/trace my code later on). Scala was very appealing but due to the lack of clear style guidance, the slow compilation and the fact that growing a team around such a flexible language seems challenging, I opted out. Go was much simpler to wrap your mind around, the compilation was really fast, deployment was straightforward, it was tested on very large teams and the community was very supportive (as well as well-organized and full of very experienced/smart people). I decided to take a bet on Go since it seemed like the best option at the time. I am very glad I did.

Go gives you less on purpose.

JAXenter: Some people claim that Go is too complicated. What is your take on that?

Matt Aimonetti: I think the term complicated is overloaded. As a mainstream programming language, Go is probably one of the simplest, the language specs are short, and the feature list is limited (on purpose). That said, it does include a couple of concepts such as pointers, channels and interfaces that you don’t have in a language like JavaScript. My experience teaching Go to new programmers has been that pointers aren’t an issue. Because Go doesn’t support pointer arithmetic, as long as they understand the difference between passing by value vs. passing by reference, they understand pointers. Channels are used for concurrency and can be greatly avoided when starting. Finally, interfaces aren’t very complicated but do take a bit of time to grasp. I do however agree that you need to learn some basic programming concepts and your first line of Go might take you a bit more time than your first line of JS in the browser. The difference is that you discover the complexity/limitations of JS or Ruby as you go and encounter surprises. Go has just a few surprises, once you get it, nothing will stop you. It does less magic for you, but that also means greater readability and less surprises/bugs.

Go isn’t a silver bullet and it might not be a good fit for you or your project.

JAXenter: Can Go help developers explore other programming languages?

Matt Aimonetti: I truly believe that Go is a great way to get started and get a solid foundation. This foundation will help you learn other languages like Java, C#, Ruby, Rust…

Go uses inferred types meaning that it’s way less verbose than Java but still teaches you how types work and why they are useful. At the same time, Go supports duck typing, object oriented and functional programming. But Go doesn’t have an interpreter like Ruby, it doesn’t allow for monkey patching, and is more opinionated on code styling than Ruby. While Go supports object-oriented programming, it doesn’t support inheritance. This is great because once a  Gopher starts exploring Java or C#, they can learn a richer OO approach and better appreciate pros/cons. Another thing is that Go doesn’t have generics (a very heated topic in the Go community), so once you are used to coding without generics and you switch to a new language which supports them, you have a good foundation and can focus on this new feature. In other words, Go gives you less on purpose and everything you learn coding Go is then closely related to the extra features you will get when you will learn another language.

JAXenter: Why should developers try Go?

Matt Aimonetti: Haha, now I feel like you’re asking me to sell Go to your readers. Go isn’t a silver bullet and it might not be a good fit for you or your project. But I think developers should be curious and when possible try new languages. Existing developers might be interested in a simpler approach to coding, or maybe they would want native concurrency support, better performance, low memory usage. Go is trying to answer the following question: “Can you do more with less?” and it seems to work quite well. If you are curious and want to take a peek at Go, I strongly suggest to give the official Go Tour a try, it’s free, online and lets you get a taste of the language.

Thank you very much!

Gabriela Motroc
Gabriela Motroc is editor of and JAX Magazine. Before working at S&S Media she studied International Communication Management at The Hague University of Applied Sciences.

comments powered by Disqus