That really depends on what you're trying to do. Presenting these two different declarations as somehow equivalent is very misleading and I'm glad that the author didn't do that.
6,770 karma · joined February 26, 2009
That really depends on what you're trying to do. Presenting these two different declarations as somehow equivalent is very misleading and I'm glad that the author didn't do that.
> Concepts, just like the SFINAE and constrexpr hacks you should discard in their favour, are about only what will compile and you, the C++ programmer, are always responsible for shouldering the burden of deciding whether that will do what you meant even if you have no insight into the types involved.
To be fair, that's not what makes them different from Rust. Unless there's something in Rust that I missed, it offers no guarantees that the implementation of the trait is consistent with its semantics.
Whether it's traits or concepts, it's still about compile-time type-checking, not actual contracts.
So now I'm more confused than when I initially read your comment. Do you mean "referential transparency" as in "expressions without side effects" or do you mean it in some other way that I don't understand yet?
Perhaps the solution is to not always aim for the narrowest possible fit. There are many people who would like an opportunity to learn new things and grow.
I understand that this thinking can't be applied to all positions. If, for example, you want to bring in someone new to your company and put them in charge of "everything Foo-related", then you need someone with suitable experience in Foo. However, too many companies tend to extend that too far down the ladder.
Yes, "what" comments are a source of additional developer effort and of possible inconsistencies between code and comments, but good API documentation is worth writing and maintaining.
No matter how well you name your method and its arguments, if it's part of the public API and you don't include a comprehensive documentation comment, I'll be forced to dig through your source.
Just out of curiosity: which aspect of those arguments do you object to, if any? I'm not trying to be confrontational, just trying to understand your point of view.
There was a time where monopolies were "how the world worked", until the society collectively decided that it's not how the world should work. If Google and Amazon aren't actual monopolies, then maybe we need a new name and a new set of rules.
Most people would never think of either pretending that the waterfall model is without problems, nor that it can never be successfully applied to any project. Why, then, is it not acceptable to admit that scrum does, indeed, have limitations that stem from the way it reduces the autonomy of the individual team members?
I'm not sure where "the right people on the right team" comes from -- it's certainly not in the agile manifesto -- but it's just the right grade of vague to be less than useful in practice. It's like saying that every problem can be solved in only two steps: 1) determine what you have to do, and 2) do it.
I don't see any reason for denying that scrum, in its most widely-practiced form, complicates or even discourages certain tasks and behaviors that can be beneficial under correct circumstances. It shouldn't be controversial.
I was merely framing the discussion in terms of what is written in the article, to illustrate what the problem with scrum (or capital-A agile in general) is.
You are now replying to my specific example, instead of my argument about the problems with scrum.
If you put it in context of the situation described in "You Don't Need Permission", doing the customer discovery cannot be justified except through buy-in from the CEO. If Suresh (from the story) has a daily standup with his CEO, then he can't do customer discovery because of the process.
When I buy stuff on Amazon, it's not because I want Amazon to recommend their pick. I want to compare alternatives and make my own choice. That's getting harder and harder, because there's a gazillion identical results with spammy, polluted product names, sold by a bajillion different-yet-indistinguishable sellers. And each one of those results has a nice, fancy-looking template, but when you start reading, it's full of spelling and grammar errors.
It's as frustrating as trying to have a "conversation" with a chat bot.
What's the solution? Beats me. A naive part of my brain is suggesting some kind of vetting process for sellers, or maybe a trust rating, but I'm sure there are tons of horrible problems with those ideas.
"Professional" and "expert" aren't synonyms. "Amateur" and "novice" aren't synonyms either.
An expert might be glad to go against a novice. But when there are artificial barriers separating "professionals" from "amateurs", barriers that have nothing to do with level of expertise, that's a different story.
Respectfully, I disagree. Things that you should learn over 7 years of experience go far beyond learning the language itself or the fundamentals of its standard library. We're talking about two very different ecosystems.
I've seen this described as "privilege of individuality", a privilege accorded to the majority and denied to the minority: https://twitter.com/michaelharriot/status/135278572082239488...
All the other examples I used -- chef, journalist, writer, singer -- can win awards and recognition: Michelin stars, Pulitzer, Hugo, Nebula, Grammy, and such. Those are good indicators of their accomplishments, but that's not the same as having a set of "agreed-upon norms and standards that can be measured".
And if you decide to relax your criteria and say that having those is acceptable, then guess what? There's a Nobel Memorial Prize in Economic Sciences, and a slew of other awards for economists.
Like it or not, studying economics is something that people can and do dedicate their lives to. Would it be better if we had more clarity, transparency, and consensus when it comes to what they do? Absolutely. But dismissing the whole profession out of hand is unhelpful.
But they didn't use it as an example of lockless programming, did they? They were explaining what "acquire" and "release" mean, and they wanted to explain it in terms the reader should already be familiar with.
In fact, they explicitly say it's not lockless:
In the previous paragraph we have seen how the acquire and release semantics of pthread_create() and pthread_join() allow the creator of a thread to exchange information with that thread and vice versa. We will now see how this kind of communication can happen in a lockless manner while threads run.If you allow everybody to review every PR, it doesn't imply that you'll allow everybody to approve every PR.