Very esoteric title, but the message got me thinking about my personal marketing crusades.
For example the D programming language. While it actually targets C++, selling it to C++ programmer is tough, because they are unlikely to switch. It is probably easier to sell to people researching Scala vs Clojure vs Go.
This is my exact experience. Another way to put it is that changing involves two decisions: Whether to change and what change to make. Therefore, there are two sales to make to someone who hasn't decided to change, and only one sale to make to someone who has already decided to change.
Given a limited amount of time and energy to invest, you will get the maximum return when you are only trying to make one sale at a time.
We can make up numbers all day, but let's pretend I'm a D Evangelist with a 20% close rate. Given 100 prospects who haven't decided to switch languages, I get 20% of them to agree to switch, and then 20% of those to agree to use switch to D.
That's only 4%. Whereas if I find 100 people who are looking for a new language, I can get 20% of them to switch to "D." On the whole, it makes sense for me to let other mechanisms convince people to make a change, and put my energy into explaining why D is the right change to make.
That is a perfect example, I think focusing so heavily on trying to target C++ users has limited D's success. That also gets me thinking about how the other big problem with D is actually a similar issue. Keeping the compiler closed source means D basically does not exist outside of the popular platforms (the herd). People outside of the herd are the ones most likely to try a new language, but they don't have the option. The notion of "we'll just support the major platforms since that's where most potential users are" isn't necessarily true, most of those people are not in fact potential users at all.
There are two open-source D compilers that track the reference front-end, which is also open source. (Thanksgiving wish: this misinformation will cease to exist one day.)
I am aware (although only gdc was around back when I cared, and it didn't compile), but it still poses the problem. People expect to be able to download and use the "main" or "primary" implementation or whatever you want to call it. The reason I don't use D is because when I wanted to try it, I couldn't.
For example the D programming language. While it actually targets C++, selling it to C++ programmer is tough, because they are unlikely to switch. It is probably easier to sell to people researching Scala vs Clojure vs Go.