|
Programming Language Book Sales to Predict Adoption and Retention
Introductory programming language book sales indicate the amount of interest in adoption. Note that I have stressed the word interest. Comparing the introductory level books for Php, Perl, Python and Ruby will tell us how well the advocacy efforts of each language is doing to generate interest in that language. Intermediate to Advanced level book sales indicates the retention of that interest. Tracking book sales as an indicator of the market, has been used by Mike Hendrickson of O'Reilly in State of the Computer Book Market. My interest in comparing book sales is to compare the adoption and retention interest of each language. You can check Antonio's Comparison of programming languages for more languages and how they fare in terms of book sales. Unlike, O'Reilly, I do not have access to BookScan data, so I went with Amazon.com's sales rank. Amazon also has the feature to list books by programming language and by levels (Introductory, Intermediate-Advanced). Since Amazon.com's Sales Rank is not linear but a log scale, I used an estimator function to translate the sales rank to predict volumes sold. (This function holds well but at very low ranks, less than 10, this function over predicts. We wont have a problem as no programming language book will have a sales rank that high.) Predicted Sales Volume per Year = 10080 * EXP(-2.4629 * LOG10(Amazon Sales Rank))*365
NOTE TO READERS: The Methodology I used to Predict is inherently flawed as I had captured the sales rank at one point of time and tried extrapolating it to annual sales. Authors like brian (Learning Perl) pointed out this flaw as they had the actual book sales data. So until I track sales ranks over a longer period of time and check to make sure that the predicted volume approximates actual sales, I am removing the estimated book sales data and the sales rank. I am leaving behind the list of books that were the top 5 in Amazon in each category.
Php Introductory Book Sales
| Perl Introductory Book Sales
| | Name | Beginning Php and Mysql5
| Php5/Mysql Programming
|
| | Name | Learning Perl 4ed
| Beginning Perl 2ed
|
| Python Introductory Book Sales
| Ruby Introductory Book Sales
| | Name | Python Programming: Intro to CS
| Python Programming for Absolute Beginner
|
| | Name | Ruby Programming for Absolute Beginner
|
|
I used the same methodology for Intermediate to Advanced level. Here, there was a better choice of books for all the languages. PHP Intermediate/Advanced Book Sales
| Perl Intermediate/Advanced Book Sales
| | Name | Programming PHP
| | PHP and MySQL for Dynamic Web Sites: | | PHP Solutions: Dynamic Web Design Made Easy | PHP 5 Objects, Patterns, and Practice
| PHP Cookbook
|
| | Name | Learning Perl 4ed
| Programming Perl 3ed
| Perl Cookbook
|
| Python Intermediate/Advanced Book Sales
| Ruby Intermediate/Advanced Book Sales
| | Name | Learning Python
| | Python in a Nutshell | Programming Python
| Python Cookbook
| Core Python Programming
|
| | Name | Agile Web Development with Rails
| Programming Ruby: Pragmatic Programmmer Guide
| Railspace: Building a Social Network
| Ruby Cookbook
| Ajax on Rails
|
|
This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See
How does Perl, Php, Python and Ruby compare in support resources?
Language popularity is dependent on support resources like forums, groups and blogs. When we analyze the popularity of a language, we need to compare the support resources for each language. Everyone of us, from a newbie to an experienced hack, have run into road blocks time and again and have turned to these support resources for solutions and pointers. The support structure for each language plays a critical role in making it easy to adopt a language and to increase its popularity with an increasing user base. So, how does Perl, Php, Python and Ruby compare in terms of support resources?
The first comparison we make is the general term visibility in each search engine. Term Visibility This gives an idea as to the number of sites out there that at least mentions the language. Granted, this is a very poor way to compare the number of sites devoted to each language but due to a lack of my imagination, I am going to use this for a very gross comparison. The TIOBE Programming index uses +"<language> programming" as a way to calculate the popularity of a language. Instead of using the phrase, we will use <language> AND programming as I think this is a less restrictive way of finding sites devoted to a language and is good at eliminating noise (as much as possible). 
| Sites from Each Search Engine in Thousands
| | Google | Yahoo | MSN | Normalized | | PHP | 104 | 66.2 | 105 | 1 | | Perl | 48.2 | 30.5 | 42.5 | 0.46 | | Python | 44.1 | 24.1 | 15.5 | 0.39 | | Ruby | 33.1 | 22.5 | 23.2 | 0.32 |
|
The normalized column is a weighted normalization using search engine market share, Google: 63%, Yahoo 32% and Msn 5%. For every 100 sites for PHP, there are 46 sites for Perl, 39 sites for Python and 32 sites for Ruby. Usergroups that Meet in PersonUsergroups that meet in person provides an excellent opportunity for anyone interested in that language to learn from the experts. The number of usergroups also indicate the motivation and dedication of the user base. This is a definite indicator of the popularity of that language. We compared the officially listed usergroups that is located in North America (US, Canada and Mexico). We used the number of user groups listed in PerlMongers, Python.org, RubyGarden.org and PhpUserGroups.org .  | User Group Comparison
|
My 2 cents: Come on Python enthusiasts, you need to do better if you need to grow Python's popularity. Most Popular ForumsWe compared the membership numbers in the most popular online forums to get an idea of the size of the user base for each of the language. The membership is of course not restricted to the U.S and like the term visibility is a rough indicator of the size of the user base. Popular Perl forums
Popular Php Forums Popular Python Forums | comp.lang.python | 11433 registered members
| | tek-tips | 2046
| Popular Ruby Forums Usenet group, comp.lang is the common forum across Perl, Php, Python and Ruby, so it makes sense to compare the memberships of the usenet group.
This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See
How Many Perl, Php, Python and Ruby Developers Are There?
Current Availability of Perl, Php, Python and Ruby Programmers Companies choose a programming language for many reasons, but one of the top ones would be the availability of developers in that language. You don't want to start a development project with a language and realize that there are only a handful of people out there, who know that language.
Availability of experienced and talented developers is a key requirement of corporate adoption and retention of a programming language.( see Corporate Popularity What Makes a Programming Language Popular ) How do we estimate the number of programmers experienced in each language?. Rather than absolute numbers, it would be sufficient to compare the relative numbers of developers experienced in a particular language from a large sample of developers. This ratio estimate will more or less hold good in the general population. To get an unbiased, large sample, we turned to the top 3 search engines, Google, Yahoo and MSN to find the number of resumes on the web with a particular skill. The hypothesis is that the likelihood that a Perl programmer will put his/her resume online is the same as that of a Php programmer, so on and so forth. The query we used to find resumes is (intitle:resume OR inurl:resume) LanguageName -intitle:jobs -resumes -apply
in the three search engines.
 | Observations: In Google Php results are about 6 times more than the next skill, Perl. Where as in Yahoo the results between Php and Perl were nearly similar. MSN showed Php to be 5 times that of Perl. What this tells us is that there is a large variation between the relative number of resumes for each skill in each search engine. Resumes in Search Engines
| | Google | Yahoo
| MSN
| | Perl | 170 | 247 | 75.1 | | Python | 54.2 | 68 | 23.9 | | Ruby | 34.1 | 19.2 | 11.5 | | Php | 1050 | 274 | 375 |
|
As seen above, there is a wide variation in the raw numbers from each of the search engines. We need a normalized set of numbers that can say that for every 100 php programmers, there are 40 Perl programmer, 20 Python and 10 Ruby programmers, or something like that.
The first thing we did is to normalize the skills in each search engine. Then we assumed the relative market share of the search engine (totally arbitrary, needed a weighting factor of the search engines) and computed relative numbers. The relative market share of Google vs Yahoo vs MSN is about 44:29:13. To those, who have a keen eye, the market share of the three search engines come only to 86 and not 100. We scaled the search engine weighting numbers so that we had 100.
 | Resumes in Search Engine - Normalized | | Google | Yahoo
| Msn
| Combined | | Perl | 0.16 | 0.9 | 0.2 | 0.42 | | Python | 0.05 | 0.25 | 0.06 | 0.12 | | Ruby | 0.03 | 0.07 | 0.03 | 0.04 | | PHP | 1 | 1 | 1 | 1 |
|
Conclusion: The combined search engine column estimates that for every 100 PHP developers, there are 42 Perl developers, there are 12 Python developers and 4 Ruby developers.
This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See
Php, Perl, Python or Ruby Programmers - Who Earns More?
Salaries Offered for Perl, Php, Python and Ruby Positions Future salary is a significant motivator for somebody to learn a new language (use it for a living). We used the OdinJobs Market Statistics tool to help us analyze which skill pays more. The market statistics tool helps analyze salaries offered in jobs targeting junior-mid level programmers and senior/Lead/Architect developers. First we compared how salaries varied between a jr-mid level position and a senior level position within a language. The results are below.  | Perl Median Salary Comparison Senior level architects and lead programmers using perl earn 10% more than the developers. This is a median salary, which means a lot of variation in salaries is squished into a single number. In all jobs that required perl, the median salary was $80,560. The variations in median salary also varies according to locations but this chart has been generated for the entire United States.
|
PHP Median Salary Comparison Median Salary for All Php jobs: $66,200 Median Salary for Php Architects: $71,000 Median Salary for Php Developers: $64,540
|  |
 | Python Median Salary Comparison
Median Salary for all Python Jobs: $75,720 Median Salary for Python Architects: $80,310 Median Salary for Python Developers: $74,790
|
Ruby Median Salary ComparisonMedian Salary for all Ruby Jobs: $74,150 Median Salary for Ruby Architects: $82,890 Median Salary for Ruby Developers: $ 73,880
|  |
This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See
|