Writing software code is complicated. I accept that. But lots of people can do it. People write code successfully every day. Do we really need something as well thought out, as complex, as reusable and just plain brilliant as patterns to solve something as trivial as software development?
The real problem we all face every day is happiness, or finding other people to feel happy with -- that one special person or several dozen persons. It's hard, even for the most charming and well-socialized of us.
Think about how difficult it is for the uber-geeks. We don't like to say it out loud or read it as explicitly as this, but dating, dang, is tough for the geek crowd. Consider the fate of a man inclined to use pickup lines like, "I'll bet you've never seen an encryption key this long."
So the dating-for-geeks dilemma is the big problem close to home: doing what's necessary to satisfy the primal urge, to exchange details of one's life with a stranger over Italian food with mediocre merlot.
Why did such brilliant folks as the Gang of Four have to bother with solving software development problems when they could have solved the big magilla -- dating for geeks? (For any IT newbies or future dateless wonders reading this, the Gang of Four -- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides -- authored
The answer is, they didn't; well, not at first. But when they did, they became known as the bad boys (plus protocol) that every man hated and every woman wanted. Yes, folks, they did turn their brilliant minds to solving the problem of geek dating, and they did solve it.
With design patterns. Dating design patterns, that is.
The Gang's dating design patterns
Here are a few of those fabled patterns. These patterns show, even more than the Four's famous book, the genius of their pattern knowledge and the superiority of the scientific approach to social paired programming.
- Half Bad Boy Plus Protocol: Structuring one's appeal based on equal parts considerate gentlemanly attributes and "bad boy" behavior or facade.
- Cary Grant Helper: Originally called, "Pull out a chair, get the girl." The gist is that the classic gentlemanly behavior cannot be unappealing. He implements the Gentleman 1.0 specification.
- Carl Kassel Connection Pool: Create conversational object connection pool for use in entering conversational state with an interested listener, without taxing system resources.
- Interested Listener: Producing highly differentiated and desirable attributes by reversing the process and eliciting talk from the female. This is also much easier on system resources.
- Optimistic Persistence, a.k.a. Surprise Statefulness: Store small unique key data and creating impressed listener by retrieving it. Females consider retrieval of data regarding anyone but the date himself or any sports figure highly unusual in a man and, ergo, highly valuable and appealing.
- goto Guy: Becoming an expert technical resource for semi- or non-technical but toothsome coworkers. This approach is best backed up with a few Friendzone re-factorings or a Mediator. The goto Guy has been considered harmful but, clearly, in this case is very helpful.
- Decorated Visitor Honeypot: Establish an appealing environment for women to induce visitors -- with no on-the-fly use of system resources.
- Trojan Proxy: An extremely effective, low-risk, high-planning pattern for connecting through a third-party safe proxy. Strategies include children, pets, female friends and married male friends.
- Unexpected Resource God: Maintain a large pool of resources women typically need, and create a connection through replying to requests or by broadcasting a list of resources. A large rucksack is recommended.
- Encapsulated Big Fat Opening: Creating a sandbox environment for a female to request the pleasure of your company while still claiming encapsulated intentions.
- Container-Managed Dating: How to use commonly available online dating containers to achieve maximum sessions with less time and effort and an array of services you don't have to write yourself.
If you prefer a diagram, you can see it here.
Help from Christopher Alexander
Clearly, these guys have come up with something profound. However, lest we give them an undue share of the credit, I want to clarify that the Gang actually got a little help from the patterns precursor, Christopher Alexander.
This comes from his work in standard patterns much later on, however. Christopher Alexander's personal diaries, luckily discovered in a garage sale in Poughkeepsie just months ago, show in his early years a painful yearning for the precision he loved so dearly in the sciences:
"Kathy turned me down. I find it frustrating that women do not perceive and appreciate the inherent elegance of simply sitting on a park bench for a date rather than engaging in the external complications of dinners and movies. But perhaps this is my fault. The same thing happened with Julie, Jeannie, and Sunita, and it is possible that this is a recurring pattern. If only there were also an identified context relationship and a solution for this problem."
Later, Alexander's perceptions improved, but without successful implementation, and he wrote:
"In short, I believe that this Saturday night I will be playing Dungeons and Dragons again. This is a recurring pattern in my life, ostensibly perpetuated by my pocket protector which Martin insists puts women off, and by my utter refusal to engage in interests outside of writing classic books on architecture. The larger patterns embed them, and the patterns of the same size that surround it, and the smaller patterns which are embedded in them, and so on like those Russian stacking doll thingies, form a complex pattern mini-architecture. I do hope that tonight I shall have better powers than last time, when I was a wounded dwarf with the mystical powers of a doily."
However, as Alexander worked on the project, his efforts came to fruition as he standardized and systematized his behavior. He wrote about the results, saying:
"I ran the entire program today, Saturday April 5th. Got up and got dressed in the Decorator suit, then hit the antique stores (Exposed Accelerated Collector). Had brunch with Lucy and Cindy and got Cindy's number, though Lucy called later and asked me to teach her to ski (Big Fat Opening). Did the volunteer work for Humane Society 2-4 and got to know Leslie; am working on her from the Trojan Facade angle and am planning for her to invite me camping over Memorial Day. Finally, implemented Interested Listener on date with Sonja with spectacular results. Am discovering more patterns and strategies every day but think IL is most effective. More later; she just came out of the bathroom."
So, what happened to the dating design patterns?
You're probably thinking, "All right, they're geniuses, and they probably got, um, dates, several times a day. Why didn't they publish that book instead of the one about software design patterns?"
That's an excellent question.
The answer will make you shake in your shoes. Or, possibly, you'll just think, "Hmm, good point."
The sweet smell of success turned bitter. The Gang realized that with all the, let's say, "dating," they were doing, their grades were slipping.
They were no longer as interested in computer science.
They had more than once considered careers in marketing.
They realized that, while it is extremely pleasurable to have the dating world by the tail, there were Higher Considerations. The scientific advancement and the economy of the world would be destroyed if all geeks were out dancing on Saturday nights instead of debugging.
Imagine a world where all these geek guys have social lives … and families … and work 8-5 and no weekends. They'd never bother spending their free time on open source projects. They'd generally treat programming like a job and be way more interested in other things.
Scientific advancement would go boink, right down the tubes.
So, they had a meeting and decided that the knowledge was too dangerous. They had to severely curtail their activities and get back to work. Under no circumstances could they release the information to the hundreds of male undergrads who had been clamoring to read these mysterious design patterns.
Over the next month, they put together a distracter project, just applied the same principles to software with a little fundamental OO thrown in, and then published their Design Patterns for software.
Now keep in mind, this was just a distracter project. They wanted the dogs off their scent. They had no idea that the patterns would become so big. But they took it all in stride and realized that, "OK, the patterns were legitimate for software, too."
Here's a little-known fact from Jimmy the Freshman, who knew the Gang in college: Model View Controller (MVC) as a last-minute filler since John insisted that they needed one more pattern for people to believe this was real. They were running on fumes and Red Bull when they came up with that one.
So, my friends, the Gang buried their brilliant Dating Design Patterns for the good of humanity.
OK, but why are the patterns available now?
Frankly, I think it was Ralph who wanted to reconsider publishing them. He has his own reasons. Maybe the Four saw that the Internet had led to amazing changes in society and that advances were being made while 80-hour weeks were no longer de rigueur among the geek set. Or, maybe they discovered that they had forgotten to consider the effect on future generations if the geeks didn't reproduce.
So, they thought, what the heck, and you can now buy the book freely.
You just never know how things get started, do you?
About the author of this column: Solveig Haugland is the author of Dating Design Patterns. She had a little too much to read one night and the next day, she had the idea for the book. These things happen, even in the best of families. You can read more about the book at datapowertools.com or at the book's site. Honestly, the book is a real book, available at CafePress.com and Amazon.com and coming soon to ThinkGeek.com.