Tuesday, December 7, 2010

An Economic Perspective on Marketing Perl

Introduction

There is a perception out there that the best days of Perl are distant memories of an era gone by. This perception is reinforced by the popular TIOBE index which purports to measure the popularity of programming languages among skilled engineers.

This perception leads to a lot of worrying about how to encourage existing and future programmers to program in Perl.

People choose to use a programming language for a variety of reasons. At any given point in time, there are established ways of doing things in various domains. For example, having SAS and Stata skills will be much more valuable if you are seeking to be employed by an economics research team.

If you are in the business of providing simple web sites with a few customizations and interactive features, you will find that the popularity of PHP among low-cost hosting providers and the amount of code you can copy & paste without much thinking makes PHP an alternative you cannot afford to ignore.

Programmers are also motivated by intellectual challenges. If you are the kind of individual who strives to stay up to date with the most recent hip language, you will derive a lot of satisfaction from immersing yourself in Ruby or Go.

Focusing solely on the programmer side of the question (in Economics parlance, the supply of Perl programmers) would lead us to worry about how to convince programmers that they would be better off running logistic regressions using Perl to do micro-economic policy analysis, or trying to convince them that using Perl CGI scripts is just as effective as using PHP, or Perl provides no less an intellectual satisfaction than playing cool using Ruby.

The number of skilled engineers (as opposed to hobbyists) is determined not just by the supply of programmers but also by the demand for their services by people who are willing to pay programmers to solve their problems.

To the extent that people on the demand side of the equation are influenced by myths such as Perl is line noise or Perl is a write-only language or Perl is hard to maintain, the value they place on the services of Perl programmers will be depressed, leading to a lower return on investment of intellectual capital in Perl than in other languages.

These lower returns will convince both existing and prospective programmers to invest their time and energy elsewhere.

The primary goals of marketing Perl therefore must be to dispel negative myths surrounding Perl and spread information regarding the positive attributes of Perl and Perl programmers among people who pay programmers. In addition, existing Perl programmers need be convinced and reminded of the need to adopt and maintain practices that are commensurate with the image we would like to have immediately associated with Perl.

Such a marketing effort would lead a higher return on programmers' investments of time and energy in Perl and signal to prospective programmers that they should pay attention to Perl.

Why do we care about marketing Perl?

If we programmed solely for our own pleasure and satisfaction of our intellectual curiosity, we would really not care about how many other programmers chose to program in Perl or how Perl is perceived by others. We care about marketing Perl, because we have chosen to program for profit and we have decided Perl is the right tool for that purpose.

Learning a programming language is not an easy task. Although the vocabulary of a programming language is orders of magnitude smaller than the vocabulary of a natural language and the rules by which those words can be combined are much more well defined, learning to program well in any language requires both scarce human capital (such as the ability to think abstractly) and extensive further intellectual investment. This intellectual investment does not pay off immediately.

The time and effort that goes in to learning to program well in a language has an opportunity cost whether it is time that could have been spent engaging in enjoyable activities or earning money. Surely, having the company of a community of fellow programmers in and of itself can offset the happiness foregone, for example, by staring at the computer screen for hours, trying to pinpoint an elusive bug, but it may fall short of making up for foregone earnings.

Marketing something, anything, also has costs. Marketing involves using information to convince others that using your product will provide them with benefits above the cost to them of not using something else. Conveying this message to people who are likely not as familiar with the product as you are once again takes time and resources away from other competing activities.

We care about marketing Perl as a means to increase the return on our human capital which took considerable time and effort to form. Establishing the purpose of the marketing effort enables us to then discuss what are the best ways to market Perl with respect to this established criterion.

Target Audiences for Marketing Perl

A successful marketing effort requires identifying the target of the effort. Because, just like anything else, resources that can be allocated to marketing are scarce, they must be allocated so as to maximize the bang for buck.

I am going to consider three broad categories of target audiences: Perl programmers, other programmers, and non-programmers.

Among non-programmers are two groups (I am going to ignore people who have nothing whatsoever to do with programming): People who want to become programmers and people who are willing to pay programmers to solve problems.

Perl Programmers

These consist of people who program as a hobby, people who use Perl to solve other problems related to their work, and people who use their Perl skills to earn a living.

The purpose of marketing to this group of people would be to encourage them to keep using Perl, to invest further in their skills, and to tell others about the benefits of Perl.

Surely, these are good things. Especially, one person spreading the word benefits all other Perl programmers. The question, however, is if scarce marketing resources are best expended to reach out to this group.

For now, I will note that the optimal amount of marketing targeted to this group is probably greater than zero, but not huge. These are, after all, people who have already decided the return they get from using Perl exceeds the costs associated with it.

The greatest incentive for this group to maintain and invest further in their programming language of choice is an increase in the future returns to their investment. Higher community involvement, participating in conferences, visibility, pride etc can increase the psychic return, but increases in financial rewards for their investments have to come from elsewhere.

Other Programmers

Programmers who have chosen to specialize in other languages have already made the determination that the cost of their investment in Perl outweighs the potential returns.

Some of them may have made this choice because they did not have full information about Perl's capabilities. But, the fact that they did not find it worthwhile to do the research is also telling. Others might have done so because they lack the requisite intellectual capacity and would therefore require more greater amounts of investment to be able to achieve sufficient skills to earn comparable amounts.

Regardless of the reasons these people chose a different programming language, one thing is certain: Keeping the demand for services of Perl programmers constant, the return to existing Perl programmers would fall if other programmers decided to switch to Perl because there would now be more of us competing to satisfy the same demand.

In addition, a portion of these programmers would switch to Perl if returns to Perl skills increased. The key to increasing those returns is in the hands of others.

Non-programmers

People who want to become programmers

This group is similar to other programmers we discussed earlier. Their choice of programming language will be determined by their perception of the costs of and returns to their investment in their human capital.

Effective marketing can inform this group, just as with programmers who program in other languages, about the true costs and benefits of their investment in Perl. In addition, by dispelling myths and illustrating good practices, marketing can serve to increase the perceived benefit and decrease the perceived costs of investing in Perl to be more in line with reality.

However, once again, keeping the demand for services of Perl programmers constant, the ultimate effect of such a marketing effort would be a lower return to Perl programmers because, once again, there would be more of us competing to satisfy the same demand.

People who are willing to pay programmers to solve problems

After reading the discussion above, it should come as no surprise that I consider this group to be the most important target for a marketing effort.

People who are willing to pay programmers to solve problems do not do so for the sheer pleasure of having random problems solved. They do so because solving a particular problem will help them make money.

Broadly speaking, the more problems can be solved correctly within a given period of time, the more money they can make.

In any economic transaction, trades occur at a price between two bounds: The highest amount the buyer is willing to pay (which is influenced by the availability of alternatives which can provide the equivalent function) and the lowest amount the seller is willing to accept (which is influenced by the alternatives open to the seller). The actual amount the buyer ends up paying the seller is the price.

In this context, the people who want problems solved are the buyers whose demand for programmers' services is derived from their primary money making activity. Programmers are the sellers.

Perl programmers can charge a higher price for their services if they represent a better value to buyers.

Therefore, the best way to utilize scarce resources in marketing Perl is to convey information to buyers. This information must establish the fact that Perl and Perl programmers represent a better value proposition than others.

Marketing Perl

We have identified people who are willing to pay programmers to solve problems as the primary target of the effort to market Perl. This enables us to easily identify a well defined set of objectives for the marketing effort.

The primary objective is for buyers to immediately associate Perl with great value. Some messages that help convey this signal to buyers are:

  • Perl programmers are disciplined.
  • Perl programmers solve seemingly impossible problems accurately, quickly and at a reasonable cost.
  • Perl programmers have at their disposal a repository of well established tools so they get paid for actually solving problems rather than re-inventing the wheel.
  • Perl programmers write maintainable code.
  • Perl does not tie you to a particular vendor.
  • Perl's great community of experts represents a better value than an expensive support contract with a major corporation.
  • [ Add your favorite here ]

The brand of Perl should reinforce the notion that Perl, coupled with a good Perl programmer, can help you do things others cannot even begin to imagine how to implement.

Of course, just us claiming these do not mean that they will be automatically believed. This is especially so given that the world seems to be dominated by people who dabbled in a little Perl back in the '90s and still claim Perl looks like line-noise.

However, identifying the set of messages enables us to decide how best to present the evidence for each message.

In addition, I want people who might consider paying for my services to associate other languages with less value for money. I want them to think many developer years wasted when they hear Java, and amateurish solutions full of security holes when they hear PHP, and cute but not really suitable for anything real when they hear Ruby, and lacks flexibility when they hear Python etc etc.

The Role of Community

While formal organizations such as the Perl foundation are an indispensible part of a marketing effort, the existing Perl community must also play a major role in marketing Perl.

One of the best ways existing Perl programmers can help increase the value Perl represents to people who are willing to pay programmers for their services is by living up to the good image of a Perl programmer who writes clear, concise, readable, maintainable, testable code that leverages established resources to focus on the problems their clients want solved.

In this process, sites such as The Effective Perler, Modern Perl Books, Perl.com and others play an important role in the continued education of Perl programmers in their transition from their fast and loose ways to becoming adept at providing robust solutions that are worth the money.

In addition, Stackoverflow.com has become an important source for programmers seeking answers to their Perl question. This represents an opportunity to improve the value Perl programmers provide by introducing them to good programming practices by example.

Of course, more programmers joining the Perl community can mean more people contributing patches, more people maintaining modules, more people testing on more platforms etc.

However, more programmers choosing Perl can also mean a dilution of the value proposition Perl represents if those programmers do not live up to the image we want people who are willing to pay programmers to solve problems to associate with Perl.

Therefore, the marketing effort should not be focused on winning the TIOBE popularity contest among programmers.

After all, higher returns to Perl programmers would lead to more people making the decision to invest in their Perl skills. And, if contributing to the community effort provides them with visibility that further increases the returns to their human capital, they would have a self-reinforced incentive to contribute.

Conclusion

The main target of any effort to market Perl must be people who are willing to pay programmers to solve problems. This would benefit current Perl programmers in terms of increased returns on their investment in Perl, help their clients by making them aware of better solutions to their problems and attract more people with the requisite intellectual capacity to Perl.

The best incentive for new programmers to use Perl is a thriving market for their skills where they can earn a higher return on their intellectual investment in Perl.

Individual Perl programmers can help this effort by adhering to modern Perl programming practices and proving each and every time to their clients that Perl programmers represent the best value for a wide variety of programming problems.

Acknowledgments

Thanks are due to brian d foy who shared some of his thoughts on marketing Perl, reviewed earlier versions of my thoughts on the matter and made valueable suggestions which I have tried to incorporate to the best of my understanding. All errors and omissions are mine.

2 comments:

  1. Sinan, thank you for your analysis. I am happy you also think about the subject even if most of the members of the Perl community will skip as they are afraid of the m-word :(

    A couple of notes:

    1) I think we should not dismiss people switching from/to other languages. Just as many have switched from Perl to some other languages I believe many switch, or will switch to Perl as it becomes more attractive. Both feature wise and potential income wise.

    2) You talk about the role of the community but it is unclear to me what is the community? Probably you mean the few thousand people who are on IRC/mailing lists/Perl Monks/CPAN authors. (The most recent Perl survey got about 4,800 responses) and NOT the estimated 400,000 people using Perl to some extent.
    I agree that showing Perl is a good tool will improve the image of Perl and thus the value of our knowledge but for that IMHO it is not enough to reach the few hundred readers of our blogs. Not even enough to reach the few thousand who are more involved in the Perl community. Do you have a plan how to reach the other 396.000 people?

    3) Currently as far as I can tell based on my conversation with CTOs and Development managers, their biggest issue is the lack of good Perl developers. I am not sure if this contradicts your understanding or enhances it but the reaction to this situation is that some companies are switching away from Perl.

    At the Perl Ecosystem Group are trying to find the common interest of the companies using Perl and the Perl Community. Each part contributing what it can.

    4) Most of the managers select the language of implementation based on what they know or what is available around them. So if we want to have more Perl projects it means we have to make sure people who start projects know Perl and there are enough Perl programmers around to make this choice a good one.

    ReplyDelete
  2. Your grasp of economics is inspiring! The basics of what causes people to trade are so poorly understood these days.

    ReplyDelete