I’ve been porting Puppeteer code (to puppeteer-sharp) from javascript to C# since late 2017 and Playwright code (to playwright-sharp) since early 2020.

One of the things I learned is that programming languages are not about computer instructions, but human interaction.

Migrating code from Javascript/Typescript to C# is not about translating statements. It’s about figuring out how C# developers express what a Javascript developer tried to communicate.

Each programming language has a community, a background, influencers, and frameworks that shape how programs are written.
We can’t deny that javascript was born to solve simple HTML interactions. And we can’t deny that C# was born as a new language to the Visual Basic community.

In the same way that spoken languages follow a community, their habits, and their way of living. Programming languages follow a programming community.

What makes a language good or bad is also biased. We consider French romantic because of French music. We might also consider other languages aggressive because that’s the language of bad guys in Hollywood movies.

In the same way, we might consider some languages cooler than others because of influencers and Twitter hype.

My programming language is the best because it represents my community and how we communicate with each other.

The next time you get in touch with a language you are not familiar with, instead of thinking if it’s bad or good, try to understand from that community and embrace this diversity we have in the industry.

Don’t stop coding!