March 5, 2006

Marketing? Why Do You Use Python?

Well, the cat's among the pigeons and no mistake. Guido van Rossum recently received an email from John Sirbu that was basically a plea for more Python evangelism, to counteract the percieved successes of Ruby on Rails (RoR). Guido chose to republish this on his Artima blog under the title Marketing Python - An Idea Whose Time Has Come, although the word "marketing" doesn't appear in the original email.

Now, I happen to believe in this case that Guido is right, and that Python would indeed benefit from some serious marketing activity. Unfortunately it appears that the storm of responses (the count was almost at 70 last time I looked) has been generated mostly by people who have little or no idea what marketing is, and if they did would probably hold up their hands in horror and run away screaming "shameless commerce".

Some respondents appeared to find the whole idea of marketing offensive, and in so far as that's what led to Java's current popularity I can agree, because I happen to feel that Java has cost the industry a lot of money with its unnecessary straightjacket (see Java is Object-Oriented COBOL). But most people who took up the cudgels by commenting on Guido's blog (I deliberately avoided doing so myself) simply roll out the many reasons why Python is technically superior to Ruby/Perl/Java/my favourite language. These people are even more clueless than me about what drives the adoption of a programming language.

The key insights into promotion by marketing come from the realisation that you don't sell people things by focusing on the features of your product -- you have to explain the benefits instead. Sell the sizzle, as they say, and not the sausage. Anyone who is seriously interested in promoting Python should view Seth Godin's video presentation in the "Google Author Series". Seth is a marketing professional with a long history in the high-tech world, and his blog is worth keeping an eye on for occasional flashes relevant to the technical world. A valuable insight from the presentation is that word-of-mouth is the most effective way to promote anything: what we need is to tell everyone who asks (and even people who don't) how effectively Python can meet their needs. Clients aren't interested in whether I'm using Python, as long as I can help them solve their problems cost-effectively and in acceptable time.

This puts me in mind of a recent thread on comp.lang.python which started out as a discussion on whether it was a good idea to talk about Python as an interpreted language. Before it devolved into the inevitable discussion about what exactly constituted an interpreter and how all languages were interpreted because the CPU interprets instructions ( is sometimes an object lesson on topic diversion), there was a huge discussion about whether using the word interpreted to describe the language would engender negative perceptions.

From a marketing point of view, it really doesn't matter whether Python is an interpreted language or not. People want to know whether it's an effective way to solve their problems, so while interpreted is insignificant to meaningless from the point of view of many adopters, widely portable might not be. Of course the feature (interpreted) and the benefit (widely portable) are opposite sides of the same coin, but the difference in emphasis is crucial from a promotional point of view. Ultimately a potential adopter wants to know "What's in it for me?"

From a marketing point of view it seems to me that some of the most important aspects of the Python language are as follows:
  • Easy to learn
  • Easy to apply to a wide variety of problems
  • Installed on every significant operating system
  • Great networking support
  • Large applications base to draw from
  • Vibrant, helpful community
  • Integrates easily with other languages
  • Excellent literature from a range of publishers
Note that here I haven't mentioned any language features at all, but the points should be interesting to anyone considering adopting Python because they speak to the user's needs. There are doubtless other benefits, that I hope readers can help me add to the list. Clearly all these things have to be true to be effective in marketing the language, and also there musn't be equally important disbenefits that haven't been mentioned - if Python enthusiasts tried to encourage adoption by lying about the language, even by omission, that would quickly become counter-productive.

One current problem seems to be that a lot of Python enthusiasts in the web world are concerned that another language (another rule of thumb: don't mention the competition by name) is getting more than its fair share of the buzz. They are trying to counter that buzz by focusing on Python's technical superiorities, without realising that the adopters of the "competition" aren't bothered about technical issues. They have found a solution for a range of problems, and they are adopting it to solve those problems.

It may be that as they try to extend those solutions they will come to realise that their adopted technology doesn't have the depth to extend in all the ways they want it. At that point the Python needs to be ready to reiterate the benefits of Python, and to show how it can be used to extend their existing solutions rather than forcing them to reqrite from scratch. Since the web world is already well-used to mixed-language and mixed-technology solutions this should be a breeze.

Ultimately the point of this blog is to try and help Python users to become more effectve advocates for their favourite language. We have a vested interest in seeing Python more widely used, so let's forget the features when we're discussing "Why Python" and focus on the benefits.


Jesse said...

Very, very well said, and agreed on all points. Python could user marketing and evangelism - and attacking other languages, or sticking to pure technical merit (ie: my syntax is better than yours) generally doesn't convince those in managerial roles that the language is effective.

Simple things like RAD development, and ROI have to be covered, success cases from high profile companies, example frameworks and applications for people to be able to leverage and showcase to those internally.


Jonathan Ellis said...

(The "java is oo cobol" link is broken and mistitled.)

André said...

Excellent post! I believe that a lot of noise is generated because, as the expression goes, "a little knowledge is a dangerous thing".

Marketing, like many disciplines based on social sciences, is a 'low entry level' discipline; the language used is English. (Programming, engineering and Physics by contrast are 'high entry level' disciplines; they require fluency in an acquired language.) For that reason, any pythonista with an opinion (however uninformed) will believe that he or she knows how Python should be marketed, based on their experience with the language. Unfortunately, most often they (including myself) have very little relevant knowledge about marketing as a professional discipline.

Marketing to a large audience often means creating an artificial "need" for a product, based on something that non-experts find attractive. I think that the iPod is a good example of such a product.

I believe that your list of the most important marketing points is excellent. The challenge for the Python community is, I think, finding the right way to communicate these points to a "general" audience. (People with the required high-level expertise to make their own decisions will not be swayed by this marketing approach; they will choose Python after finding on their own about the relevant language features which you suggest should be left out.)

Rob Cowie said...

Might there be some merit in enlisting the efforts of those who study, practise or otherwise understand the concepts of marketing?

Perhaps under the umbrella of an SIG, the PSF (forgive the acronyms.. all this talk of marketing has gone to my head) could attract technically minded marketing students to contribute their ideas. I know that at my university, there are several Masters degrees that encompass both marketing and some aspects of IT. Perhaps these students might be able to incorporate their work as part of a thesis.

Steve said...

There might, but I'd need proof that such a group was likely to help rather than hinder before I sanctioned it. In the past the PSF has tried to encourage similar initiatives (though not with groups having specific marketing skills) and little has come of them.

So once bitten, twice shy, but I'm not completely opposed to the idea.

David Goodger said...

Additional benefits for your list:

* Maximises programmer efficiency
* Easy to read & maintain

Ken Whitesell said...

My 'catch-phrase' for Python has been that "I'm at least twice as productive using Python as I am with any other language."

I not only say that, but then show how my solutions are written in less time, and usually with significantly less code. More importantly, I show how I can go back to code written 6+ months ago and pick it right back up where I left off.

That's what really grabs management's attention. Not talk about the features of the language, but how money is being saved by using the appropriate tools.

Catherine said...

Steve (& all other commenters), I'm not sure if you're already there, but we'd love to have you at the marketing-python mailing list!

I think we lack not so much an idea of what to say, but some shared resources to say it with; a customizable springboard talk, for instance, that we can use to promote Python in our own localities and professional circles. (Do you happen to have an intro talk you'd like to contribute to the cause?)

I'm sick of living in a community without a vibrant Python community! I'm sick of looking enviously at Chicago and Toronto and Dallas and Boston...