- Go runtime analysis is as good a Java but 10x easier to use, and it uses way less resources than your Java equivalent ( JavaMissionControl, JMX, JVisualStudio, thread dump, Java Flight Recorder ect ... ) Have you tried to leave JFR on when running in production? I can run pprof / tracing with 0 problems, no corruptions of dump or hit on performance.
- NewRelic instruments code using an SDK you have to integrate into your code, there is nothing magic, NR has also the same SDK for Go: https://newrelic.com/golang
- For the generics / package it's on the way to be fixed.
For C# I agree. I think people don't realize how many companies are actually using Go on large project even outside of k8s / cloud world.
I hope they introduce it only if it keeps the language as simple as it is today even if it means generics will not be as powerful as other languages. I mean we have a ton of languages and Go is a unique one. If a project or team really needs generics, they can always use Java, Rust or something dynamic like Python or JS. I don't see much point in turning Go into another Rust or Java. Not that Rust or Java are wrong but with Go being so simple, we have all sorts of options. If it turns into another beast of a language just to solve what other language already have then we lose the simple and fast Go we all like.
Yes. I have indeed tried leaving JFR on in production. For many years. We even used to take chunks from the repo continuously (even though not supported). We solved 95% of our production problems with only the JFR data (with some contextual data recorded), rarely having to ask for other pieces of data or run special builds with additional one-off instrumentation. JFR is not only a production time profiler; but it is pretty awesome at that too...
NewRelic installs itself as a Java agent, doesn't need any code integration it's just a command line param on app startup. That's one advantage of java, you can redefine classes at runtime. NewRelic uses Java Agent API to instrument code at runtime, no SDK or special build needed
- Go runtime analysis is as good a Java but 10x easier to use, and it uses way less resources than your Java equivalent ( JavaMissionControl, JMX, JVisualStudio, thread dump, Java Flight Recorder ect ... ) Have you tried to leave JFR on when running in production? I can run pprof / tracing with 0 problems, no corruptions of dump or hit on performance.
- NewRelic instruments code using an SDK you have to integrate into your code, there is nothing magic, NR has also the same SDK for Go: https://newrelic.com/golang
- For the generics / package it's on the way to be fixed.
For C# I agree. I think people don't realize how many companies are actually using Go on large project even outside of k8s / cloud world.