Let's Talk About Programming Languages – A Novel Dialogue


Preface

Following on from the previous martial arts-themed article, this time I asked AI to present my understanding of programming languages in the style of a novel dialogue. Can you guess which famous Japanese author I referenced? His hallmarks: cats often appear, it often rains, he loves jazz, there’s a sense of romance but never passion, and a faint melancholy pervades. Quite different from the martial arts piece, right? Haha.

Link to the Wuxia Chapter: Let's Talk About Programming Languages: The Wuxia Chapter

Link to the Prose Chapter: Let's Talk About Programming Languages — Prose Edition



"Listen to the Code Chanting"

"Listen to the Code Chanting"

On a Tuesday afternoon in October, the rain was like a giant grey filter, silently shrouding the city. I was in the kitchen cooking pasta, the water bubbling away, while Stan Getz’s saxophone solo played on the radio, sounding like a fish swimming in the deep sea—lonely yet elegant.

She was on the sofa in the living room, holding a calico cat named "Mackerel", staring at the dense code on my laptop screen. She wore a loose grey jumper, the sleeves so long they covered her hands, leaving only slender fingers exposed.

"Hey, Yucheng," she suddenly spoke, her voice drifting as if from afar, "What are these things, really?"

I stirred the pasta with long chopsticks, trying to judge if it was al dente. "That’s code. It’s a language for telling machines what to do."

"A language?" She tilted her head, hair falling over her shoulder. "Like how we talk? Like if I say, 'I want cheesecake,' and you go buy it?"

"Sort of, but stricter." I turned off the hob and poured the pasta into a colander, steam rising and fogging my glasses. "Human language is full of ambiguity. When I say 'whatever', I might mean ramen, or I might mean I don’t want anything. But machines can’t do that. They need absolute precision."

She put down the cat and came to the kitchen island, watching me mix olive oil into the pasta. "So why are there so many kinds? I see C# here, Python there, and TypeScript too. Aren’t they all just talking to machines? Why not use one language, like Esperanto for the world?"

A good question. I took a beer from the fridge, handed her one, and opened one for myself. The foam overflowed, running over my fingers, cold.

"Because time flows differently," I said. "Each language has its own understanding of time."


On C# and Frozen Time

I took a sip of beer, feeling the bitterness spread across my tongue. "Take C#, or C++. They’re 'compiled languages'. It’s like making a vinyl record."

"A vinyl record?"

"Yes. Before the music is played, it must be recorded, mixed, pressed. That’s compiling. The programmer writes all the logic, then hands it to the compiler—a strict producer. The compiler checks every note, ensuring no mistakes. Finally, it presses everything into a record (an executable)."

I looked out at the rain. "When you put the record on, it doesn’t need to think. It just spins. So it’s fast, very fast. All the decisions were made long ago. That’s the world of C#. It’s like a meticulously structured building, or a fully scored symphony. Although C# has something called the CLR, like an invisible butler in the machine who does the cleaning (Garbage Collection), at its core, it’s 'frozen time'."

"Sounds lonely," she said. "If all the decisions are made, is there no room for change?"

"Almost none. If you want to change a note, you have to press a whole new record. That’s the price."


On Python and Flowing Improvisation

She gently shook her beer, listening to the liquid slosh. "What about Python? I see you use it for those mountains of data."

"Python is different. Python is like a live jazz pianist in a bar." I pointed at the radio. "He has sheet music, but he plays as he reads. That’s 'interpreted'."

"Plays as he reads?"

"Yes. Python isn’t pressed into a record. There’s an interpreter standing by the pianist. You write a line, the interpreter reads a line, then tells the machine: 'Hey, play a C major chord.' Then reads the next line: 'Now, something a bit sad.'"

"Isn’t that slow?" she asked.

"Much slower. Orders of magnitude slower than vinyl. Because the interpreter has to reread and retranslate every time. But it’s free." I turned to look at her. "If you want to change the tune, you don’t need to press a new record, just tell the interpreter: 'Change it up.' It’s instant. It’s good for exploring, for searching for answers in an uncertain world. That’s why AI people love it. Because thinking itself is improvisation."


On JavaScript and the Shapeshifting Monster

"And this?" She pointed at a line of console.log on the screen. "JavaScript."

I sighed, plating the pasta. "JavaScript… it’s a strange one. If C# is an architect, Python a pianist, then JavaScript is a lump of clay. Or a shapeshifting monster from the movies."

"A monster?" She laughed, crow’s feet at her eyes.

"It was born in the tiny cage of the browser. At first, it was weak, only able to do simple things like change button colours. But it had no skeleton (weak typing). You tell it, 'You’re the number 5,' it says yes. Next second, 'You’re the string 5,' it also says yes. No principles, but infinite malleability."

I sprinkled parmesan on the pasta. "Later, someone gave it an engine (Node.js), and it escaped the cage. Now it’s everywhere. But because it’s so easy to morph, so easy to break, people invented TypeScript."

"What’s TypeScript?"

"TypeScript is a suit. A tailored, sharp suit." I gestured. "People put this suit on the lump of clay, forcing it to look human. Through this suit, we pretend it has bones, has principles (strong typing). But if you peel off the suit, it’s still that chaotic, vibrant clay. That’s the modern web: chaos, in a suit."


On C++ and the Abyss

We carried our plates to the small round table. The rain kept falling, dusk settling in, the only light from the kitchen lamp.

"There’s one more you didn’t ask about, but it’s the foundation of it all." I twirled some pasta. "C++."

"C++?"

"It’s dangerous. If C# is a self-driving Tesla, C++ is a Formula 1 car with no brakes, no airbags, even a surgeon’s scalpel."

I looked at the basil on my plate. "In C++, no one helps you. You manage every byte of memory yourself. You borrow space from the system, and when you’re done, you must return it by hand. If you forget (memory leak), that space is lost forever, until the computer crashes. It’s the language for building legends—the flashiest games, the deepest engines. But it demands you be absolutely clear-headed, absolutely ruthless. Like deep-sea diving: make a mistake, and no one can save you."


Epilogue

She ate in silence for a while. The cat jumped onto her lap, purring.

"Yucheng," she finally said, "It sounds like all programming languages are some kind of compromise."

"Compromise?"

"Yes. C# sacrifices freedom for safety, Python sacrifices speed for freedom, TypeScript sacrifices authenticity for order. Like life, isn’t it?"

I paused, looking at my beer can. Droplets condensed on the aluminium, forming a perfect circle on the table.

"Maybe," I said. "We’re always searching for the perfect language, one that transmits meaning without loss, fast and free, safe and real. But it doesn’t exist. We can only use these imperfect tools to piece together a world that just about works."

"Like this pasta," she said. "Not perfect, but on a rainy day like this, it’s good enough."

"Yes," I said. "Good enough."

The saxophone on the radio stopped, replaced by a piano piece. The rain kept falling, as if it would never end. In the cracks of this world of zeroes and ones, we quietly ate our pasta, feeling the warmth and resignation of the moment.

This is programming languages: about searching, about loss, and about the small effort to build order in an imperfect world.


  • first edition time: 2026-02-15
  • last edit time: 2026-02-15