how to choose the right framework

understanding the difference and indifference

BREAKING NEWS!

Tanay Pratap, a senior software engineer at Microsoft and the guy who always, ALWAYS, suggests learning React, was found speaking at the Svelte Society Day 2020. What does this move mean? Has Tanay shifted to Svelte? What implications does this hold for the job seekers? The community wants to know!

Even if you did not read the above paragraph in a loud, high-pitched shout, this is something that did happen in April last year. I gave a virtual talk at the Svelte Society Day 2020 and was bombarded with questions by students about whether they should start learning Svelte. Even if we remove this specific instance from the picture, every second question that I am asked on any platform is what tech stack or framework should be learned - whether one should go for Flutter, is Vue becoming more popular, is Angular in demand, and so on. I have finally thought of putting those questions to rest with this newsletter issue.

If you check out the stars on the GitHub repo of React, the number that you will get is 173k and correspondingly, 187k on that of Vue. What relevance do these two numbers hold? That both of these frameworks are used by a very large number of developers, and hence, if any "influencer" comes to you and says that Vue is better or React is better, you should know that they are not giving you good advice because over 150k people would not be using a framework if it had not been helpful or if a better framework did exist. And this is just the number of stars on the repos that we are talking about, the actual number of users is going to be much higher. So where does the difference lie?

Let us suppose you want to buy a car. Every car on the market today has an air conditioner, centralized locks, a powerful engine, and all the basic necessities. Your decision is based on superficial factors like the look of the car, the price, etc. Whatever be the features, the car that you buy should be able to run, isn't it? Now try to think of frameworks in this light. Every framework that we know of, React, Svelte, Vue, Angular, etc., has something like hooks, state management, and all that we need. Every framework prioritizes certain different aspects and has its own tradeoffs. Whatever be the features, the framework that you go for should be able to build applications, and it surely does that in one way or the other. Let us establish firmly at this point that every language or framework can do everything you want. If this is true, how do you actually make a decision, what to learn?

The thought that lies at the basis of the question that we started with is the need to know which area has more job opportunities, and that is a very genuine concern. The answer is really simple - learn what will get you a job and money. If you plan to work in India, React is your go-to framework. For someone in China, Vue is extremely popular currently. The European market is segmented and you will have to do research to understand what will get you a job there. It really depends on what country you want to work in and the local practices followed there. But do remember that you need to strongly work on your programming skills. One is called a good driver when one can take the car on a highway, parallel park, and drive safely on a very narrow road. One is not called a good driver if one owns a Lamborghini or a Ferrari. And if you are a good driver, if you can drive an Alto, you can drive a Santro. The skill of driving is much more important than the car. The skill of programming is much more important than the language. If you can code in React, you can easily learn how to code in Angular. I believe I have made my point clear.

Now how do you make yourself future proof, how do you ensure that your skill does not become obsolete by the introduction of a new framework? Every 2-3 years, ask your own self whether your skill is still in demand. Do a market study and understand your worth. Even if it seems that the new framework introduced in the market will get more popular in the coming years and then you might be left without a job, do not jump ship immediately. Every framework takes time to be adopted by the industry. Flutter, in spite of the backing by Google, is not being used in companies that still opt for Kotlin or Java for Android development. What you can start with is micro-investment, create a personal project with the new framework so that it gives you an idea about it. In case, it does get popular, you will not face too many issues in shifting. Keep yourself updated with the developments in related languages, always look for what's new and what can be adopted.

I want to finish this newsletter issue by trying to put this idea into your mind. There is a lot of space in the field of technology and all frameworks and languages can live here comfortably. This is anything but a fight. As you all already know, I pride myself on being able to transform any popular quote into one that suits my needs, so here goes one: Framework nahi sikhaata aapas me bair rakhna.

Leaving you with...

This is not the first time I have shared my thoughts around this topic, I did a podcast on this very subject along with my friend Siddharth Kshetrapal sometime last year. It does involve a lot of humor and is in Hindi. If you are interested, you can find it here:

I am getting much more consistent with my newsletters and to not miss out on any issue, you can subscribe here:

Just to make sure that you never miss a newsletter as it does sometimes land in the Promotions section, mark this address as "important". Then it will always land in your inbox. Do share it with your friends and anyone it might help!