News for hackers. Stuff that matters.
Re:Clear defensive programming with Go using Verifier library by supernovae on Thursday August 09, 2018 @10:46AM (#17724618)
Go was designed by dudes who live the Unix philosophy. It was designed to be like C, be lean and efficient and most importantly to be scalable on multi CPU architectures with some beautifully simple primitives that enable channels/routines.

Go is awesome for what it is.

Re:Clear defensive programming with Go using Verifier library by pcwalton on Thursday August 09, 2018 @11:58AM (#17725309)
Go's primitives are not really ideal for CPU parallelism. To make CPU parallelism nice you want things like parallel iteration constructs, which Go can't have because of lack of generics. Furthermore, any CPU parallelism work wants the best optimizer around and SIMD support to make best use of those cycles—otherwise it'd be better to just write in C++.

Goroutines and channels are best used as concurrency primitives, not parallelism tools.

Re:Clear defensive programming with Go using Verifier library by Groxx on Thursday August 09, 2018 @12:31PM (#17725674)
Just to +1 this: it aligns with very nearly all Go-core-team concurrency/parallelism stances I've seen. Go intends to support concurrency, not parallelism, and they go to great lengths to remind people that they're not the same thing.
Re:Clear defensive programming with Go using Verifier library by supernovae on Thursday August 09, 2018 @01:41PM (#17726490)
Who said anything about parallelism? Concurrency still works beautifully on multicore CPUs. I'm writing jobs that have lots of tasks, not jobs that parallelyze a single task...
Re:Clear defensive programming with Go using Verifier library by pcwalton on Thursday August 09, 2018 @02:07PM (#17726778)
Concurrency works just as beautifully on single-core CPUs. :)
Re:Clear defensive programming with Go using Verifier library by supernovae on Thursday August 09, 2018 @05:54PM (#17728892)
yup, it works great on both :)