A fun tweet last week says
Some people, when confronted with a problem, think “I know, I’ll use multithreading”. Nothhw tpe yawrve o oblems. (Eiríkr Åsheim, 2012)
which is pretty funny if you remember the quote it’s based on,
Some people, when confronted with a problem, think “I know, I’ll use regular expressions”. Now they have two problems. (Jamie Zawinski, 1997)
But it turns out that quote itself is hard to attribute, and has a history rooted in raging usenet (remember usenet?) battles of the early 90s. With various permutations:
Some people, when confronted with a Unix problem, think ‘I know, I’ll use sed.’ Now they have two problems. (Unix Haters Handbook, c.1992)
If you have a problem and you think awk(1) is the solution,then you have two problems. (David Tilbrook, 1989)
Back in the 1990s, if you wanted to interview a C++ programmer, you’d ask him to write a string class. My programming homework counted words or wrote versions of grep(1). Perl made one form of regular expressions popular with the masses.That’s what you cut your teeth on. Now most every language you learn to program in has a Unicode-compliant standard string library which most people don’t think much about anymore. For most of us, it’s a solved problem. (Though there are fun exceptions.)
In the 2010s, everyone is worrying about threads. We have reactive programming, software-transactional memory, purely functional programming, actors and state patterns, task libraries, people who say ‘to hell with it’ and still get huge performance, and who knows what else lurking in the wings. Maybe in another 20 years we’ll look back fondly on the fun and silly battles over multithreading models, like we smile at the quotes about sed, awk, and regular expressions.
And it’ll be time for another generation of “Some people when confronted with a problem…” quotes.