When I started learning to code, it was Visual Basic and JavaScript. In school, we learned Java, Scheme, Prolog, C, Assembly, and C++. Each one felt like a different world, each with its own syntax and philosophy.
My first professional job was built on Java - EJBs, JSPs, Beans, and Servlets. I watched the industry slowly shift toward the frontend, with frameworks like Ember and React taking center stage. Then I took a spin with Rails during my startup days, learning the beauty of convention over configuration.
But it was five years working with old Perl that really drove the point home: the language doesn’t matter. The outcomes matter.
I spent those years on a top team of Growth Engineers dominating in the online travel space, beating out all competitors on SEO. We weren’t winning because we wrote better Perl 🤣 - we were winning because we obsessed over what actually mattered: search rankings, conversion rates, and the metrics that drove business results. The language was just the tool that enabled us to ship fast and iterate.
As long as the language enables the results you need, then it’s the right language.
The New Abstraction Layer
Now we’re in the age of LLMs, and the old Intellisense autocomplete magic feels like it’s been amplified by 100x. I can’t help but see the parallel to the move from Assembly to C - we’re reaching another level of abstraction.
Clear instructions in English to LLM agents will produce code. What we need to focus on are the outcomes: usability, conversion, errors, performance. Whatever it is that’s important for your business - measure that, not the lines of code.
The code never really was what mattered, and now it’s more obvious to more of us than ever.
What Actually Matters
When I think about what I’ve learned across all those languages and frameworks, the pattern is clear:
- Assembly → You had to think about every register, every memory address
- C → You could think about functions and data structures
- Java/Rails/React → You could think about architecture and patterns
- LLM-assisted coding → You can think about the problem itself
Each jump in abstraction let us focus on what’s actually important: solving the problem, not wrestling with syntax.
The language was always just a tool. Now that tool is getting smarter, and we’re free to focus on what we should have been focusing on all along - the outcomes that matter to our users and our businesses.