clojure-australia

bo 2015-09-07T21:13:37.000002Z

@lanzafame: I found this article on Go precisely summed up my own frustrations with Go's limitations: http://bravenewgeek.com/go-is-unapologetically-flawed-heres-why-we-use-it/ It manages to go over the drawbacks in reasonably balanced way and addresses it as a matter of tradeoffs.

bo 2015-09-07T21:13:55.000004Z

I too, would no longer use Go by choice in most contexts, though

lanzafame 2015-09-07T23:09:37.000005Z

@bo: Cheers. I have read that article before and I agree that it is a well balanced write up on the trade-offs. I guess for me the trade-offs are worth it for the project I am working on. Not saying I wouldn’t love generics, but I like goroutines and the different ways you can solve problems with them.

bo 2015-09-07T23:14:06.000006Z

sure; in my experience they are less of the golden bullet than advertised, but they're a step in the right direction

bo 2015-09-07T23:14:26.000007Z

at the end of the day the shared mutable state can still exist and so can deadlocks between goroutines

bo 2015-09-07T23:14:53.000008Z

no great model for single-write, multi-read chan messaging has also been a frustration of mine in the past

bo 2015-09-07T23:15:08.000009Z

makes it really hard to model kind of "pubsub" style communication between routines or clients

bo 2015-09-07T23:16:08.000010Z

at the end of the day, it's not the lack of generics itself, so much as the lack of good tools of abstraction in general. You can't participate in their slice or map abstraction at all, for instance. In practice I find most non-trivial Go code ends up using empty interfaces to completely bypass the type system because of its limitations.

lanzafame 2015-09-07T23:32:22.000011Z

Well I will see how I go. I will report back in a week or two as to whether I have had any major run-ins with the issues mentioned.

bo 2015-09-07T23:39:45.000012Z

@lanzafame: I'd definitely be interested in that!