"Which programming language should I bet my career on?"
Some time ago, a family member studying Computer Science asked me where he should start deep diving to get the best return on their time. My answer was immediate: JavaScript.
It is the language that is virtually everywhere. It allows you to build complex UIs, robust backends, and even mobile apps. But my recommendation goes deeper than just popularity. It is about how the philosophy of software development has evolved.
The Evolution of "Safety"
For many years, I was a dedicated .NET developer. In that era, a strongly typed language wasn't just a preference; it was the only responsible choice.
Back then, we didn't have the luxury of modern CI/CD pipelines, extensive unit/e2e testing suites, or rigorous Pull Request reviews. Often, deployment meant manually dragging files onto an FTP server. In that high-risk environment, the compiler was your primary line of defense. If the code compiled, you were almost certain it would work.
But the landscape has shifted. Today, type checking is just one small layer in a massive ecosystem of quality control. We have automated testing, linting, and sophisticated deployment strategies. The strict "compiler safety" that was once mandatory is now just one tool among many.
Reducing Friction
In this new world, I have rediscovered the value of dynamic languages. They allow to focus on logic, data flow, and architecture—not to fight with configuration.
Tasks that used to take me hours to architect in .NET—like mocking complex generic types for a test suite—are often trivial in JavaScript.
There is a velocity in JavaScript that is hard to beat. It removes the ceremony. Of course, the old adage remains: with great power comes great responsibility. You must be disciplined.
TypeScript
Here we cannot talk about JavaScript without addressing TypeScript. It has taken the industry by storm, and for good reason.
I use TypeScript daily in my professional work. In large-scale enterprise projects with dozens of contributors, it is valuable. It serves as living documentation and helps navigate massive codebases.
However, when you are building your personal projects, you have limited time. You want to see results. Adding a compilation step and complex type definitions can sometimes slow down the "feedback loop." Nonetheless, investing in JavaScript first is a strategic move, as it provides a direct pathway to leveraging TypeScript when your projects or professional needs demand it.
The AI Factor
There is a final, modern argument for prioritizing JavaScript as your starting point: Artificial Intelligence.
In the past, we relied heavily on static types to help our IDEs understand our code. Today, AI agents understand code context regardless of types. If I write a function in plain JS, the AI can still write the unit tests, find the edge cases, and suggest refactors.
In an AI-assisted world, the "safety layer" provided by static typing is no longer the only way to write correct code. The AI helps bridge that gap, allowing you to focus on building features.
Comments