Golang: channels are not enough
&gt; How to make it reusable? `&lt;-chan interface{}`? Welcome to the land of types casting and runtime panics. If you want to implement high level fan-in (merge) you’re losing type safety. The same (unfortunately) goes for all other patterns.<p>I can understand arguments for generics, but they&#x27;re complaining about trying to warm a whole pizza with a toaster. You need to put individual slices in, it doesn&#x27;t work like an oven. Cook it with an oven if you want, but don&#x27;t try to make it out like the toaster is offensive and useless.<p>Yes, you might need to re-implement these patterns each time with separate types (slice up the pizza), but it&#x27;s not really a lot of work for the extra speed and crunchy pizza it gives you.<p>I&#x27;m pretty tired of the frequency of these articles where someone takes a concept from a language, tries to force it into a different language with little care for its idioms and then complains that it doesn&#x27;t work.<p>Maybe I like digging holes with a trowel, maybe I like the precision it gives me, maybe I&#x27;ve worked out a way to with a little extra effort accomplish the same work. If you work with a spade and a bucket all the time don&#x27;t complain that you can&#x27;t throw a trowel around like a spade.