Go is a decent industrial programming language alternative to Java, only things I'm not super enthused about is the logging experience (for the love of Christ, please create a standardised logging facade along the lines of slf4j, and allow the person running the application to set logging levels for individual loggers and choose whether stack-traces are emitted or not! Bonus points if I can change logging conf for a running app without restarting it) and libs that use C bindings, I have enough problems with that in Python already.
E.g., my manager is really interested in Dapr as a way to make basic Kafka usage easier for teams across our org.
Dapr's written in Go, and have made the reasonable decision to not use any libs that have C bindings for the same reason I don't like them.
However, this means that they can't use the Confluent Go Kafka client, as it's just a wrapper around librdkafka.
So they use Sarama, as it's written in pure Go, and is widely used, but is one of the most problematic Kafka clients I've had the misfortune to support. Although now that IBM has taken ownership of the project from Shopify, some of the more egregious bugs and oddities are finally being fixed.
But yeah, while you _can_ bind to C libs in Java, I've never encountered a library that did, so cross-platform lib compatibility wasn't something I ever had to worry about when working with Java.
E.g., my manager is really interested in Dapr as a way to make basic Kafka usage easier for teams across our org.
Dapr's written in Go, and have made the reasonable decision to not use any libs that have C bindings for the same reason I don't like them.
However, this means that they can't use the Confluent Go Kafka client, as it's just a wrapper around librdkafka.
So they use Sarama, as it's written in pure Go, and is widely used, but is one of the most problematic Kafka clients I've had the misfortune to support. Although now that IBM has taken ownership of the project from Shopify, some of the more egregious bugs and oddities are finally being fixed.
But yeah, while you _can_ bind to C libs in Java, I've never encountered a library that did, so cross-platform lib compatibility wasn't something I ever had to worry about when working with Java.