Thanks to a link from programming.reddit.com, I found this fascinating study today. It is different from TIOBE Programming Community Index.
This study looks at programming language popularity from the following angles:
- Search results
- Job listings from Craig’s list
- Book counts from Amazon
- Open source projects from Freshmeat
- Bookmarks on del.icio.us
Finally the data is normalized, and here are the top 5 languages based on this effort.
- C
- Java
- PHP
- C++
- JavaScript
Note the popularity of C based languages! Please take a look at the original study since it lists over 10 languages (yes my favorite Python figures in there too). In addition, it also tracks the number of bookmarks in several social networks and discussion groups.
If you are looking at Programming Languages, normally your first instinct is to go for the well known ones. If you are a developer, it increases your chance of getting a good job. But most of us know more than one language. It may be worth adding a scripting language (Python, Ruby, PHP) to your list. If you tend to look a bit towards future, you may want to add a functional language too.
Different languages are useful for different applications.
Python, for example is great for system administration, quick prototyping as a glue language to tie different application, for system configuration.
PHP seems to be popular for rapid building a dynamic web sites.
So there are some other angles from which you can look at these programming languages, if you are a beginner.
- How easy is it to read small programs and understand them, even when you do not know it.
- How well is it supported on your preferred platform?
- Is there an active discussion group for the beginners and advanced users? Is there a local group where you can go and meet people and brainstorm ideas?
- Availability of free learning material, tutorials, wikis, blogs?
- Can you quickly learn to write some simple programs in a day?
- How many job listings are there in your city for the language?
- How is the tool support – IDEs, editors (or editor extensions), profilers, debuggers
- Can you think comfortably in the language?
- Are there cookbooks where you can simply take the code and modify it for your use?
If you are a seasoned developer, many of these questions still apply, but you may want to add other questions to the list (like performance, scalability, availability of frameworks etc.)