News for hackers. Stuff that matters.
Re:Learning a new language, or how I gained familiarity with Go by eikenberry on Wednesday August 17, 2022 @04:23PM (#32501246)
> [..] there are no new concepts in Go [..]

Except for native support for CSP and that programs should be written in a CSP style. Learning Go and skipping CSP is not learning Go.

Re:Learning a new language, or how I gained familiarity with Go by morelisp on Wednesday August 17, 2022 @04:35PM (#32501368)
> Learning Go and skipping CSP is not learning Go.

Learning Go seems to be inevitably "learning CSP", using way too much "CSP", then eventually coming to your senses and going back to atomic types and locks for probably 70% of cases.

Re:Learning a new language, or how I gained familiarity with Go by eikenberry on Wednesday August 17, 2022 @05:29PM (#32501960)
Thinking CSP is something you can replace with atomic types and locks is a common misconception. Goroutines and channels are the primitives used by CSP, but just using them is not CSP. CSP is a whole program design system that can use all the concurrency primitives. There is no conflict between the using CSP and locks/atomic types. They work well together as they have different uses.

The misconception is pretty widespread and cancerous to the community. Ignoring CSP is ignoring Go's best feature for writing better code. It takes some time to learn to do well (I'm still working on it) as it is a different paradigm than most people are used to, but it is well worth the effort IMO.