The ranking of programming languages will change depending on your intent, and the reason why you are looking at the ranking. See What makes a Programming Language popular We have assumed 2 intents for anyone looking to learn a new language.
1. Use it for a living 2. Use it for pleasure
We have created a model that has multiple decision variables on which the ranking is generated. Our ranking function looks like this
R(x) = a * X + b * Y + c * Z .......
Where R(x) is the rank score of the programming language x X, Y, Z are the decision variables a, b, c ... are the relative importance of the decision variables and they vary depending on your intent.
We decided on the following decision variables:
1. Corporate Adoption 2. Talent Pool Availability 3. Support Structure 4. Adoption and Retention 5. Satisfaction Indicator
Corporate Adoption: How many companies have internally adopted this language
Job Demand is a good indicator of a corporate adoption of a language. OdinJobs is uniquely qualified to track this as we collect all the jobs advertised anywhere on the web including corporate websites, job boards and blogs.
Talent Pool Availability: How many people are out there with this skill
Number of resumes with the language listed as their skill. Salary Offered is a measure of the relative abundance/scarcity of the people and a leading indicator of talent pool.
Support Structure: How many channels are there to support you, if you run into problems. Where do you turn if you have any questions. How active is the community using the language.
Number of Usergroups â Groups that meet in a physical location not online usergroups Visibility in Search Engines â How many pages are there in Google, Yahoo and MSN. Number of Open Source projects registered â This determines the strength of the community and offers an excellent opportunity to get involved if your intent is âcode for pleasureâ Membership in forums dedicated to a language â This estimates the relative size of the practicing community Number of posts in forums â This estimates the relative activity
Adoption and Retention: Adoption gives you an idea of how many people are interested in a particular new language. Retention gives you an idea of how many people after the intial enthusiasm continue with the language. . Amazon.com Sales Rank in the Introductory Book sales â this tells you how many people are seriously interested in a new language. Amazon.com Sales Rank in the Programming Language category â this tells you how many serious practioners are out there.
Satisfaction Index: This is a subjective variable, acknowledged experts in a particular language are asked 3 questions.
How satisifed are you with language x â scale of 1-5 If you were to learn X language again, will you do it today If you had the time, what new language would you want to learn
As you see in the decision variables, each of them contains multiple sub-variables. The data is normalized within a sub-variable across all languages with the highest score being 1. A weighted function is used to calculate the decision variable. For e.x.
Adoption & Retention = a * Introductory Volume sold + b * Intermediate/Advanced Volume sold where a, b are the relative importance.