Programming Languages to Avoid and Learn in 2022.

Things I didn’t know when I started coding.

Priyansh Khodiyar
17 min readDec 15, 2021


Photo by Chris Ried on Unsplash
Motherland | मातृभूमि | ମାତୃଭୂମି | જન્મભૂમિ | মাতৃভূমি | الوطن الأم | mère patrie| 祖国 | ojczyzna | Heimat | Родина | 모국 | tanah air |

We speak so many languages but, how many do we actually CODE in?

It is hard to choose just one programming language which is

  • in demand in job market and
  • will continue to be in —
  • that too with a high pay scale,
  • developer satisfaction and
  • productive! Yes.

and it’s not always that easy to pick one, never will be, :(

there will always be some trade-offs (or is this even a right question to ask?)

“because no programming language is perfect!”

one is easy to learn but sometimes slow(Python),
one is easy to learn but has a tiny userbase and hardly any libraries (Nim)
one is very fast but a bit hard to learn(C/C++),
one is incredibly fast, but incredibly hard to learn (NASM)
one is verbose but in demand(Java/C#),
one is made by Google(Go/Dart),
One is everywhere but no one talks about it because it’s favoured by script kiddies (PHP)
one is used everywhere but saturated job market(JavaScript) and so on…

“Languages need hype to survive; I just wish people didn’t have to be blinded by it.”

you get the feel, right?


This article is my personal opinion. Every language is as good as a tool, it’s just how you, the developer, use it.

You probably won’t finish this article. In fact, I may have already lost you

  • to another tab in your browser.
  • Or an email from your boss.
  • Or a ping from a coworker.
  • Or any number of other digital distractions that have come to define your modern life.

[The below recommendations are for the context of the United States, United kingdom, and other 1st world and some 2nd world (Russia, and neighbours, etc) countries. Scroll down for Indian and Chinese context.]


  1. Javascript — Most used, versatile, easy, large developer community and WORA (Write Once Run Anywhere), scripting, frontend, backend, ML, games, mobile and webApps (be aware of its dependency hell).
  2. Python — easy to learn, backend, ML, data science, data visualization, scripting, hacking, automation, education and finance sector, web scraping, adoption continues to grow.
  3. Dart — One codebase for Android, iOS, Web App, Windows, macOS(beta), Linux(beta) application, embedded systems (unstable), servers → Flutter.
  4. C# — Platform agnostic, simple, general-purpose language, desktop, console and web application, windows and web services, game development, VR, AR.
  5. Go — Solves scalability issues, simple elegant code, easy to learn, the language of the cloud, DevOps, backend, servers, microservices, DNS, cloud native development. (Uber, Netflix, Docker, Kubernetes, Soundcloud, Prometheus)


  1. Java — In high demand worldwide, big data, android, finance, databases, system software, testing tools, enterprise king, the core language of industry-standard tools like Apache Kafka, spark, hive, MTLAB is Java based, distributed apps, IoT, Hadoop, etc.
  2. R — statistics, ML, Data Visualisation, fintech, research, retail, automobile industry, but slow and data-intensive.
  3. Kotlin — server-side, client-side web and Android, (embedded systems, macOS and iOS is coming), gradle plugins, microservices, smart-contracts, backend, data-science.
    — Develop for anything that has  on it (iPhone, iPad, macOS, watchOS, tvOS and apps for all of them) versatile, simplification of existing native app development methods, productive than obj-C
  4. Rust — memory management, systems programming, Linux kernel, game engines, operating systems, file systems, browser components and simulation engines for virtual reality. Takes a little time to learn(relative to Go). Good pay.
  5. Others → C and Julia.


  1. Ruby — webApps, automation (WATIR), scraping, servers, DNS, but better tools are available now. (Sidenote: Github, Gitlab are written in Ruby on Rails framework, and still the first choice of many startups for easy MVP and fast deployment).
  2. PHP — PHP originally stood for Personal Home Page, but it now stands for the recursive initialism, Hypertext Preprocessor.
    Desktop GUI, web backend, lacks good debugging tools (compared to other languages), relatively low pay, still extensively popular, tough competition from java, E-commerce and public websites King. [Earlier versions of PHP paid less attention to security features, presently, it’s as robust as any other language]
  3. C++ — bridge between LLP and HLP, memory unsafe, game engine development, OS level, embedded, fintech, trading, compilers, browsers, VMs, can be frustrating to work with. (Visa, Mastercard, Amex all use C++ for their backend system). Do not consider C++ if gaming and hardware programming does not interest you.
  4. Super-new and very niche-specific languages which do not have a healthy community.[For more on that, please refer to the end of the article]

[Edit: Java is promoted to the ‘You should consider’ section after consideration with industry devs. ]



Solidity, Javascript, Rust, C++, Substrate.


Truffle Framework, Hardhat Framework, Brownie Framework, OpenZeppelin SDK, Chainlink SDK.


  1. Java — Most in-demand language according to Indian Job Market, Safe bet.
  2. Javascript or Python — Master anyone and you are good to go. Period.
  3. C++ — Use it for Data Structure and Algorithms and Competitive Programming (at Codeforces, Codechef, Topcoder, SPOJ, etc and participate in Hashcode, Kickstarter, Codejam, Hacker Cup, ACM ICPC, etc)

Recommendation: Java and Javascript


  1. Java [29.28%]
  2. C++ [16.08%]
  3. Javascript [15.09%]
  4. C# [10.95%]
  5. Python [8.21%]
  6. Go [6.94%]
  7. PHP [5.19%]
  8. Matlab [1.48%]
  9. Lua [1.28%]
  10. Swift [0.83%]

Source here, [xx%] indicates the percentage of developers using that language per 100 dev.

All the programming languages are built for some specific purpose, over time, they deviate towards general-purpose languages (can be used to code almost everything, e.g Javascript, Java, and to some extent Python).

You have a very slim chances (if you are a fresher) to directly land your first Job if you just know :
1. Rust, but not C++
2. Go, but not Java
3. Kotlin, but not Java
4. Swift, but not Objective-C
5. Julia, but not Python
6. Dart, but zero experience with any native app development language.

You all won’t agree with me on this but thats okay!

Just have a closer look at the Job description of companies who hire folks who know cutting edge technologies, they will have “must have 1–2 years of experience working with [the-language-which-you-hate] language

People claim PHP runs the world,
→ Sure, according to % of websites PHP is ahead but hey 1/3 of websites on this planet are WORDPRESS sites and Wordpress is built on PHP, people who do not know to code (or do not want to code) use Wordpress templates and use them, it’s just like duplicating same codebase with minor textual changes and hence PHP wins here, nothing else. Why people moved to Javascript if PHP was that great? Tell me.

The following are certain categorisations of languages, please have a look,

Based on different Programming Paradigms

Object Oriented Programming Language

Java, C++, C#, Python, Javascript(pseudo OOP), Delphi, Smalltalk, Lisp, Ruby, Dart, Eiffel, Groovy, Julia, Nim, PHP

Procedural Programming Languages


Functional Programming Languages

Haskell, SML, Scala, F#, ML, Scheme, R, JavaScript, Erlang, Elixir, ReasonML, OCaml

Scripting Programming Languages

  • Server Side Scripting Languages: Javascript, PHP, Python, and Go.
  • Client-Side Scripting Languages: Javascript, Web Assembly.
  • System Administration: BASH, PERL, Python.
  • Linux Interface: BASH

Logic Programming Languages

PROLOG, ASP(Answer Set Programming), Datalog, and Coq.

Markup Languages


“Learn one Object-Oriented Programming Language and one Scripting Programming Language.”

Studyable Languages

Go, Lisp, Scheme, OCaml, Haskell, Eiffel, Erlang, Rust, Clojure, Elixir, etc., that have cool features that you’d love to use in production but would never.

OOP is a style of coding. Some languages are opinionated, as in, they force you to use a specific code style. Typescript is not opinionated in that sense, you can use typescript to write object oriented code, but you can also write functional or imperative code.

Based on Runtime Differences (Language Characteristics )

Dynamically Typed Languages

Python, JavaScript, Ruby, PHP, Erlang, Perl, Lua, Smalltalk, Lisp

Statically Typed Languages

C, C++, Java, Typescript, Go, Haskell, Kotlin, Rust, Scala, Swift, OCaml, Delphi, ReasonML,

“JavaScript is a dynamically typed language, but TypeScript is a statically typed language”

Strong and Weak type languages || Dynamic and Static type languages.
Strong and Weak type languages || Dynamic and Static type languages.

Both Static and Dynamic (Gradual Typing)

Dart, C#, Clojure

looks like we have a situation here. What will you choose? credits — codedamn
looks like we have a situation here. What will you choose? credits — codedamn

Open Source Language Compilers

C(gcc), C++(g++), C#(.NET, used to be closed), Java(JVM), Python(PVM), Go, Kotlin(JVM), Julia, R, Scala, Dart, Swift, Free Pascal Compiler(FPC, using Lazarus IDE) practically every famous language.

Closed Source Language Compilers

Matlab, MSVC++, ABAP, SAS, Delphi, VBScript, Microfocus COBOL, LabVIEW, IDL, PL/SQL

“A programming language isn’t open-source or closed-source as such. Its compiler and run-time libraries can be closed-source.”

Automatic Garbage Collection

ML, Haskell, Lisp, Perl, APL, OCaml, Ruby, Julia, Javascript, Typescript, Smalltalk, Java, C#, Python, Go, Erlang, Elixir, Dart

Manual Garbage Collection

C, C++, Rust, Delphi, ReasonML, Fortran, Pascal, Zig
Swift and Objective-C have optional garbage collection.

Compiled Languages

C, C++, Erlang, Haskell, Rust, Go, COBOL, Delphi, Haskell, Julia, Swift, Obj-C, Scheme, Fortran
Types — Just-in-time (JIT, Tracing just-in-time), Ahead-of-time (AOT), Transcompilation, Recompilation.

Compiled to Virtual Machine Languages

Other VM — C#, F#
JVM Languages — Java, Clojure, Apache Groovy, Scala, Kotlin

Interpreted Languages

PHP, Ruby, Python, Javascript, Lisp, Lua, Perl,

Note: Most programming languages can have both compiled and interpreted implementations.

“Compiled languages can be dynamically typed too!”

Talk about developer productivity. Source — wikipedia.
you talk about developer productivity. Source — wikipedia.

This mean that on an average, one(1) line of python ~ six(6) lines of C.

Languages with starting array index of 1 and not 0.


  • APL, COBOL, Fortran, Julia, Lua, Matlab, R


  • ALGOL 98, AWK, CFML, FoxPro, Lingo, Lua, Mathematica, PL/I, RPG, Ring, Sass, Smalltalk, Wolfram Language, XPath/ XQuery

Based on Application (Where it is used)

For Mobile App Development

  • Native-PlatformJava or Kotlin (Android Studio), Swift or Objective C (Xcode, for iOS and macOS)
  • Cross-Platform (Platform Independent) — Dart (for Flutter), Javascript (for React Native and Ionic), C#(Xamarin).

Special Mention — Delphi(Android, iOS and desktop apps).

For Web Development

  • FrontendJavascript (React, Angular, Vue, preact), Elm, ReasonML
  • BackendJavascript (Node.js), Python (flask, django), Go (gin, gorilla), Ruby(Ruby on rails), Java(Spring Boot), C#(.NET framework), PHP
  • DevOpsGo, Python, Bash

“Did you know that React initially was written in OCaml and only then was ported to JavaScript to help with adoption?

  • Elm and ReasonML are functional, compile-to-js languages.
  • Before Angular, React and Vue, the world used Backbone.js and Ember.js

For Game Development

C++(Unreal engine, 4A engine), C#(Unity, CryEngine), Java(LibGdx, Ardor3D), Javascript(A‑Frame (VR), ImpactJS), LUA(Leadwerks)

For Desktop App/Software Development(Windows/Mac/Linux)

C# (.NET framework), Delphi, Dart (Flutter), Swift(XCode), C++(Qt), Python (Kivy, Tkinter)

For AR/VR/Metaverse Developers

C++, C#, Java, Javascript(AR.js), Python(VRED), Solidity(Metamask), Rust, Swift(ARKit)

For Systems Programming

Go, C, C++, Rust, Erlang

For Artificial Intelligence/Machine Learning/Deep Learning

Python(Tensorflow, Keras), LISP(CUDA SDK), Javascript(Tensorflow.js, brain.js), Swift(Core ML)

For Data Science and Analytics

Python(Scrapy, Pandas), R(ggplot2, dplyr), Julia(Flux, Mocha.jl)

For Big Data

Java(Apache Hadoop, Hive, Storm), Scala(Apache Spark, Kafka)

For Cybersecurity

Python, Bash, PHP


Automotive Industry — C/C++
Healthcare — Python
Marketing — SQL
Science — MATLAB
Embedded System — C/C++
Linux Programming(Kernel) — C, Rust
Cloud and web APIs — Go, Elixir(Phoenix, ecto)
Finance — F#

Before I tell you some of my recommendations, consider these THINGS in a programming language first:-

  1. Type System (Static or Dynamic?)
  2. Learning effort (approachable by beginners?)
  3. Nulls (Why are null references bad?)
  4. Error Handling (Catching exceptions is a bad way to handle errors?)
  5. Concurrency (Processors will not get any faster, utilize multi-core computing)
    — Rust/Go/Erlang/Elixir
  6. Immutability (it’s data that doesn’t change)
  7. Ecosystem/Tooling (good libraries may save months of development effort)
    — JavaScript and Python
  8. Speed (How fast does the language compile?)
    FAST — Go, Rust, Elixir ← | → SLOW — Scala, Python, C++
  9. Age (generally, newer languages will be better than older ones)
  10. Maintainability — the ability to read and understand someone else’s code (Java > Python > Javascript …. Go > Rust).
  11. What about runtime footprint? Nothing beats C in that case, and C (not C++) is actually a very high productivity language.
  12. Safety. Programming mistakes can be very costly. (Rust > Go …> Java….>Python > Javascript)
  13. You shouldn’t worry about language performance in advance — that’s a premature optimization.
  14. Programmer time is very expensive, so pick a language that makes the best use of programmer time.

and now decide for yourself, you have enough context.

Possible Combos to learn:-

  1. Javascript and Java
  2. Python and C++
  3. Go and C#

or any other combination of LHS and RHS.
I have chosen Javascript, C++, and Go for myself.
Do not forget to learn SQL or any sort of NoSQL language. (any 1)

Note: Choosing a language and going all-in based on assumption that it is going to be the future of computing is nothing but premature optimization. Don’t fall for this trap.

People are very protective and often defensive when it comes to discussing certain technology, architecture and most of all Programming Languages, so it is a sensitive topic.

If you ask me for 1 single answer (or opinion),

  • for mobile- flutter(dart)
  • for backend — django(python)
  • for frontend — react(jsx)
  • for AI/ML — python
  • for enterprise — close your eyes and ears and learn Java
  • DS Algo interview — python
  • for game dev — C++
  • for hardware — C
  • Typescript over Javascript

Did you know Go has the best language anthem?

Based on StackOverflow Trends (What’s hot)

I get it, trends can’t always paint a true picture but at-least gives a rough image.

Python, C#, Javascript, Java, PHP
Python, C#, Javascript, Java, PHP
R, Swift, Ruby, Dart, Kotlin, Go, Rust
R, Swift, Ruby, Dart, Kotlin, Go, Rust

Based on Google Trends (What people are searching)

nothing much to look here
hmm… interesting!

Well again, these trends do not accurately define the job market or industry trends. You can even get a good job coding in COBOL which you hardly see being used.

look at this picture below carefully, do you see a red eclipse around a seemingly unpopular language? — yes, that’s Rust for you.

Control/Performance of a language vs Safety
Control/Performance of a language vs Safety

If it stands out why not Rust (or Go)?

— Rust is great, loved by many, modern, but niche-specific. It is not a general-purpose language like Python and Javascript, you can still get a good job but I won’t recommend Rust to be someone’s first language or a language they learn in hope of getting a good job fast. Rust is a system language where memory management is critical.

This is why more and more programmers are adopting other more modern languages — the top players being Julia, Go, and Rust.
Julia is great for mathematical and technical tasks,
while Go is awesome for modular programs,
and our Rust is the top choice for systems programming.

Turing-complete languages. Heard of them?
→ Turing-complete languages are those languages that can be used to simulate any Turing machine. Virtually all programming languages today are Turing-complete.

Non Turing-complete languages — SQL, BlooP, Charity, BNF, Regular expressions(regex), HTML

One more chart,

The picture says it all. Source — wikipedia.
The picture says it all. Source — wikipedia.

and more please…

Graph shows which all languages are used by top tech companies. Source — wikipedia
Graph shows which all languages are used by top tech companies. Source — wikipedia

Let’s talk Salaries: (How much we get paid)

Average salaries too, doesn’t paint an accurate picture. Don’t get swayed away.

2021 ← | → 2020

These trends can be misleading, so do not base the superiority of a language based on how much the developer of that language earns in a year as this survey does not mention if they were senior developer or entry level or intermediates. Too wrong for a conclusion.

I confused you right? Sorry! :(

Let me simplify it here for you, a universal solution.

→First, figure out what are you really interested in (web development, AI/ML, mobile and/or desktop apps, infrastructure, automation, cybersecurity, game dev, etc.)

→ Then narrow down to a specific niche, (e.g. iOS development, or in the web dev world it could be “building websites that convert for small to medium businesses”.)

→ By the time you’ve chosen your specialization, chose a language, as I mention above about almost every language.

→ Don’t worry too much about bank balance, what is paid well is your expertise and ability to solve real world problems for that specific niche — whether it’s small websites for regular folks or the engineers behind Cloudflare or Google. The better you are at it, the higher the pay and demand. Don’t follow the trends blindly. Yes.

A little history about popular programming languages.

Not necessary, but good to know which era programming language you are still using. Feel free to skip ahead.

1951 — Regional Assembly Language
1957 — FORTRAN (first compiler)
1958 — LISP
1958 — ALGOL 58
1959 — COBOL
1962 - Simula
1964 - IBM Basic Assembly Language
1964 — BASIC
1964 - PL/I (Programming Language One)
1969 — B (forerunner to C)
1970 — Pascal
1972 — C
1972 - Smalltalk
1972 - SPL
1976 - S
1978 — SQL
1980 — C++ (as C with classes, renamed in 1983)
1984 — MATLAB
1985 - Eiffel
1986 — Objective-C
1986 — Erlang
1987 — Perl
1990 — Haskell
1990 — Python
1991 — Visual Basic
1993 — R (influenced by S, 1976)
1995 - Delphi
1995 — Ruby
1995 — Java
1995 — JavaScript
1995 — PHP
2001 — C#
2002 — Scratch
2003 — Scala
2006 — PowerShell
2007 — Clojure
2008 — Nim
2010 — Rust
2011 — Elixir
2012 — JuliaOther new programming languages include Red, Crystal, Elm, Hack, Haxe, Zig, Reason, and Ballerina.

“C is the closest language to modelling how computers work, Lisp is the closest to modelling how computation works.”

Meanwhile, back on Planet Earth…when you were busy living life, these tech giants made some cool programming languages!

2009 — Go
2011 — Dart
2011 — Kotlin (developed by JetBrains, supported by Google)
2012 — P
2012 — TypeScript
2017 — Q#
2019 — Bosque
2021 — Microsoft Power Fx
2014 — Hack — Facebook
2014 — Swift — Apple Inc.

Tech giants develop languages primarily to solve their own problems (and not for charity), some even plain copy another already popular language in the market (Microsoft copied Java to make C#, also, Microsoft’s Bosque is very similar to Google’s Go).

Languages evolve slowly because they’re not really technologies. Languages are notation.

Learn just enough and start making something. You’ll find out which languages you need as you go along.

You might have heard everyone say just master one language, true but usually only a few follow this advice, the rest of us jump from one buzz tech to another.

Mastery of one language means knowing :

  • how APIs are built or any other use cases that language is built specifically for,
  • how to send a different kind of request (GET, POST), concurrency and parallelism related features,
  • how memory is managed, how to optimize intermediate assembly or bytecode for performance and things like that, classes, objects, etc.

These things hardly differ between programming languages.
E.g — Go and Java are very similar in this respect.

Keep an eye on Tech: —

  • Web Assembly (WASM)
  • Elixir
  • Flutter
  • /\/ext.js

Some popular saying in the Programming World —

  1. The inventor of C++ STL was on record as saying he hated OOP.
  2. Java is the most distressing thing to happen to computing since MS-DOS.
    — Alan Kay, the inventor of object-oriented programming.
  3. “C++ is a horrible language… And limiting your project to C means that people don’t screw things up with any idiotic “object model” c&@p.”
    — Linus Torvalds, the creator of Linux.
  4. “I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.”
    — Alan Kay, the inventor of object-oriented programming.
  5. “With OOP-inflected programming languages, computer software becomes more verbose, less readable, less descriptive, and harder to modify and maintain.”
    — Richard Mansfield
  6. “I think that large objected-oriented programs struggle with increasing complexity as you build this large object graph of mutable objects. You know, trying to understand and keep in your mind what will happen when you call a method and what will the side effects be.”
    — Rich Hickey, creator of Clojure.
  7. I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is messaging.”
    — Alan Kay, the inventor of OOP
  8. “I think the lack of reusability comes in object-oriented languages, not in functional languages. Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.”
    — Joe Armstrong, creator of Erlang
  9. “I’ve learned a painful lesson, that for small programs dynamic typing is great. For large programs, you have to have a more disciplined approach. And it helps if the language actually gives you that discipline, rather than telling you, ‘Well, you can do whatever you want.”
    — Guido van Rossum (creator of Python)
  10. “If you look at the history of programming languages, a lot of the best ones were languages designed for their own authors to use, and a lot of the worst ones were designed for other people to use.”
    — Paul Graham
  11. James Gosling (Java) even said, a few years ago, that if he had to do it all over again, he wouldn’t have used interfaces.
  12. React was not made for TypeScript. React initially was made for a functional language.
    There’s a conflict between programming paradigms:-
    TypeScript is OOP-first, while React is functional-first.
    React expects its props (i.e. function arguments) to be immutable, while TypeScript has no proper built-in support for immutable data structures.
  13. In C++ we don’t say “Missing asterisk” we say
    “error C2664:’void std: vector<block,std: allocator<_Ty>>:push.back(const block &)’: cannot convert argument 1 from ‘std:: Vector iterator<std: Vector val<std:: Simple_types <block>>>’ to ‘block &&’”
    and i think that’s beautiful.

Here’s something for PHP lovers.

And finally, a question for you.

“American technology companies want the government to make immigration easier because they say they can’t find enough programmers in the US.

Anti-immigration people say that instead of letting foreigners take these jobs, we should train more Americans to be programmers. Who’s right?”

Both? Answer in the comments.

If you are financially stable, you can show your support to me here, that’d be great.
(only and only if this article provided value to you in some way)

“Buy me a coffee” is a global platform where people like you support creators like us and artists, financially.

I hope you got clarity out of this article. I have taken the feedback from valuable critics in improving this article. I love and thank them all.

I’d love to hear your thoughts about (I missed something?) this, so feel free to reach out to me on LinkedIn or Twitter or respond in the comments below but first ask yourself a question, (hopeful) If I told you to jump off a bridge, would you do it?

If you are a novice programmer and want to build a Solid Technical Résumé, this article will be super helpful

Do reach out, I would love to talk to you.

— If this article helped you in any way, consider sharing it with 2 friends you care about.

Follow me (if you think I am worthy like, Thor)

Turn on email notifications (totally your consent, so that you do not have to come here).

Till then stay alive.

References —



Priyansh Khodiyar

I write highly researched technical articles on things I daily learn, sometimes code, and interview people. Check my About section.