Readit News logoReadit News
quietbritishjim · 4 years ago
It's great to hear that the author got a diagnosis for their condition (I hope that "condition" is not too unsuitable a word). I'm not very familiar with such things, but I can imagine that could be an important first step to understand and mitigate it.

But it seems to me that they're still some way off from understanding their condition. They characterise it as having "extremely high standards" or not being able to tolerate things that are "wrong or incorrect" as well as others. But, from the rest of the post, it sounds like the real issue is something else: where there are genuine engineering trade offs to be made, they get fixated on a single aspect at the expense of any others. When a decision has two or more dimensions to it (e.g. syntax cleanliness vs backwards compatibility, or language flexibility vs simplicity), then someone fixated on a single dimension is always going to be unsatisfied by the decision of someone who tries to make a careful balance.

One result of this is that their language to describe their situation continues to problematic. If you disagree with someone, then it's fair to say "sorry, I disagree, I guess aspect X is more important to me whereas aspect Y seems more important to you". But it's unhelpful to say "sorry, I guess I just have trouble tolerating how wrong you are".

Brian_K_White · 4 years ago
"sorry, I guess I just have trouble tolerating how wrong you are"

this

I read the piece and it turned me from "I know nothing and have no opinion, other than I do not agree with the very premise of C++, and so walking in the door I'm predisposed to agree with anyone saying they're leaving C++"

to "I have a fairly strong suspicion that you probably earned the disregard you're complaining about, on both interpersonal and technical grounds."

mgaunard · 4 years ago
Most good programmers have OCPD.

I think the more serious problem with that person is the lack of awareness of their own narcissism.

dragonwriter · 4 years ago
> Most good programmers have OCPD.

No, they don't. Attention to detail isn't OCPD.

diamondo25 · 4 years ago
Isn't this exactly like that "god complex vs imposter syndrome rollercoaster" meme? First you think you know nothing, then you feel like the best of knowing something, but then another thing happens that you know nothing of, etc.

I don't think this should be straight up attributed to narcissism. Just "doing your very, very best to get things perfect" is not a trait of a narcissist. Better yet, they usually say they are, but have 0.0 credibility of doing that, and will try to disprove any hint that would, basically, hurt their ego or image.

oxnrtr · 4 years ago
Do you really think your incredibly arrogant and condescending comment adds anything to the debate?

I encourage you to try and consider the author's points instead of simply attacking her character.

I'll be there if you need help with that.

its_bbq · 4 years ago
I met Izzy a few times at cppcon and always came away impressed. I have basically the same thoughts about the c++ community -- it burns people out and it's filled with a ton of negativity and ego and it's very hard to get anything done. While I was at Google I spent some time trying to push for some sort of codes of conduct after a colleague of mine had a reasonable proposal ripped to shreds in email groups with all sorts of inappropriate sexist and personal attacks. I got absolutely nowhere.

Don't get me wrong, there are many good people there pushing for positive change but the amount of inertia in that scene is just staggering.

I'm glad you got out and decided to do something more meaningful with your talent, Izzy

naxcl · 4 years ago
You do not need a code of conduct for complaining about a sexist remark inside a corporation. CoCs ruin projects, create a stifled atmosphere of hate and distrust and it is always the wrong people who obtain power.

Persons who are vocally against CoCs can very well be on your side regarding sexist remarks. Personal attacks are difficult to quantify. Often they are a last resort for shutting up someone who thinks they should dictate everything in a code base, even if it is outside their area of expertise.

Perhaps Google's C++ code base is too mission critical to let it be ruined?

Jasper_ · 4 years ago
I've seen reports of sexism get ignored and go unhandled (usually because "they're such a good contributor, we can't afford to lose them"), leading to a slow death as people stop contributing. The goal here is to make it so that there's an established set of standards, and a procedure to follow in case they get violated.

If implemented correctly, policies for this should not make matters worse, it should just let these projects be able to draw clearer lines towards acceptable behavior and build trust that these issues can and will be handled.

magicalist · 4 years ago
Eh. Call it "guidelines" and people write dang fanmail. Call it a "code of conduct" and some people lose their minds.
chrsig · 4 years ago
I'll bite...Do you have any citations for projects that have been ruined by a CoC? (Where ruined means something beyond "A CoC exists")

Deleted Comment

its_bbq · 4 years ago
I should say I meant I found sexism outside of Google in the c++ community at large. Within Google everyone is very respectful
mistrial9 · 4 years ago
thank you for this blunt assessment ; agree
digitalsin · 4 years ago
Absolutely spot on.
zerr · 4 years ago
C++ is so pervasive and ubiquitous that there is no "C++ community" per se. It just reflects the whole world.
notriddle · 4 years ago
Call it the “C++ standards community,” then, because that’s where you go to get things like `offsetof` into the actual language, and it definitely doesn’t reflect the whole world any more than the JavaScript standards community does. Both of them are focused on moving the language as a whole forward, while most developers just want to use the thing.
synergy20 · 4 years ago
my experience is that c++ community is very helpful, community is a small part of the real world, there are friendly and "bad" people, ask politely and to the point, help while you can, ignore some rants once a while...
will4274 · 4 years ago
> email groups with all sorts of inappropriate sexist and personal attacks.

Do you have a link to the mails / mail archives? I guess I don't typically see that conduct from the C++ community - be interesting to see what I'm not noticing.

bluGill · 4 years ago
>inappropriate sexist

If this was internal Google communication as it sounds then you should go to HR about sexist communication, if that doesn't get results then go to the victim and encourage a lawsuit against the company

ncmncm · 4 years ago
Hint: HR is not your friend.

HR's primary job, overriding all its other jobs, is to spy on you on behalf of corporate. Second is to save the company money on lawsuit payouts.

The only saving grace is that, sometimes, a low-level HR functionary has not got the memo that this is their primary job, and might actually do something helpful.

The primary job of the Director of HR, an the other hand, is always simple corruption, graft, kickbacks, as much of it as they can manage to keep track of. It does no good to try to hire one who won't; they didn't get into HR not to. So, if you think your HR director seems not to, it just means they are playing a deeper game, one probably more harmful to you and the company.

pyjarrett · 4 years ago
> So what is out there for me, if not C++ or Rust?

Ada.

I write C++ professionally and used Rust for about a year, but don't use it anymore. In many ways, Ada feels like a much simpler implementation of the C++ feature set. The language lets you focus on intent, while still having a lot of control.

Yes, Ada's still alive and kicking, it has a package manager, documentation generator, parsing/semantic analysis library, and a language server. There's been a *massive* modernization push over the last year of the ecosystem. If you download Alire, you can install the FSF GNAT toolchain and get set up super easily. Some of the older parts of the GNAT tools are showing there age, but they're already there and the ecosystem is significantly better than you'd expect.

Regarding multi-platform support, I routinely swap between Linux and Windows testing things out.

> A lack of default arguments, a lack of basic arity overloading, a lack of variadic generics,

Ada features are opt-in, and you use what you want. It has default arguments, arity overloading, and destructors when needed (with Controlled types). Interfacing with C is super easy, as is bringing in compiler intrinsics. Generics (compile-time templates) are a little weird because you can instantiate an entire package (namespace) with types/functions. They can also take other packages as parameters or you can just write a singular generic function. However, it's missing compile-time ops, variadic generics, and move semantics.

- https://learn.adacore.com/

- https://alire.ada.dev/

- https://pyjarrett.github.io/programming-with-ada/comparison....

- https://www.adaic.org/advantages/ada-202x/

bluGill · 4 years ago
It became clear that the author isn't willing to consider anything that isn't 100% perfect in every way anymore. One tool needs some work - your whole language is out.

Ada is on my list of languages to learn something about (more than the 12 languages in 10 weeks class I took back when I got my degree which is the only time I touched it). It has some interesting features (particularly the SPARK variant)

Shorel · 4 years ago
But we do. The value I get from this kind of articles, and I did read the article, is actually in the comments here.

Adding ADA to this language feature comparison is interesting to me.

masklinn · 4 years ago
> It became clear that the author isn't willing to consider anything that isn't 100% perfect in every way anymore.

Not "perfect", "their way". Things like variadic generics or arity overloading are not about perfection (there are excellent reasons not to have them).

And it's fine to want things and not be willing to compromise — which is what OP did, incidentally.

But it has nothing to do with "perfection", and your take is very much unhelpful and inflamatory.

Quekid5 · 4 years ago
(Veering a bit off-topic, forgive me.)

Is there any non-proprietary Ada/SPARK implementation? I've heard some good things about Ada/SPARK, but DDG hasn't been much help in finding out if there's any non-proprietary implementation of SPARK of decent quality.

pyjarrett · 4 years ago
> Is there any non-proprietary Ada/SPARK implementation?

Yes, it's now available as part of GNAT. The integration in GNAT Studio is good and lets you prove a single line or entire file in the IDE.

I mostly write Ada for my projects and have only dabbled in SPARK. It's super interesting, but also ridiculously hard. I don't have any formal training in this, but to me, I found it at least as on par with C++ template metaprogramming in terms of difficulty.

linuxlizard · 4 years ago
I wrote a toy Ada compiler for my master's thesis. It's a very fun language. I miss using it. I was attracted to Python because of exception handling which I learned from Ada.
lenkite · 4 years ago
Does Ada compile for mobile platforms (Android/iOS/etc) ? Does Ada support lambdas ? (can't find this)
pyjarrett · 4 years ago
See https://blog.adacore.com/android-application-with-ada-and-we...

> Does Ada support lambdas ?

No, but you can declare functions inside functions and also use function pointers. When I started using Ada I thought this was a huge issue, but I haven't run into problems with it in practice.

dm270 · 4 years ago
Throwaway. Having worked in the same company as the author I have to say that I highly respect their work for the c++ language, the continuous effort it takes bringing those abstract concepts into the standard, many not understanding them easily but eventually benefiting from them as an end user. As a distant colleague it was hard to judge their influence on the codebase though. They do have a reputation in the c++ community but it always felt like I didn't see their footprint in our system (as in meaningful PRs) and that they had very strange working hours, strong opinions and preferred working on unrelated semi-personal projects. I wonder if there was any language and community they'd feel comfortable in.
ezekiel68 · 4 years ago
Back when there was an in-person conference named "SD West" (usually held in San Jose or Santa Clara, California), I used to attend occasionally. I met Bjarne there on multiple occasions, including one time in a hallway between sessions. We talked like people do. I believe I asked him what he though of Qt as a cross-platform C++ GUI solution (this would have been around 2005). He gave me his honest opinion and we discussed one or two other subjects and then went to our separate sessions. He's just a regular guy who is (or, at least, was ) very approachable in such a context. BTW, I'm not "anybody" in those circles. Just another software engineer among many.
amelius · 4 years ago
> I discovered that I not only have OCD but OCPD, a personality disorder. If you’ve ever had a conversation with me where I just couldn’t let something go because it was wrong or incorrect and it bothered me, now you know why.

Sounds like about half of the people on internet fora.

phaedrus · 4 years ago
The author of the article also sounds like the sort of individual or clique who derail Stack Overflow posts because they feel the premise of the question is wrong (leaving both the original asker and any later reader with their actual problem still unsolved).
junon · 4 years ago
Imagine for a moment what SO's signal:noise ratio would look like if people didn't set some sort of bar for quality?
loceng · 4 years ago
It also sounds like it could simply be the perfectionist subpersonality trait getting stuck in, becoming dominant vs. personality which should consist of being able to flow into different subpersonalities as/when they're useful; I wonder how they, if they try to differentiate between determining what it is.
yholio · 4 years ago
Luckily, now we have an alfabet soup of conditions that can cover any obtuseness, quirkiness and non-conformity of your personality. People are no longer told "your are so and so, try to not be that way any more", people now "have" conditions and, while drug treatments usually exists, it requires a lot of compassion from the rest of us.
thomasfedb · 4 years ago
Personality disorders are generally not able to be effectively treated with medications. That's not to say that doctors don't ever try, but there's very limited evidence to support it.
Matthias247 · 4 years ago
I won't comment on the rest of the blog post, but I can fully relate to this point:

> Despite using golang, working with the absolute impenetrable monster that is kubernetes, taking on a helpdesk like on-call experience for one week at a time tending to configuration files over code, and not touching C++ at all, I feel more rewarded in my work than I ever did writing any amount of C++ in my entire life.

I actually experienced the same in the last couple of years. Doing ops work, and sometimes really tiny code changes which still help to improve a product and get recognized by people can feel really rewarding. Standardization work or any kind programming language / library development sometimes not that much (and that is independent of C++).

I think the reason for this is that in ops/support/etc environment one is working towards a known goal, which is well understood by people (peers, customers). If the goal has been reached everyone is happy, and one will likely get positive feedback. And even on the road towards the goal people will understand why it's important to get something done and help to get to the goal. E.g. code changes might not have to be perfect in order to get merged, and there might not be an extreme amount of bikeshedding.

Working on fundamentals can be different: In a setting like a standard library working group often a variety of people come together which do not share the same goal, and where goals are also not necessarily "customer driven". Instead of that, people more often have their personal goals they want to achieve, and they have their own set of motivations for it. This makes it harder to get buy-in from others. Goals are also not that quantifieable (like "fix a crash" or "improve latency by 10ms"), which makes it additionally harder to argument why something is important or less important.

codr7 · 4 years ago
I used to feel mostly the same about all programming languages out there, all I could see was flaws. Then I started designing my own languages and was forced to admit that flaws are inevitable, and every time you start over again trying to fix them new ones emerge as a consequence of the changes. Better to appreciate the strengths of each language.

The same mindset can be applied to anything including other people; no one is perfect, better to appreciate the aspects you like. That doesn't mean allowing others to treat you badly, just not focusing on imperfections.

And once you do, magic happens, because you will automatically stop focusing on your own imperfections as well which is a much nicer way to live. That doesn't mean stop improving, just not beating yourself up for being what you are.