The most important practical lesson that JavaScript has taught us

The incredible rise in popularity that JavaScript has experienced over the last decade has been spectacular. According to the yearly developer survey by StackOverflow [1], JavaScript is today the most popular programming language in the world:

JavaScript also leads the ranks in other studies and surveys like the quarterly Programming Language Rankings by Redmonk [2] or the 2018 Developer Skills Report by HackerRank [3]:

The success of JavaScript has been so spectacular that we even have a “law” about it [4]:

Any application that can be written in JavaScript, will eventually be written in JavaScript.

However, the success of JavaScript has not been free of detractors. JavaScript has been the source of inspiration for some well-known jokes:

JavaScript has been the focus of a lot of negative criticism, It has even been described by some as “a phenomenon of mass psychosis” [5]:

JavaScript programmers have been mind-fucked into thinking that JavaScript is a good programming language. The president speaks of “mass psychosis” and “crowd thinking” but I’ve used the analogy of Stockholm syndrome and cult psychology. Think Patty Hearst and Scientology.

However, all these negative comments don’t seem to have been able to stop it from becoming extraordinarily successful. So, I’ve been asking myself one question for some time: Why? Why is JavaScript so successful?

Accessibility matters #

If we could explain the success of JavaScript with just one word what would it be? The answer is Accessibility.

I think about “accessibility” as the design of products, devices, services, or environments for people who experience disabilities. However, according to the Oxford Dictionaries, the terms accessibility has a broader meaning [6]:

accessibility #

/əksɛsɪˈbɪlɪti/ #


  • the quality of being able to be reached or entered.
  • the quality of being easy to obtain or use.
  • the quality of being easily understood or appreciated.

Please don’t get me wrong, I’m not trying to rest importance to the design of products for people who experience disabilities. It is extremely important to be empathic and ensure that when we create something, it can also be enjoyed by people who experience disabilities.

I was recently reading the book Homo Deus: A Brief History of Tomorrow by Yuval Noah Harari and he argues that what enabled humans to conquer the world wasn’t a unique possession of consciousness because animals have that too in varying degrees. What was unique was our ability to cooperate in very large numbers.

Side Note: If you find this idea interesting, you will probably enjoy reading Homo Deus or watching the TED talk “Why humans run the world” [7].

When large numbers of humans collaborate we are able to achieve great things. The larger the group, the greater the achievements. If we want to be able to guess how much something is going to evolve and progress, all we need to do is to measure how big is the community around that something. Accessibility is what has made possible the growth of the JavaScript community and the community is what has made possible its progress and evolution.

The most important lesson that the success of JavaScript has taught us is that when building a product, application, service, framework, library or whatever; we will achieve better results if we focus our efforts trying to build something accessible for everyone. It doesn’t matter if at the beginning we are creating something that lacks features or if it is not as fast as we would like it to be, or if it cannot scale as much as we would like. If our product is accessible, the community around it will grow and the community will then foster the creativity and innovation required to sustain long-term success.

It is also important to reflect on the fact that this is a lesson that can be applied to many different kinds of organizations. Open source projects, startups, research collectives, and governments are just some of them.

Focusing on accessibility #

At this point, our main question should be: How can we focus on accessibility?

My first suggestion is to practice wishful programming. Wishful programming [8] is a very powerful programming practice that can help us to create accessible APIs. However, many programmers are unaware of it:

Write some code that uses a component before we implement the component. This helps to discover what functions and data we need, and following this discovery will lead us to more simple and useful APIs.

When we practice wishful programming, we focus our efforts on the creation of simple and useful APIs. We can achieve this by asking ourselves what is the easier and minimal way to allow someone to try, install, use, understand, extend something before we implement it.

My second suggestion is to try to ensure that our community is also accessible, as opposed to just our product. We can achieve this by promoting diversity and inclusiveness.

Don’t forget to subscribe if you don’t want to miss it out future articles!

Note: This post was originally posted at


Now read this

Dependency injection in TypeScript applications powered by InversifyJS

About # InversifyJS is a lightweight inversion of control (IoC) container for TypeScript and JavaScript apps. InversifyJS uses annotations to identify and inject its dependencies. The InversifyJS API had been influenced by Ninject and... Continue →