Feels cleaner to me, and while I want to argue about the opinionated payload bit, I suppose that's something that should be clearly defined in the contract anyway.
If you never do things alone, I suspect you don't read books anyway. So I'll just go ahead and ignore any advice from you about what books I should or shouldn't read...
Could it be that books are the technology that made being alone possible? Apart from monks, have people been alone before the invention of books? Without books, would people learn to stay by themselves and make it a habit?
People have spent a multitude of hours doing other activities alone as well--painting alone, looking at the stars alone, practicing dance alone, using the restroom alone...
No need to see everything in black and white. There are a lot of shades of gray. You're correct that humans work in groups, doing things alone is inefficient, harder and possibly dangerous.
But being alone and learning to deal with your own feelings and thoughts is a good way to mature and know oneself better. Also, there are a lot people that need time alone to recharge and regain energy that they spend socialising and interacting with people.
So there are benefits of being alone.
BTW: haven't read the book and do now know what exactly it is about.
This book is about learning how to entertain yourself alone during your free time, not mandating that you only recreate alone, much less disconnecting yourself from society altogether.
People without social connections die earlier statistically, but that can be explained by outside effects (e.g. if you do not live in a family structure, chances are you'll be found too late after suffering from a heart attack or stroke; less people around you means less immunisation for common diseases; no friends means a house fire may stress you out more and you becoming homeless ...). Calling that "most would be dying from no social connections" still seems a bit a far reach.
Also, the "we need to be around people at all times" seems to be less determined by genes, but by culture: people in other cultures and at other times seem to have been fine with extended periods of no human contact. Think the 'forest dwellers' in Hindu culture, or monastic hermits.
I wonder if the causation is reversed when people talk about living a shorter life with fewer social connections. If someone has mental health issues or substance abuse problems they're likely burning through their social connections and their health at the same time.
To prove humans need social connection, all you have to do is look at the heartbreaking (and thankfully rare) cases of children that grew up completely neglected and sequestered. As in, locked in a room with no attention for the first decade of their life. When they're discovered, they're not what you think of as human. They never developed language. They never developed the ability to form relationships. They know nothing about the world and have virtually never interacted with anyone. There is no amount of therapy that will ever turn these young people into functional humans and in the case I remember most vividly, they will never develop any real language or ability to communicate either.
Your argument is different from your explanation. You're speaking about complete isolation. Children need some socialization for them to adapt to the modern world. That's different than proving humans need social connections in the long term. Almost all people want some form of socialization, some less, some more. It's extremely rare a person would want complete isolation forever in perpetuity and I say that as a person who can only handle about an hour of socialization before I want to climb in a hole. What no one talks about is when too much socialization can impair growth.
But that's extreme. We don't go back to living in a cave and bashing each other's skulls in with rocks, just because that's where evolution took us. Our minds are above and beyond some aminoacids (or whatever) now.
while I'm pretty despondent with the replication crisis in psychology, medicine isn't much better.
but to dismiss it outright is pretty ignorant. curious how you explain the state of America if your assertion is psychology and mental health are "relatively useless" fields
We have done science here, made hypothesis and tested them. "Western medicine", including therapy and anti-depressants, have been shown to have real, significant, reproducible positive impacts.
It's also difficult to compare to "eastern techniques" since that's a fairly vague term. Perhaps drinking tea, meditating, and getting acupuncture has a more positive impact on one person than taking an anti-depressant, but for another person, anti-depressants may be wildly more effective. Perhaps arranging ones house and diet to maximize "positive chi energy" will help one person, but have no impact on another.
What eastern techniques are you specifically claiming are practical and useful, and for what scenarios? Are the studies that show anti-depressants to have effect wrong, or are they useless because they're inferior in your opinion?
Western methods are very inferior. They work - in the same way that roller blades work for transportation but you'd really rather have a car.
I've studied and used both.
I had the weirdest reaction to that last sentence.
As an engineer, the first thing that went through my head was "lots of photos of their faces available, easy filter. My face specifically: hard filter"
But as a person it was "ok wow, f_ck you too then?"
I've never had an issue with data race conditions in go. Can I ask what you did to lose faith?
The answer, for me, is always channels. What you put around the channels is the challenging part.
Channels are built to pass information between goroutines. If you are doing this via any other signaling, just don't. You can loop over channels for long running sequential reads, you can test them to see if they're ready to read or ready to write.
Honorable mention to context as well, extremely useful structure.
Even though I'm extremely careful, I'm sure I've done one or more of the anti-patterns they outline where the outcome is completely incorrect program behavior compared to my intentions as the architect of the program.
A good language wouldn't encourage or even compile with such nonsense.
---
Isn't it funny how Go offers channels but the stdlib never uses them at all?
About 80% of these problems can be covered with new linter rules. Go as a language already strongly depends on linter rules. I mean, there are a few must-haves already, and adding a few more won't make much difference. This isn't optimal, but it's not a deadly flaw of Go ecosystem.
Remaining 20% need solid test coverage (using -race). You are right, these absolutely need attention from Go language creators/architects. In their terms, these kinds of promises which shouldn't have been made for v1.0.
Hmm, the std lib uses channels for a variety of scheduling hook sorts of things - contexts, timers, os signals for example. That’s maybe just a little narrower than how Go users can use them - they aren’t really for transport, but for synchronization (just as useful for no or small payloads as large ones).
It doesn’t similarly expose mutexes that package clients have to fiddle with.
This opinion is just gross. Always do your required reading kids.
- nobody uses semi colons, that's a huge red flag because the tooling will literally remove these symbols from your code, did you even run any go code? clearly not
- goroutines are not threads and galloping past that obvious chasm is also telling: you're not really sure what these magical things are but, somehow, you know they're bad. this is a flawed line of reasoning that was never going to convince me
- because you don't know how goroutines and the userspace scheduler work, you skip over all the benefits they provide and thusly nurseries give me nothing than a hand holding experience less effective than the existing tools I have. Thank you for wasting my time because I was genuinely holding out for _any_ kind of empirical reasoning. My mistake.
- As proof of the author's research negligence: Not a single mention of channels. Not one. Homework was clearly not completed
I'm all for debating a language's efficacy and tradeoffs, but not when the opposing side has no idea how anything works. Then it's not a debate, it's just the ignorant proclaiming a need to interfere with others. Go away, please.
- Channels are woefully inefficient. I usually use the stdlib as a good reference for performant code, and I don’t see any use of channels in there.
- If you’re not using channels because they are slow, now you’re letting some nebulous “context” bleed into every function to handle closure and cancellation. This is basically provided implicitly by the nursery concept, but stapled on to every function in go because it was an afterthought, then google started using it, so it’s everywhere.
- The Unscoped nature of go routines does make the program more complex to reason about.
I think you read a different article, or read stuff into it that the author was not talking about.
This is about contrasting structured vs unstructured concurrency. The language, the threading model, how threads communicate and coordinate ... none of them are germane to the issue.
Wherever you have a fork without a join in the same scope, it is unstructured and gives rise to some concurrency issues.
Structured concurrency promotes composition, similar to ordinary function composition. For ordinary functions, the caller's control flow is logically blocked from proceeding until the callee is done. Similarly, in a structured concurrent setup, a function is logically blocked from proceeding until the tasks it spawned have finished and returned to the spawning scope. This makes it easier to reason sequentially. "finish doing a bunch of tasks, then do this, then do that" etc. The key word here is 'finish'. Not 'spawn a bunch of tasks in the background'. One can then reason about the effect of the function and all its nested tasks as a single unit.
This is not a go vs non-go debate. This is a structured concurrency discussion. Threads and goroutines are both forms of concurrency so they can be discussed together.
2. Inferring that the author doesn’t know what threads really are when they could just be using slightly different terminology than yourself (i.e. terminology where “threads” are not narrowly defined as “OS threads”)
3. Just based on the bad inferrence in (2) + complaining about they did not appreciate goroutines enough + complaining about “hand holding”
4. Proof that the author is incompetent: they didn’t even mention this one particular concurrency construct. Cherry-pick ergo preconceived conclusion
Unsolicited inferrence by myself: peeved that the author said that `go` was harmful—even though the author also said that this is a general problem—, and thus you needed to concoct some half-assed arguments in order to justify making a reply.
English Grammar is arbitrary and there is really no such thing as a "correct" form, only a formal one. Which is kind of elitist and disparaging imo.
Ain't is my favorite example. It was considered proper English until the lower class started using it [0]
I'm not against formal grammar but to grammar nazi everyday language is to be nothing more than an elitist pedant who presumes form to be more correct than function (which is only true in creative writing imo)
Someone should cancel Torvalds for building git on a blockchain. Clearly a scam!