But I agree, I learned Python because it seemed like a great language, and learned Django because I was moving into web dev after years of other work with Python. I don't believe I'll ever pick up Ruby for anything other than learning Rails (and I doubt I'll even do that, since Python is so similar).
http://www.google.com/insights/search/#q=ruby%20AND%20rails%...
Just take a look; the django bar is not even a bar, more like a square. Rails seems to have a 40:1 edge over Django in popularity.
The other thing you will notice is that India is where Rails is most popular; but try to pull back the timeline slider and play with it a bit. See how different countries discover rails at different times but soon after lose interest? Except for India, it stays popular there.
Comparing search traffic for django/python to ruby/rails has nothing to do with this.
But note that most people searching for Django will use only the name Django, whereas Rails is often called "Ruby on Rails", meaning searches for "ruby and rails" will naturally tend higher than "python and django". Again, I'm not sure I understand your point, so I don't know if this means anything.
The ruby world seems to focus its innovation around the major framework whereas the python world seems to be experimenting at a more fundamental level.
I got two theories.
First theory.
Ruby allows developers to make really nice DSLs. (Domain Specific Languages) It makes sense to me that there would only be two major frameworks. Rails fills the need for a batteries-included framework and Sinatra is the a light weigh, nothing included framework. Both have expressive enough implementations that the community doesn't build their own frameworks.
Python doesn't make as pretty code for a DSL which makes it more likely to hit pain points in expressing what you want. Then you end up with a fragmented community around these different pain points.
Second theory.
People start using ruby because of rails. If rails is too heavy, they move to sinatra. Most of the people using ruby can't be bothered to write their own framework.
Most people using python learned python before web development. They are more experienced in the language and used to doing their own stuff. They try out different frameworks and if they get disgusted enough with them they create their own.
Disclaimer:
I'm a ruby guy. I used python for two years before learning ruby and then rails. These are only theories. I probably look at ruby more nicely than I should but I tried to be somewhat objective.
Writeability and readability. The ability to bring in domain experts which have no knowledge whatsoever in programming as well.
> but can't really think of many use cases for DSLs (apart from business rules).
Any domain-specific knowledge/data may be encoded as a DSL, and benefit from it. The rules of your business, the URL mapping of your framework, the GUI layout of your application, the steps of your tests, ... In fact, they often are (in WPF, XAML is used as a GUI definition DSL; Ant is a domain-specific language for building applications, so is Make).
The great advantages of the likes of Ruby, however, is that you can build DSLs in the language itself (you don't have to build your own compiler and translator from DSL to language), which rids you of most of the complexity and limitations of usual DSLs, and lets power users realize that there is a full-blown general-purpose language under the DSL (and use that power when they need it).