The End of Language Wars?
I remember not too long ago the many debates over which language to use for data / analytics - R or Python? There were many passionate arguments for why you should choose one over the other. Today, that dust has largely settled. R is more niche and is used for statistical analysis and by those who love the language. Python is used for general programming, machine learning, data manipulation, etc. Python became the glue and the one language that is just about universally supported in the data / analytics space.
The Impact of GenAI
I have been using GenAI (primarily Claude Code) to build multiple applications for about 9 months. One key takeaway that emerged is the GenAI tool (Robot) works best when it understands specifically how you want to implement something. It's great at coloring by numbers once you've drawn the picture. Or filling in the details once you've laid the foundation and put up the framing. It's less capable when given a blank sheet of paper.
How does this impact languages? Those languages that are highly opinionated are better suited for GenAI than those that have many options for accomplishing the same thing. I learned this firsthand when building templated HTML in TypeScript. The Robot's first iteration was to create highly complex HTML strings, complete with CSS and scripts, directly in the TypeScript files. The Robot's second iteration, with some steering from me, was to use separate HTML files that accepted templated inputs. I figured something was up when packages like Handlebars and Mustache appeared to be inactive (late 2025 timeframe). Which was when I realized the correct answer was TSX files, which embeds templated HTML directly in TypeScript files.
I am relatively new to building TypeScript applications. A seasoned user would likely have told the Robot to build directly in TSX files, skipping the other iterations. That said, even after the pattern was established, the Robot would occasionally build HTML text strings in the TypeScript files or assume I was using React because TSX = React. It took great effort to keep the Robot on track and follow the design patterns I had established within the application.
The End of Bikeshedding
I only recently learned this term, but in the GenAI world it becomes very important. For example, most of us are opinionated about how our code is formatted, but if we all agree on a single formatting standard that is "good enough" our lives become easier. The same is even more true for the Robots. We should stop debating minor issues and focus on creating standardized solutions to common problems. The more we can agree on singular good enough design patterns / recipes, the better the Robots will perform. If I want to do X in language Y, then have one way to do it and have the Robot fill in the details.
What Language Then?
JavaScript, with its numerous frameworks and flavors of the year, might be the worst at solving this problem. Ruby on Rails is gaining new traction due to its rigidity on how to do things. But the language many are reaching for is Go. These 2 posts present the argument in favor of Go and are worth the read: Use Boring Languages and Just Use Go.
I primarily used Python and SQL over the last 12 years since my focus has been on data engineering through data analytics. I do like TypeScript and wish it was more widely used in the data space. While I have not used Go, I intend to try it in my next project. Perhaps Go, with its simplicity and versatility, can be the language that's just "good enough" for most of us.