I've been doing Java since 2008, and I just needed a list of reasons why would someone like me try and use Go as another language. I've been working with Android for the time being i have left enterprise java. In this sense I knew Go might be something similar in terms of platform capabilities with Java?
I'll try to give you one compelling reason to consider Go. Numerous folks have rewritten applications from Java to Go. In doing so the new applications have a radically reduced resource footprint. AeroFS is one example, that comes to mind, where they published some details. You can read about it on their blog.
Here's a little teaser quote...
Resident memory usage dropped from 87MB down to a mere 3MB, a 29x reduction!
The resulting docker image shrunk from 668MB to 4.3MB, a 155x reduction!
Go applications tend to be high performance while using less resources than the comparable Java apps.
Wow, quite nice to be honest. I think I better need to investigate If Go can really be used/replaced some of Java's platform or offerings right now.
For the mobile part, yes Java is the language behind Android, but if there would be a Mobile OS that can utilise Go then that would be a plus for the Go language .
Maybe Go needs some resources for newbies like me to check out and start developing out( I'd probably haven't checked if there are any), maybe you could list out some of the best things out there here.
I always like to read things from scratch , not soft copy but the hard one I'd probably check on this one.
We have been building out "microservices" at our company using Golang. It's really nice to see each service using only 3MB each. There is a lot of money to be saved here if you're paying for memory usage, and you have a number of services. (Most cloud hosting incorporates memory usage into the pricing models.)
One thing I really enjoy about Golang is the error handling. IMHO, I think it lends itself more to better error handling than Java's checked and unchecked exceptions. You write a lot of code, but in the end it's easier to reason about your application in regards to error handling.