Yesterday, I read a middling article, How to Trick the Guilty and Gullible into Revealing Themselves. I wasn’t entirely fascinated by the stories about plunging arms into boiling water, or of brown M&Ms and concert venues. But then the author revealed why Nigerian 419 scammers use such blatantly ridiculous letters to troll for victims:
If the Nigerian scam is so famous, why would a Nigerian scammer ever admit he is from Nigeria?
This is a fascinating question. Why do their letters have obvious spelling mistakes and impossibly florid prose? The answer is economic. While sending the letters is essentially free, talking to prospects is expensive, and the scammer’s time is limited.
So the scammer is not concerned with the response rate, but instead is concerned with the conversion rate for those prospects who respond. In other words, false positives suck.
The ridiculously obvious letters help: Only the most trusting, greedy, and gullible people will respond to such insanely obvious letters, and there is a good chance of extracting money from such people. If the scammer used a more plausible pitch, people like you and I might respond and then back out of the scam later, after the scammer had spent valuable time wooing us.
But if all other things are equal, is there any similarity between a new programming language and a 419 scam? Sure there is.
why a new language is like ten million dollars in a nigerian bank
When you’re promoting a new idea, early adopters are gold. But early doubters are poison. When you’re launching, you’re vulnerable. A single “I tried Raganwald-C, and Here’s Why It Sucks Sweaty Goat Testes” blog post on the front page of Hacker News can sink you. False positves suck for new programming ideas just as much as for 419 scams.
You want to avoid people actively hostile to your idea, and you also want to avoid shallow dilettantes. An apathetic user won’t write such vituperative blog posts, but they also won’t take the trouble to really understand your language’s “big idea,” and they will complain that your new language isn’t very good at doing the thing they’ve always done, the way they’ve always done it.
The very best thing is that the first few folks to try your idea have a very high willingness to adopt a new point of view. You’re looking for people who are a little like the Nigerian 419 victims. They should be trusting, be open-minded, and be greedy. You don’t want people trying to save themselves from extinction, you don’t want people trying to be 1% better, you want people greedy enough to hope your idea makes them an order of magnitude better.
You know… programmers too lazy to keep struggling with the old tech and with the hubris to believe they can adopt entirely new tech.
We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.
–Larry Wall, Programming Perl (1st edition)
So how do you find these lazy programmers with insanely optimistic hubris? Act like the 419 scammer. Be florid. Make impossibly bold claims! Use linkbait blog posts. And especially, design your new idea or language around something so insanely different that it weeds out the dilettantes at a glance.
Those people would go ahead and write books about it, and explore wild things like using
What the language needs is people using ClojureScript to write Clojure in the browser, and having a “funny” syntax selects for people willing to invest in a new idea.
My thesis is that in early days, you need to select for people willing to invest in a new point of view, and having a glaringly self-indulgent features–like funny syntax or a completely new model for managing asynchronicity–is helpful to keeping the concentration of early “wows” to early “meh’s” high.
Which leaves me offering some free advice: There’s plenty of room for new programming editors. If you’re going to do it, don’t be afraid to ignore “vi” and “emacs” compatibility modes.