5 ms·
> Backed by major corporation I don't think Go success has anything to do with Google. Google engineers probably favors Java/Python. I think the key thing to
by kureikain 8y ago
> Backed by major corporation
I don't think Go success has anything to do with Google. Google engineers probably favors Java/Python.
I think the key thing to make Go adopt is because the Docker project and Hashi Corp.
The second most important thing is it is super easy to compile Go program and run it and adopt by DevOps teams
- TheDong 8y agoYou're welcome to your opinion. Anecdotally, I've heard from many people that Go only took off in China because chinese programmers like google and it was sold as a language by google. > Google engineers probably favors Java/Python That's irrelevant. The fact of the matter is that Go has a company backing it and providing a constant stream of well-paid developers and infrastructure. Most small languages can barely afford to have two poorly-paid fulltime developers. I doubt go would exist if there weren't several people getting paid very large quantities of money working on it.
- kureikain 8y agoLet's look at it from different angle. When first release, AWS Lambda or even Google Cloud FUnction didn't support Go. NodeJS always get there. Python is there always. So the point of big company backing it doesn't add much value. Even Google didn't support Go for their Google Cloud Function.
- tmerr 8y agoEh? I can't speak for all of Google but I like me some Go. It has a culture of minimalism both in language and code, which makes it easy to pick up and read others' work. I wouldn't recommend it for all problems, but it's at least nice for backend services. Java is a victim of its own success: it has lived through style evolutions which have lead to fragmentation in the ecosystem. Some code uses mutable datastructures with for loops, others immutable datastructures with the stream API. Some code uses dependency injection, while some doesn't. As a result it takes more time to mentally calibrate to the style when pulling up a .java file. Another imperfection: GC pauses can cause request timeouts and are annoying to debug. Python's not perfect either: aside from the obvious performance issues, use of the awkward retrofitted type system makes me wonder why a statically typed language isn't being used to begin with. The lack of good static analysis is especially annoying at Google where the tooling is quite good. Just my 2c
- apta 8y ago> it has lived through style evolutions The same can be said for C++, C#, etc. that have been around for a long enough time. Golang is relatively speaking still new. Look back at this again if golang adds generics and other features that will change how code in it is written. > Another imperfection: GC pauses can cause request timeouts and are annoying to debug. That's not an issue with Java, but how the GC is tuned. Golang provides only 1 gc that is tuned for latency. And even that is not hard real time. The JVM has several GCs you can choose from, including latency optimized ones.
- tmerr 8y ago>Look back at this again if golang adds generics and other features that will change how code in it is written. Absolutely. I was surprised by the number of proposed changes in Go 2, especially regarding error handling. Curious whether old code will be migrated or left behind. >That's not an issue with Java, but how the GC is tuned Good point, I haven't done much GC tweaking personally but that sounds worth learning more about. However I think language might have something to do with it: In Java almost everything is a referenceable object, while in Go one can put values directly inside structs. So Go has less work to do. Without that advantage I doubt it would seem competitive with Java GCs.
- apta 8y agoJava will be getting value types in an upcoming version. C# already has value types (called structs). The JVM also does escape analysis to avoid heap allocation when it can.