JavaScript is like a big city
Let’s meet Adam. Adam enjoys hanging out dressed as a cartoon character. In the big city he lives in, he can find all the costumes he likes. Sure, some people don’t understand him. One of them is Brian. These two meet each other quite often waiting for the subway. Brian then looks at Adam and thinks to himself, ‘I bet he wears a big green dog costume only because he hasn’t learn how to wear a suit correctly!’. But he forgets about him as soon as he notices the perfect cufflinks on a store window. They both are able to enjoy their own ways of dressing up in the same way how JavaScript programmers may see lists everywhere (ClojureScript) or add types almost everywhere (TypeScript).
It’s obvious that a city of millions of people cannot be served by one hairdresser. And it’s not only about the number of potential customers. Different people have different needs. Some want to just shorten the hair, while others look for a fancy hairstyle. From time to time Adam has his hair cut. But he doesn’t go to the same place Brian does. In the end it’s all about having your hair cut, but they expect it to be done in very different ways. And it’s totally fine to have different ways of getting your hair done, so is to have few libraries handling HTTP requests.
Sometimes when it’s the lunch time, they see each other again. Brian is waiting for his meal to be served. He’s looking through the window of a fully vegetarian restaurant. Then he spots Adam running to the kebab place located next door. They both are grateful that they can have the exact dish they want. Because big cities are full of life, they attract people of all kinds. Those who love to cook can make their living by running a restaurant. They don’t need to offer food that will be accepted by everyone in the town. They can specialize in some narrow field and they can do it well. It’s not a rare case to see a JavaScript programmer who works mostly on back-end systems. Another JavaScript programmer may focus on rich front-end experience. Somebody else can use JavaScript to develop mobile applications.
After living in that big city for a while, both Adam and Brian know which districts should be avoided. They know the city is not perfect, but they stay there because of all those possibilities they would never have in a small town. They create the city.
JavaScript is very much like a big city. That was one of the reasons why I decided to re-write Rosmaro in JavaScript.