Markdown - The Coolest (and Most Expensive) Programming Language

| 2 min read

Markdown: The Coolest Programming Language

Maybe you haven't noticed, but Markdown is the coolest language out there. It’s also probably the most inefficient,expensive, and environmentally taxing one we've ever invented. You might argue that Markdown isn't a programming language, much like people used to say about HTML. But stay with me.

A Tale of DevOps

At Grafana, we deploy everything in Kubernetes. We're talking dozens of clusters, thousands of namespaces, and millions of pods. Like most modern shops, we use GitOps, a fancy name for ensuring our clusters are constantly in sync with a Git repository.

Our tool of choice is Flux. It keeps the "source of truth" and the cluster synchronized. But sometimes, you’re in the trenches. You need to test something manually in the cluster right now, and you don’t want Flux to overwrite your hotfix. To do that, you have to add specific annotations to the workload so Flux ignores it. To simplify this, we’ve always had a simple shell script. It was boring, it was fast, and it worked. It looked something like this:

./ignore.sh  --cluster bar --namespace foo --reason "testing this risky change"

The AI productivity fever

AI is everywhere,literally. Every day I see a novel way to squeeze every drop of "juice" out of it: skills, commands, prompt libraries, Git as a graph database... In the end, these are often nothing more than Markdown files. Plain text. The king is naked.

The other day, I noticed a new command in one of our ops repositories: .cursor/commands/flux-ignore.md. I was amused to find a single .md file that looked like this:

# Flux Ignore Command
This command annotates Kubernetes resources so Flux won't overwrite them.

## Required Parameters
1. **Context** (`--context`): The cluster context.
....

For each resource in the list, run the following kubectl annotate command:

```bash
kubectl annotate --context=<CONTEXT> --namespace=<NAMESPACE> <Kind>/<Name> \
... 

This is clever. And terrifying.

By writing a "cooking recipe" in Markdown, the developer didn't have to write a single line of logic. They didn't have to handle flag parsing, string manipulation, or error states. They just gave the "intent" to an LLM agent and let it figure out the kubectl commands.

Think about the execution stack here:

  • The Old Way: A single HTTP call to the Kubernetes API. Execution time: ~10ms. Energy cost: Negligible.
  • The New Way: Multiple round-trips to a data center, billions of parameters being activated, tokenization, and expensive GPU inference. Execution time: ~5-10s.

We’ve traded a deterministic script for a probabilistic "vibe." It’s slower, it’s non-deterministic, it’s verbose, and it’s definitely not "green." I had to laugh, we already have a script for this, and a terminal multiplexer is probably still the fastest way to add those annotations.

Why I'm Bullish

Vibe-coding an app is a thing of the past; you still have to test it, patch it, and maintain the underlying code. But Natural Language Scripting (NLS) is different. We are starting to treat Markdown as a high-level "Source Code" that compiles directly into machine action via an LLM "Runtime." We’ve reached a point where we've decided your time is more precious than a handful of tokens... or the environment.