Pokémon for Programmers: The Evolution of Char to String
Description
A screenshot of a tweet from user Jen Gentleman (@JenMsft). The tweet, posted on September 24, 2020, reads: "If pokemon was written by programmers charmander would evolve into stringmander". The image has a dark background with white text. This is a clever pun that combines the world of Pokémon with fundamental programming concepts. In many programming languages, a 'char' is a data type representing a single character, while a 'string' is a sequence of characters, essentially a more complex structure built from chars. The joke imagines a programmer-designed Pokémon world where the evolution from Charmander (char) to a more advanced form would logically be "Stringmander" (string), playing on the idea of simple types evolving into more complex data structures. It's a niche, witty observation that resonates well with anyone familiar with basic data types
Comments
18Comment deleted
And its final evolution would be StringBuilder-mander, because immutable strings are a performance bottleneck
In the globalized codebase, Charmander doesn’t evolve into Charmeleon - he gets re-encoded into UTF-32mander and suddenly every pokéball needs 4× the heap
Next thing you know, Pikachu evolves into NullPointerException after trying to dereference itself during a thunderbolt - at least that explains why Ash's Pokemon never seem to follow expected behavior patterns in production
This is the kind of type evolution that actually makes sense in production - unlike that time we tried to evolve our monolith into microservices and ended up with a distributed ball of mud. At least with Stringmander, you get proper memory allocation and don't have to worry about buffer overflows when it learns Flamethrower
Final evo? JSON.stringify(Stringmander) - because no type survives the API roundtrip unscathed
In our repo, Charmander can’t evolve into Stringmander without an explicit toString(), a Unicode RFC link in the PR, and a rollback plan for Charizard’s UTF‑16 surrogate tantrums
Enterprise Pokédex: Charmander evolves into Stringmander the moment someone changes the “type” column from CHAR(1) to VARCHAR(255) - now even fire is a free‑text field
But it was written by programmers Comment deleted
Charmander -> char* mander Comment deleted
-> string mander -> string* mander Comment deleted
It should be smth like Charmander - Stringmeleon - Arrayizard Comment deleted
StringBuilderizard Comment deleted
Into which dict it should evolve afterwards? 🧐 Comment deleted
-> string ** mander Comment deleted
Dictmander<Keymander, Valuemander> Comment deleted
CharSequencemander Comment deleted
char[ ] Comment deleted
🤣 Comment deleted