Is This The Best Programming Language for Vibe Coding?

Is This The Best Programming Language for Vibe Coding?

Exploring the ideal programming language for vibe coding, where developers design and review code generated by AI agents.

2025-09-29

TL;DR

It’s compiled languages that have lots of packages and an active community

The Future is here

Yep, it happened so fast some people missed it. Somewhere in 2021 I was so happy to be on the gh copilot preview. Even then it was a powerful tool (guess we should’ve known) and now the AI revolution/bubble is at full speed. If you can’t relate to the next sentence, you’re in trouble.

We are not coding anymore. We’re running agents that generate software for us. We design the software and review the code.

And yet, it still takes time, effort and skill to get the job done.

The harsh truth about vibe coding

So sometimes when vibe coding….

  1. Code is messy and inconsistent
  2. Hard to follow design (even when a clear design is given)
  3. Models invent unnecessary constraints
  4. Models invent unnecessary features
  5. Unreachable code
  6. Poor definition of done
  7. “Cheating” (the user wants the tests to pass so mock everything)
  8. Badly defined interfaces
  9. Jumping to conclusions (Of course :rocket-emoji: I see the issue on line 56 !)
  10. Inconsistent style

I’m sure there are more of those going through your head as you are reading this.

And yes, the even harsher truth is that humans do all of those too. After all models learned from humans..

So who’s the better Software dev ?

Definitely by far the mediocre developer. There was a blog post about it somehwere before the 5h1t hit the fan. The one who use proven methods and tools to their advantage However, some of these tools have not yet been invented. Yes, yes.. you use Cursor or Windsurf or some AI editor tool. But the harsh truth is that most AI models write a lot of bad code and can’t just yet compete with a human mind (maybe they will though). So, the tools we can count on now are:

  1. Linters
  2. Compilers
  3. Vulnerability scanners
  4. Formatters
  5. Code analyzers Everything that is not AI, to complement your sycophantic new wingman.

Does your code repeat itself too much? Try a DRY code analyzer. Formatting issues? Use a linter.

I believe we should be seeing more static code analyzers in the near future that aren’t using LLMs.

The Best Language For Vibe Coding

As I’m writing these lines in October 2025 (in my opinion) - Typescript.

  1. Enjoy the flexability of JS if you need it
  2. Discover a lot of issues in compile time
  3. Have many battle tested community libraries you can use
  4. Use great linters with many strict rules
  5. Define interfaces and models in code

And - Yes ! Those also apply to humans. But, and it’s a big but, humans can understand the thoughts and connections beyond the code. Our mind completes the information somewhere in our heads and makes us understand. So, for a human not having everything written down is pretty much OK. For a bot, if it’s not written down it has to complete it on its own - which means that for some percentage of the time it’s going to hallucinate.

Here are a few things to pay attention to

  1. Don’t let the model use any or disable the compiler because it wants to get the job done
  2. Run the linter, compiler, unit tests and code scanners often.
  3. Verify the libraries it chooses to use. Is it deprecated? How many dependencies does it have?
  4. For each task try to define terms for what Done means
  5. Keep tasks as small and focused and don’t let the model do things “along the way”

Deleting More Code Than Writing It

So that’s the state of vibe coding in 2025: a strange dance between you, your tools, and your slightly overeager robot assistant. More reviewing, more deleting. Will the machines take over? Well, Maybe… But until then, let’s just enjoy the chaos, lint everything, and see how many times we can convince the model not to use any.

For the future, I’m guessing we’re going to see a lot more automation tools that can analyze code and are NOT LLMs.

What do you think? Do you agree? If you have an idea for a new tool, share it with us!