Software Is Like Religions
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.
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.
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.
"React state propagation sucks."
Well done ! You just spot a Vue enthusiast.
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's 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.
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.
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 ! 🚀