We have a person on our C++ dev team who is an ANSI C zealot and refuses to write anything that wouldn't compile under...

We have a person on our C++ dev team who is an ANSI C zealot and refuses to write anything that wouldn't compile under -std=c90 -pedantic-error.

It's actually getting difficult to integrate his changes to the codebase because his style of programming is much more terse and difficult to read, it clashes with the rest of the team, sometimes he'll even write get/set wrappers around classes in C++ and extern "C" them just so they'll work in C. He puts them in files named "wrapper.cc".

He refuses to listen and the project manager doesn't want to hear it because they don't care about "technical debt".
How do we sabotage his efforts at avoiding C++ so he can finally cooperate with the rest of the team?

Other urls found in this thread:

youtube.com/watch?v=QM1iUe6IofM
bofh.bjash.com/
yosefk.com/c fqa/defective.html
twitter.com/AnonBabble

He's right.

This. If he's been able to do these great works and avoid the chopping block thus far in a corporate environment, you should bow to him.

Why can't you just fire him or push him to another team? Working on a team means making sacrifices towards teamwork, and coding in manner that makes it hard to work with the rest of team is pretty counterproductive.

>How do we sabotage his efforts at avoiding C++ so he can finally cooperate with the rest of the team?

Make your codebase completely incompatible with C.

Sounds like he's better than you and you should conform to him instead

>his style of programming is much more terse and difficult to read
Become smarter and it will be less difficult.

>I can't keep up with the smart guy so how do I sink him down to my plebian ways of thinking

He needs to understand it's not his project, so he'll need to follow the correct guidelines or his PRs won't be accepted.
If he gets his own project he can use his own styling.

Some 21yo fresh out of a coding camp is butt flustered that a 40yo that has been coding in c for longer than xe has been alive refuses to use react.js and instead prefers to work in c.

What a hero.
Get fucked, sepplesfags.

Give me one good reason why anyone should ever write C++ over C?
Templates and classes as a complement to C style programs seems appealing, but idiomatic C++ is absolutely disgusting.
I even saw a bisqwit video where he tries to claim that C++ has no cost abstractions, yet his C example is written the idiomatic C++ way, with for (int i = list_start(&a); i < list_end(&a); i += list_next(&a))
So basically you call 3 functions to verify unchanging values for every iteration of a for loop, disgusting.

C++ has greater scalability.

Wrong. C is just as scalable if you are competent. C++ just allows for incompetent programmers to achieve some of the same feats.

>not programming in machine code
spotted the brainlet

he probably browses Sup Forums and makes angry posts about rust SJWS

>DERRRRR WRITING CODE THAT'S MORE LIKELY TO INTRODUCE BUGS AND IS HARDER TO MAINTAIN MEANS YOU'RE SMARTER HAHAHA XDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
this meme needs to die

The reason Rust is being pushed so hard is because social justice warriors have found great difficulty penetrating the communities of open source system coders who use C and/or C++.

The "safety" features give advantages to lobotomised Feminist studies "coders" who are trying to "disrupt" these communities while breaking the knee caps of everyone else who knows what they are doing.

Literally nothing in Rust actually solves problems that haven't already been solved by RAII in C++ and even some GC/stack/heap techniques in the arguably superior but slower D compiler.

The advocates are all social justice warriors and this is their "long march through the development communities". They are employing critical theory against their main targets C and C++, by criticising everything it is and does and demonising its users. They've held back their "cis het white male" jargonism for now, but once they have established a foot hold "killer app", expect them to go wild with it. Just read through the big throbbing CoC they've erected on their main website.

Rust is kill. Don't touch it, spit on all its advocates.

is this pasta?

As soon as you git gut

Yes, but it's true

continue to write your shitty vulnerable C code, I will continue fuzzing it for vulnerabilities :^)

remember that memory safety is a concept made up by SJWs and therefore bad

Don't worry, I'll continue fizzbuzzing your shitty Rust code while raising awareness of SJW shit, because that's the only thing anybody ever does with it.

Remember that a language is only as good as the people who use it.

>Remember that a language is only as good as the people who use it.
t. openssl developer

>that shitty code
A sane person would use iterators

Objects were a mistake

>saved in meme archive
thanks user-kun :3

>yet his C example is written the idiomatic C++ way
that's not idiomatic C++, use iterators

>So basically you call 3 functions to verify unchanging values for every iteration of a for loop
start and end are almost certainly compiled inline as constants

Constants must be computable at compile time.

youtube.com/watch?v=QM1iUe6IofM

more like the c guy is too dumb to write c++

That's why companies have code guidelines, user. If someone doesn't follow them, they get fired.

Yeah about that...

Some comm hardware company we had to integrate with kept having the buggiest firmware issues that were holding the whole project up. I offered to help them out and signed an NDA to have a look at the C++ code their PhD engineer had written. Motherfucker was putting function calls on the stack 20-30 levels deep that all instantiated some inherited class or another, all to create a monster state machine that was impossible to debug without printing out a flow chart on 6 sheets of A3. Ended up scrapping the whole state machine and rewriting it in C with three functions and some lengthy, but easily digestible, switch statements. Months of frustration could have been avoided by not teaching "theory" programmers C++, it's just too damn easy for novices to make a cluster fuck of it. Sure, he could have gotten into some trouble with C, but it would have been a lot easier to unclusterfuck.

The moral to the story is that C++ isn't for smart people, it's for people who've already mastered C and really know when all the extra bells and whistles are justified.

> the project manager doesn't want to hear it because they don't care about "technical debt".
Go above your bosses head and get him fucking fired you retard

This is why small companies, and companies that are otherwise big but their core business is not software should just not do software.

If you want to start a discussion with the team at large about what the right programming language to use is, that's fine, but not working with the team like this is retarded and he should be fired.

The fact that your PM doesn't know or care about technical debt is a classic sign of a shitty small company that will eventually outsource your job because they clearly do not care about code quality or maintainability, they just want something that is barely passable right now.

Fire him.
Team integration >>>> Technical "rigor"

Fire him for being too retarded to write C++. What a gay autistic baby.

Start writing ANSI C like him.

This video is a pretty good argument. I've always thought encapsulation was ass and this just gave me a massive confirmation bias boner.

technical debt is a meme, along with all those numale coder buzzwords like "code smell" "test coverage", and "idiomatic".
OP probably thinks of himself as one of those "code artisans" who sips coffee and takatakas away on his keyboard and gets paid big bucks to glue other people's libraries together, and the ANSI C guy simply intimidates him.

>technical debt, smelly code and testing is a meme

What are you smoking? Get some standards.

Sure technical debt and testing do not make a lot of sense for small programs. But if you are going to be programming on the same thing for more than a year you make sure you are doing it right.

People like you are the reason why all programs have so many bugs, but instead of fixing them they add new features.
You cannot guarantee a working program when it has spaghetti code all over it.

>std=c90
I list C99 and C11 variable declaration and scoping inside for loops, etc
for (int i = 0; i < 10; i++) {
/* do stuff */
}

Older C code feels clumsy and bloated without it

I just reuse iterators throughout the function.
Don't be so wasteful.

Sup Forums's C zealots in a nutshell
>I hate sepples so much even though I'm a sepples developer, I'm just going to write C wrappers everywhere to fuck with my teammates and make this codebase unmaintainable

He's doing it right you moron. C++ APIs are absolutely useless outside of C++ and the ABI issues are even worse. It's much better to wrap all your C++ code in a clean C API anybody can interface with.

Hope that guy quits working with you faggots. There are better jobs out there.

OP never said anything about API/ABI though

External C wrappers are fine, cluterring up the intenals of your program because you're too autistic to just write C-style code in C++ is pure spaghetti code.

Sounds like the guy wrapped up the part the code he had to interface with in a C API and then wrote code targeting that API. Yeah, it essentially creates a barrier between you and the rest of the team. That's the whole point. Honestly, it's much better to abstract away all the C++ crap you don't need. Ever tried to embed V8 in an program? There's a reason Lua is the best embedded programming language. It's written in C and ridiculously small and self-contained. It's easy to work with.

>How do we sabotage his efforts at avoiding C++ so he can finally cooperate with the rest of the team?
Start using variadic templates and features from C++14 that are incompatible with C99.

>So basically you call 3 functions to verify unchanging values for every iteration of a for loop, disgusting.
Given list_start is a const method in all likelihood and list_next is a const method on its calling class, list_end also being a const method means that all these "functions" are inlined or constant.

>digging yourself into an even deeper compiler complexity hole

Trips and saved.

Do you have any actual evidence of Rust's feminism, or is it because it has one of those silly code of conducts GitHub people pressured them into adopting?

>muh bug free code

Yours is just a buggy fag. I guarantee it. I don't care what panacea language you claim to use.

What is this bullcrap? C++ doesn't scale well at all. Compilers have issues optimising very simple shit. There's no way C++ is more scalable with all the garbage you throw in there that's hard to optimize.

>actual evidence
Just look at their parent company Mozilla.

>feminism
You don't get it do you? It's not about that. That's an "inter-sectional issue". Just look how much artificial support the project is getting.

>Terse code introduces more bugs than Enterprise[TM] "Strategy"-"Interface" bullshit.

>scalability

Wow programming really has become a buzzword hell.

>terse and difficult to read
Yeah. OK. That has nothing to do with C or his compiler flag preferences.
>technical debt
No, first of all technical debt is about writing code that's hard to reuse (which you haven't spoken about, what's the interface problems?). Secondly that's what you guys are doing. You're using features that a team member deems inappropriate making it harder for him to work. You should communicate on what's actually problematic.
You're just making up excuses for why he's problematic because you are in fact the C++ zealot. Not him. What's the problem with him wrapping classes (for free, given there's link time optimization now)? Nothing. His terse style isn't related to his language preference at all. If the team is really having trouble with it explain that to him.
>how do we sabotage his efforts
See? Do you really think he's the zealot if you're planning to sabotage a team member instead of talking about it? You're not even addressing the problem. If he moved to C++ why would he be less terse? Nothing in C++ forces you to write less terse code. I'd say it's the opposite. Plenty of C++ features enable all kinds of crazy contacts that make for very terse code but more often than not harder to understand.

Who cares about Mozilla and how much support Rust has?

>You don't get it do you? It's not about that.

It's about what then?

>contracts
Constructs.

Find his car and key "Code in C++ or else" on it.

>Join C++ dev team
>Refuse to use C++
>Everyone else is the problem

Maybe the interview should have had him not join of this was such a problem. I don't see how it's his fault at all unless he lied at the interview.
Regardless you're not addressing the argument. Much like how you're not addressing the problem you're facing.

I'd probably do shit just to spite you given how bigoted you are.

>keying other people's cars

There are limits for everything

That's what you get for coding in C in a fucking C++ project. He could at the very least just use C++ as C with constructors and namespaces like a sane person.

I don't care about your autistic ramblings. You don't join a C++ team and refuse to write C++. OP has stated that he refuses to listen to the rest of the team's complaints. That means he is the problem.

I'd shoot you dead, dissolve your body with acid and force your whore mother to take your remains back into her body.

You fucking subhuman.

Note to self: Key all C developers' cars

>working with code monkeys
>not being this badass engineer

bofh.bjash.com/

How is that wasteful? Seems like an easy thing to optimize by the compiler.

>It's much better to wrap all your C++ code in a clean C API anybody can interface with.
Inherently object oriented APIs are fucking awful in C. Look at gtk for fucks sake.

Nobody said it had to be object-oriented, even if the implementation is.

Look at ICU.

>ANSI C zealots
I like them, but really just tell him to fuck off. The project should conform to the standards set by the team and management, not to his personal favorites. Just set the fucking rules for the project and don't let anything in the codebase that doesn't conform to these rules.

t. someone who hates angular but has to deal with it because decisions decisions

I have a guy like this in my team, he's a kernel contributor and all that stuff. Fortunately, I was able to gradually show him the joy of C++, so now he's pretty comfortable with TMP, lambdas and stuff.

Templates and lambdas are delicious, I don't know why a C fanboy who loves unsafe crap like macros and function pointers.

Your coworker is a smart man you should listen to him more.
Also read this:
yosefk.com/c fqa/defective.html

Not to mention they produce faster code since the compiler can inline all the stuff at the compile-time.

would not want to have access to those features.

3/4 of these apply to C as well tho. If anything, this is an argument for Rust.

> technical debt is a meme

Sup Forums in a nutshell

Well I'm not artificial

>what is coq
>what is why3
So when will you be able to write actually safe code in rust? And why would you want to write in glorified Ada(with ugly syntax), when you have the spark platform to write actually safe code in Ada? Rust brings absolutely nothing. Mission critical is still going to be C+Ada/SPARK. Rust will die as does every webdev fad

Ada doesn't have linear types and ADT.

Rust doesn't have linear types either.
In what way is ADT better than tagged union?

Wrong.
You can match patterns on it.

install gentoo, faggot

Rust's linear types are "linear types". I thought that was common knowledge even among Rust Evangelism Taskforce. You need to brush up on that theory, famalamalam.
And you can destructure tagged unions in ada in a similiar way you would with pattern matching in, say ocaml. Ada's compiler also warns you when you have incomplete "switch", not to mention the SPARK platform.

>match patterns

The fuck does this even mean? Looks like a glorified switch statement that navigates nested structures.

Oh and from that screenshot, idris is actually much more interesting language than rust. Dependent type theory is quite powerful (see coq) and i would very much like it to replace the SPARK

> Rust's linear types are "linear types".
It's still better than whatever Ada has to offer tho.
> And you can destructure tagged unions in ada in a similiar way you would with pattern matching
But it's not pattern matching?

It is absolutely not better. You can't prove rust code correct. You can easilly do in Ada. Your "linear" types are actually affine types, big difference.

It is dual to pattern matching, so in a sense, it is.

You can't prove your Ada code is correct either, it's just a bunch of contracts to check, partially in the runtime, it's nothing like Coq or seL4. Meanwhile, you can actually prove your Rust code has no memory-related error by simply compiling it in safe Rust.

What? SPARK is a full-featured verification tool. It can use whatever backend you plug it into (z3,coq,...)
On that note, while seL4 itself is verified, the binary isn't because for whatever reason, they chose to build their own support infrastructure around Isabelle/HOL instead of using the existing infrastructure around coq. So while there is formally verified compiler, it uses different C model than seL4 does and the result is that you can't even build the seL4 and claim safety.
And on the memory safety, rust's memory model isn't proven yet, so you still can't claim even that much.

Sounds like Squarepusher (Retroarch main dev)

this

this

Take him outside and beat the crap out of him.

>hates ansi c
>c++ babby
we've yet to confirm if the dev team is actually centered around c++ or you just assumed it is. most programs these days have a mix of languages. either step up your shit and quit bitching.
also this >relying on something that might break when the react devs accidentally the whole thing when c can do almost anything for everything
enjoy your unfixable c++ shit and that guy is right.

>anons telling op to fire a co-worker
stupidity?

>sabotage co-worker who's literally programming stuff while OP bitches about it in an anime imageboard

If you must write C++, write C with Classes and label all your files .cc to denote that you use only the strict subset of C++ that makes your life easier.

C with classes is the worst way to write C++.
Write C++ like you would C, but with a bit of STL and templating to make your life easier.

Fire him.