Lets say John is describing to Peter the project he is working on. When John starts to talk about technology stack he is using, one of the technologies "triggers" Peter. Then, Peter starts arguing that the technology is crap, getting into deaf state (C++ vs Java for example). He doesn't listen to John anymore. This is fine, but usually somebody else who knows them accidentally comes in and engages into the war. Sometimes the number of participants reaches 5 people. Nobody gets offensive, but they become quite hateful about technologies in the conversation.

John and Peter are not friends, but they admire experience of each other. The other ones are even further in John's social circle. John talks to Peter primarily about tech, so situations like this have a decent chance of occurrence. Sometimes John needs to ask Peter about important things, which requires face to face setting, so John might need to continue conversation.

John is a troll occasionally, so he doesn't mind being salty about things. Though he doesn't want the wars to get out of control.

What John tried

Last time the opposite sides paused to ask his opinion. John just waived his head, and then facepalmed. Their confusion let John to navigate the conversation in different direction.


Aside from the facepalm, how to prevent the argument from happening? If preventing it at all is not possible, preventing the argument from heating up is okay.


  • Peter: It is 2017 now, and C++ still doesn't have garbage collector!

  • Ben: We have RAII, which lets us deal with way bigger spectrum of problems than Java!

  • Thomas: But you still need to remember to implement it!

  • 4th person: All of the standard containers provide it, so we can use rule of 0!

  • Could you please clarify why this is unclear? It seems pretty clear to me. Oct 8, 2017 at 16:53
  • I've edited the question to make it clearer to others. If you feel my edit conflicts with your intention, go ahead and rollback my edit.
    – Vylix
    Oct 9, 2017 at 2:12
  • @Vylix, looks good, thanks. Oct 9, 2017 at 5:57

4 Answers 4


The danger of these kind of discussions popping up is omnipresent among technology people. It's the dark underside lurking beneath the glamour and sex-appeal of our profession. It is a perilous tightrope we walk: one one side is the Void; on the other side, a void pointer.

So what can John do? He has to remember these two magic words:

"Guys. Focus."

This is usually enough, especially if there is an actual work conversation which is being disrupted. If not, you can follow up with "We really need to talk about [real topic]. When you're done with [vi vs emacs|where to put your curly braces|whatever], come see me." Look annoyed when you say this, because you are annoyed.

Do this as soon as the conversation starts spiraling. It won't save you always, but I've had pretty good results with this approach.

Except ... there are days when I've been weak and thrown in on these topics myself... ;D

  • +1 Exactly to the point. I once suggested to write down arguments, index them and only throw the indices at each other, so they could finish faster and get our work done. :D
    – Fildor
    Oct 9, 2017 at 8:29
  • 1
    “It's the dark underside lurking beneath the glamour and sex-appeal of our profession.” HAHAHAH!!! Seriously… Oct 9, 2017 at 15:39
  • 1
    @Fildor I'm reminded of an old story... Don was in jail. Suddenly, an inmate yells "9!" and the cellblock erupts in laughter. Then another prisoner yells, "123!" Again, gales of laughter. Don asks an inmate what's going on. The older inmate says, "Most of us have been here so long that we have heard all the jokes. So we just number them and use the number." Next day, Don decides to try it. "9!" he yells. Dead silence. Fred asks the older man, "what happened?" The man shrugs, says, "Some people just can't tell a joke."
    – akaioi
    Oct 9, 2017 at 16:24

Programming languages and software stacks are just tools that we use to create a solution to a problem. It's just like a screwdriver or a hammer. No tool does everything perfectly, and they are all compromises, it's just a fact of life.

Peter's problem is that he still believes there is a perfect tool, so he doesn't understand why other people don't use his favorite. This is the origin of the issue here, and this is bad engineering practice. Pretty much every bit of software sucks hard at something, from exec speed to development speed to availability of developers on the job market, really there are many aspects. C++ sucks, java also sucks, and let's not even talk about PHP. But they all suck at different things, and when your problem is out of the domain where they suck, these tools can work really well. (Admittedly, someone defending PHP would have a hard time, though).

This is similar to choosing a microcontroller in electronics. For any given generic problem there will usually be at least 10 solutions, so the fanboys of each brand will get into a mud fight. While the proper answer is always "hey, you know how to use this one and it does the job just fine, why the hell would you spend a week learning another toolchain when you can do it in two hours with the one you're used to?"

So, when Peter starts to bitch because John didn't use his favorite tool, John could say:

"I know, I agree with you this has its own set of compromises. But for this specific problem, I think picking this specific bit of software works well. It's slower than [your favorite tool] but it was faster to develop for me, because I know it well. It may not be the most elegant solution but it does the job just fine. Also my colleague know this tool so he can maintain it too."

The trick is to agree that in engineering everything is a compromise (which is true) so it all comes down to which aspects of the tool match the problem at hand, which will make it a good or bad choice. John should agree with Peter on the ways his choice of tools suck, but then he should point out that for the problem at hand, these are really off-topic.

Important end note: If Bob wants Peter to stop being an annoying fanboy, Bob must lead by example and stop being a fanboy for his own choice of tools.

  • 1
    so it all comes down to which aspects of the tool match the problem at hand, which will make it a good or bad choice +1
    – Sachin
    Oct 9, 2017 at 8:10

Walk away and let it rage out. Once people are in deaf fanboy state there is very little you can do.

Or if it's near his workspot tell them to take the discussion elsewhere.

If they wonder why he leaves the "discussion" or wants to remove himself from it, he can cite the work he needs to do that won't get finished if he stays debating the merits of each option.

  • Sometimes I have important things to ask, which I cannot do through other medium, so I might need to continue conversation. Sorry for not including that in the post, I'll fix it. Oct 7, 2017 at 23:23
  • Can you re-read your first sentence? I think you missed a word, but I don't know what to fill in.
    – Vylix
    Oct 9, 2017 at 2:16
  • @Vylix that used to have something to say while walking away but I couldn't figure out something non-offensive. Oct 9, 2017 at 8:09

Two of the answers look at this situation from a technology standpoint, but what about a generic situation (which the question asked) - how to avoid or stop an argument involving opinions or nuances? This could just as easily happen in a sales discussion or a mechanical discussion. People begin to take sides and start arguing without hearing the other side (or wanting to, in some cases).

  1. At some point, arguing becomes more expensive than doing something. Think of a simple example where a couple are arguing over which restaurant to go to over opinions about restaurants: if they argue for an hour or more, they aren't eating. At some point, it's completely wasteful to argue than to just flip a coin. To solve this:

    • Time the discussion. If no one agrees, a neutral party gets to pick or a solution is randomly chosen (coins, dice, etc). In the case of two mechanics arguing, would a client be okay with an extra $500 charge because of the hour cost of mechanics disagreeing?

    • Limit the time of each participant to make their point. In your example, you had 4 people, so each person gets 7 minutes to make their case, if you had a total of 30 minutes (2 minutes for the decision).

    • Remind everyone about the big picture - "We're trying to resolve our client's car issue." Opinions have pros and cons, but none of them outweigh the client.

    • In general, we can't prevent people from disagreeing, we can aim to have rules about disagreeing. I like how you think about prevention, but it's hard to prevent a disagreement if we allow input (one way to prevent is never allow input - but is that better?). However, when we ask for input which may lead to a discussion or argument, let's set some boundaries.

  2. For higher-ups (managers), you should always consider hiring people who are willing to lose. In my first point, I assume that at some point people can be rational and take a "loss" before more time is wasted. What happens when people are all ego and can't lose? Don't hire them - and I don't care how good they are. At some point, we're all going to lose a discussion.

  3. While most people will view this question from work, what about general relationships - like friends arguing over an opinion? Because there isn't a final product or an end-client (ie: not work related), disengage early. People seldom change their mind from arguments and there's a ton of research on this. If you're in a situation where you can disengage (general social situation), do so. Generally, work conflicts won't allow this as easily.

  • I think this is missing the point of the question slightly. As I read it, the situation is that the discussion drifts away from the actual problem and spirals into an ever recurring one about software "religions". This happens all the time between us nerdy nerds and from my experience can only be interrupted by figuratively "spill a bucket of water over them" and bring them back on topic.
    – Fildor
    Oct 10, 2017 at 9:25

Not the answer you're looking for? Browse other questions tagged or ask your own question.