Should I learn X language in Y year?

In summary, yes and no.

This question comes in many variations every year.

  • Should I learn C++ in 2024?
  • Should I learn PHP in 2023?
  • Should I learn Java in 2030?

This mainly asked for C++ and PHP most of the time. This post is an approach to answering them all at once.

The programming language we have today is the result of:

  • Evolution: Take assembly, for example. Creating software programmes using assembly is very difficult; it has high maintenance and very low readability. Some individuals believed it could serve as a foundation for creating easier languages. That"s how programming evolved from Assembly to COBOL, FORTRAN, BASIC, C, C++, Java, then to scripting languages like JavaScript, Python, Ruby, PHP, etc.
  • Purpose: Each programming language has a particular purpose. Although most programming languages are general-purpose, that means you can use them for many different use cases. But still, time-by-time, almost every programming language is good for some particular purposes. For example, Java is good for creating microservices and developing mobile applications (Kotlin is mostly used for Android development now, but it is also a JVM-based language), while game development prefers C++. JavaScript for the web and Python for data science C/C++/Rust for system programming; Golang/Java/JavaScript for backend, API, and microservices development. This doesn’t mean that these are the only languages; there are other options as well.
  • Fun: You might have heard about esoteric programming languages or toy programming languages. These programming languages are not mainstream programming languages; they are not really preferred to be used as the primary language to develop something commercially. Rather, they are pieces of art. They are mainly written just to have fun or try out strange, weird ideas. These are not suitable to use commercially, but they are fun to try. Some of them are chefs, brainf*ck, Bhailang, etc.

Different languages are written, sometimes for the same purpose, sometimes for a different purpose. Sometimes, these are developed with different philosophies in mind. Some have different internal architectures and paradigms.

For example, Java, C++, and Smalltalk are object-oriented; JavaScript is object-based, but many prefer a functional approach to it. Python has great readability. Golang meant to be fast like C, but with better readability, garbage collection, etc.

When different approaches and philosophies are found and match different types of problems, each language starts getting a fit. More than one language can be fit for one type of domain. Also, when it was initially created, the problems of that time were primarily kept in mind and updated when there was a requirement for a new feature to add, any other bug, or just an improvement.

One language created can also be a result of the purpose of overcoming some limitations of another programming language. If you are a beginner and are choosing a programming language for finding a job, then first of all, you have to decide what domain you want to get into and then choose a programming language. You have to check for trends while choosing. You should check for demand and how much availability of the job is there in your area, city, country, or planet. Then pick that language and start learning it.

If you are a hobbyist, pick anything! Whatever excites you, try it!

If you are developing an application, there are some factors, like:

  • What is the target device of the application? A server, a desktop, a mobile application, a microcontroller, or anything else?
  • What are the things that are critical to the project?
  • What are the things that are critical to the project? Time (faster execution), space (storage), security, communication, etc.
  • What is the budget for the software?
  • What is the team size, and what is their expertise?

And there can be many more questions. So, choose the one that suits your needs.

For example, game developers mostly prefer C++ because it is close to the hardware, making the code faster in terms of hardware response and graphics rendering.

You still might want to consider assembly for microcontrollers or embedded C if the project is a bit complex.

If we have a pretty simple web application with less use of resources like databases and moderate traffic, then you can use PHP. Why? Because you can host your application on shared hosting, which will be much more cost-effective than using VPS with the same or another programming language.

One of the great examples is WhatsApp choosing Erlang for developing its backend because Erlang programming language is very efficient, highly available, has the ability to handle large and concurrent users, and is primarily a messaging service. It wants to be that.

And as time passes, you might want to use more than one programming language. Take a mobile app that is using React Native. For example, you would be using JavaScript primarily, but now you want to add a feature that has to leverage the hardware-level power of the mobile device. In that case, you would use either Kotlin or Swift depending upon whether you are developing an application for Android or iOS, respectively, or both.

If you are an experienced developer and are working in a job, then you also should learn the language of your choice depending upon the trends, interest, demand, or hobby. This will make your resume and your overall skillset more versatile and will keep you up-to-date with the times and trends.

A language to be learned is dependent on the desire and/or the demand, as well as the domain of work. There are some surveys, like the StackOverflow Survey, some good YouTube channels, the job portal, and some popular software applications that might help you choose and curate your journey.

You don’t need to learn everything, and it’s always good to learn more languages and technologies. This also helps to create more than one approach to solving a problem and a good application.


© progshala.in