Software Is Like Religions
Tags: webdev, architecture, developer, technology
Published: 2020-07-12 08:21:15

_3 reasons why developers sanctify technologies._

I recently post an article about React and VueJS.

I explain why I choose React over VueJS. Yet, I posted a lot of articles about different topics on software engineering, but this last was my most popular one.

*Why ?*

Do I have to conclude that *people* are thirsty to know what’s the most important framework to choose between React and VueJS ?

I learned React and VueJS and compared both, promoting React as the winner. 

*But it isn’t.*

It’s a point of view and some comparisons are more biased than another.

I had 3 types of readers:

* **The React enthusiast** saying: Yes man ! You choose the right side, React is
better !
* **The Vue enthusiast** saying: What the hell are you talking about ? It’s bullshit comparison.
* **The mature developer**: Choose whatever you can achieve your work with. There
is no winner.

For a long time, I have been a technology enthusiast wanting to read, hear what I really want to read or hear. But I noticed that **I was building a religion** around my favorite framework or whatever technology I used to.

Here are the one of the **3 characteristics** (not to say parodies) of a religion, applied to software.

# Belief in Supernatural Features

While some believing in a superior being, developers believe in superior features.

We all believe that the product we use has incredible benefits, life-changing.

We just need to look at some example of frameworks landing pages.

![](https://cdn-images-1.medium.com/max/1600/1*eDwdsnSwhMHX-646RHnHgQ.png)
<span class="figcaption_hack">[reactjs.org](http://reactjs.org)</span>

![](https://cdn-images-1.medium.com/max/1600/1*nHubkglfHR2zdiFiEIdUIw.png)
<span class="figcaption_hack">[vuejs.org](http://vuejs.org)</span>

![](https://cdn-images-1.medium.com/max/1600/1*iz0fFu4D5ghd_eOkS3QZqg.png)
<span class="figcaption_hack">[sorbet.org](http://sorbet.org)</span>

**Fast**, **scalable**, **efficient**, **beautiful**, **incredible**, **supernatural power**. All of them are incredible, there are no doubts!

You can preach that VueJS is performant, it is ! Like any other frameworks…

If you are a software architect, you know what you are playing for. *You cannot make mistakes* when choosing a language, a framework or a tool.

A fast and efficient technology could quickly become **inefficient** and **slow** if *you don’t know how to use it correctly*.

# Sacred vs Profane Technologies

There are no sacred or profane objects, places or times. Just technologies you
love and the others.

When you choose one side, the other may appear to be the dark side. While it's a personal choice that **fulfills your need** and  **fit with your mindset** or **ideology**.

I saw so many articles on “X vs Y” or comments saying one is better than
another. 

*Let's take a look at some HN comments*.

![](https://cdn-images-1.medium.com/max/1600/1*7P3xtvqrBnaZ9rngep-mIA.png)
<span class="figcaption_hack">[https://news.ycombinator.com/item?id=18302162](https://news.ycombinator.com/item?id=18302162)</span>

*"React state propagation sucks."*

Tough words.

**Well done !** You just spot a Vue enthusiast.

![](https://cdn-images-1.medium.com/max/1600/1*2j3A54y9NQfnkJGm8OTfyg.png)
<span class="figcaption_hack">[https://news.ycombinator.com/item?id=11749203](https://news.ycombinator.com/item?id=11749203)</span>

The last one is interesting, it’s one of the “third person” aka *the mature developer* who knows his tools but still open-minded.

Everybody has a reason to choose one over the other. After all, each person has the freewill to choose a religion as well.

It shows that when we use a technology, *we try to find the same advantages on the other one*. 

But very often that is not the case. It's a different paradigm. A new way of thinking or just built for a specific need. 

The world of software development has a lot of problems. 

**For each problem you can find one or multiple solutions.**

Good luck to find the one-which-fit-all.

# A Community Bound Together by the Greatest

*Communities are powerful.*

**It’s the best place to find the best people**, the converted ones. They are the most competent peoples *who know almost everything about the tool.*

When I tried Hasura as a GraphQL API, I was impressed by the 5000+ community members on Discord.

![](https://cdn-images-1.medium.com/max/1600/1*TUnGELVPui9_Dul5VM86eQ.png)

You are never alone.

Meeting people who are using products in different environments and project is so satisfying !

**Now, let’s talk about conferences.**

ReactConf, VueConf, EmberConf, RubyConf, ElixirConf,
*YourFavoriteFrameworkConf*… 

Each technology community is built around conferences and meetups. It's the most enjoying part of the religion.

Going in such a conference is the best way to find the gurus and connect with other peoples or companies who use the same tools.

> **It’s like a Sunday service, for developers.**

![](https://cdn-images-1.medium.com/max/1600/1*wpaIFuwEWBeqZ3So-sERtg.jpeg)
<span class="figcaption_hack">Photo by [Samuel Pereira](https://unsplash.com/@samuelpereira?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/tech-conference?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)</span>

Being part of the community by using a tool can produce a real sense of belonging and motivate to contribute even more on the project.

# Agnostic developers are rare.

Now you see how software can easily become a religion, for some people.

For passionate developers, as I am, it’s complicated to be agnostic and not evangelize what we use.

Although, it is still important to use the right tool for the right job.

If you want to build something out of your mind, **choose a technology you know well**. You will go faster and have a better understanding / ownership of your code.

If you want to find a job or for the love of learning new things, **learn a trendy framework**.

And remember: **have fun to build products !** 🚀