Why I do not evangelize anymore

If you knew me in 2009-2014, it might have met me either on a local Lyon meetup after one of my talk, or in heated debates in random online forums.

I was advocating or evangelizing about PostGreSQL over MySQL, KDE over Gnome, Linux over Windows, etc.

I have joined a new group few months ago, in my introduction, I have said, among other things, that I was doing Haskell programming for a living, with NixOS and NeoViM.

It was not about proving I was right, it was more spreading "good" practices/mindsets/tools, hopping one day, I'll work with them.

One of the members gently trolled me, which is ironic from a TypeScript and VSCode user.

Not so long ago, he pulled me aside to ask him if I was upset, because I was not advocating for my tools.

I don't actively evangelize anymore, even during GDCR, I ask the organizers to not mention I'm not using Haskell, and during my introduction, I say that "I'm open to any programming languages".

Note: I also do it to avoid spending my day explaining how Haskell work, and learn new approaches from other environments.

What happened since 2014?

I landed my first job, on a 25 years-old C and JavaCard secured and embedded operating. Developed by electronic engineers, with no notion of software architecture or software engineering.

I could waste all my energy in dozen of battles, try to reach an agreement on minor details.

I would probably win some, but I would achieve so little.

Instead, I focused on finding people with the envy of a change, the grumpy ones, the ones which started by noticing a problem, and eventually having a solution in mind.

On-boarding people on their own project, proving they were not alone, make us achieve more than I could expect if I had tried to force my changes upfront.

Do I think Haskell is the best programming language? No, even though it provides a solid framework for thoughts.

Do I think Prolog is the best programming language? No, even though it goes beyond what we can expect when it comes to expressiveness.

Do I think Idris is the best programming language? No, even though it gives we enough power to build bug-proof systems.

Do I think Erlang is the best programming language? No, even though it is probably the only environment we should use for distributed programming.

I could go on for a long time.

There is no right and wrong, only trade-offs, if at some point, or the person we are speaking to is claiming to have the silver bullet, then they did not think about the trade-offs.

That is why I do not evangelize anymore, I prefer build with the trade-offs I have chosen, and learn from others.