“Go is way less verbose than Java”
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 Booking.com, 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?
Go gives you less on purpose.
JAXenter: Some people claim that Go is too complicated. What is your take on that?
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!