Blog 4 min read

Chasm Theory: Exploring C Longevity, C++ Rebirth & Python's Rise

Share this article
Chasm Theory: Exploring C Longevity, C++ Rebirth & Python's Rise

How many times have you read “C++ is dead” or “Is the C programming language still used?”, when in reality they’re still very popular.

And how many times have we read “WOW, this newcomer programming language is the best”, but after a few years nothing really happens and the new language declines in popularity. However, there are some exceptions — the most interesting one being Python, which rose from a not widely used scripting language to a very popular programming language.

What could explain the longevity of C, the rebirth of C++, and the rise of Python?

Let’s look at the crossing-the-chasm theory from Wikipedia, which can help us answer the question above.

In Crossing the Chasm, Moore begins with the diffusion of innovations theory from Everett Rogers, and argues there is a chasm between the early adopters of the product(the technology enthusiasts and visionaries) and the early majority (the pragmatists). Moore believes visionaries and pragmatists have very different expectations, and he attempts to explore those differences and suggest techniques to successfully cross the "chasm".Crossing the Chasm is closely related to the technology adoption lifecycle where five main segments are recognized: innovators, early adopters, early majority, late majority and laggards. According to Moore, the marketer should focus on one group of customers at a time, using each group as a base for marketing to the next group. The most difficult step is making the transition between visionaries (early adopters) and pragmatists (early majority). This is the chasm that he refers to. If a successful firm can create a bandwagon effect in which enough momentum builds, then the product becomes a de facto standard. 

Crossing the chasm diagram

Moore demonstrates that in fact, there are cracks in the curve, between each phase of the cycle, representing a disassociation between any two groups; that is, "the difficulty any group will have in accepting a new product if it is presented the same way as it was to the group to its immediate left." The largest crack, so large it can be considered a chasm, is between the Early Adopters and the Early Majority. Many (most) high tech ventures fail trying to make it across this chasm.

The Early Adopters are the rare breed of visionaries "who have the insight to match an emerging technology to a strategic opportunity,… driven by a 'dream'. The core dream is a business goal, not a technology goal, and it involves taking a quantum leap forward in how business is conducted in their industry or by their customers… Visionaries drive the high-tech industry because they see the potential for an 'orderof-magnitude' return on investment and willingly take high risks to pursue that goal.

The Early Majority are pragmatists… "they care about the company they are buying from, the quality of the product they are buying, the infrastructure of supporting products and system interfaces, and the reliability of the service they are going to get… Pragmatists tend to be 'vertically' oriented, meaning that they communicate more with others like themselves within their own industry than do technology 2 enthusiasts and early adopters… It is very difficult to break into a new industry selling to pragmatists.

Even though crossing the chasm is more related to selling a product, it can also be applied to programming language adoption. Indeed, for each newcomer language, the innovators and early adopters are its first advocates, but many new programming languages fail to convince the early majority and can’t cross the chasm.

C and C++ crossed the chasm 40 years ago and are very popular. And it’s very difficult to convince the early majority and the late majority to migrate from C/C++ to another language. Many times I’ve read that D, Go or Rust will kill C++, but nothing happens: these newcomer languages still have many difficulties crossing the chasm.

Python is the best example of a language that crossed the chasm: it’s now very popular, having grown from a scripting language into a popular, versatile language. Why did it happen for Python?

Let’s go back to this assertion from Moore:

According to Moore, the marketer should focus on one group of customers at a time, using each group as a base for marketing to the next group. The most difficult step is making the transition between visionaries (early adopters) and pragmatists (early majority).

The innovators and early adopters did a good job as advocates and supporters of the language. Indeed, from the beginning there was plenty of documentation, guides, tutorials and more. Plus, the developer community is incredibly active — which means any time someone needs help or support, they can get it in a timely manner. Furthermore, Google adopted Python heavily back in 2006, and they’ve used it for many platforms and applications since. Having a corporate sponsor helps a lot in making a language popular.

Special thanks to the early adopters of Python, who contributed a lot to making it a successful language — and good luck to the early adopters of the other newcomer programming languages.

Share this article