4 ms·
> You and the post I'm responding to are saying slightly different things. I (GP) was actually saying exactly what kjeetgill was saying. I think you are misund
by de_nied 6y ago
> You and the post I'm responding to are saying slightly different things.
I (GP) was actually saying exactly what kjeetgill was saying. I think you are misunderstanding our points.
> They say "this seems to be geared towards beginners who are not intending to understand the underlying primitives"
What I said was that this library is geared towards people (not beginners, anyone) who do not understand and don't plan on learning the concepts that are extremely important and fundamental in the use of a language. You make good points with abstraction, but what I said was based on the context. The context is that we're talking about something (concurrency) that fundamental in knowing when using something else (C++).
As I stated in my original reply, "A concurrency library is useful to have to avoid boiler plate code...." I agree with you that libraries are good for abstraction for things we either repeat or already know. They are not good when used as substitutes for the lack of knowledge, when that knowledge is as foundational as concurrency is in C++.
> I also disagree with that premise. There are lots of hard things in programming. Concurrency is one of them, but so is memory management. There are footguns all over. It's possible to misuse most abstractions, and the reasoning could often be chalked up to "not understanding underlying primitives"
The actual variable we're using here to determine of what should be understood and what's not that important to be understood is how closely the two subject matters are related and (here it comes, my favorite word) fundamental to each other.
> I think the first post was saying something like "you should learn concurrency primitives; if you know concurrency primitives, then this library is overly pedantic."
I might be sounding like a broken record, but just to make sure I'm clear on what I meant. Use the library by all means, unless it's to avoid learning something fundamental (buzzword of the day folks).
- wrsh07 6y agoThanks for clarifying! I'm trying to push back against this notion that libraries are bad. That people should learn programming one specific way. I think this idea is often well-intentioned. For JavaScript, it has been "you don't need jquery" for a long time. And you probably don't need jquery, but I generally think you should feel free to use tools that help you accomplish your goals. I agree that learning concurrency primitives in c++ is useful and rewarding, but pedagogically I don't endorse any particular entry point to parallelism. That said, once you've found that you do need concurrency for your task, yes, absolutely learn the fundamentals. They're called fundamentals for a reason.