There are lots of programming languages - some of them more popular, some less. But as I can see it - all languages were initially created to solve one problem (or set of problems) that existing languages solve it the wrong/complicated/any-other-word way (as new language creator sees it). Language creator(s) has its own opinion on the new language synthax, synthax sugar etc.
Time goes, some languages become popular, developer comunity grows, new people has their own vision on how things should be done right. E.g. all modern PHP frameworks move in Java-way - every new language release gets more OOP-stuff, two the most popualar PHP frameworks - Symfony2 and Zend Framework 2 - are huge monsters right now, implemented in the “right OOP way” with all its Interfaces, AbstractFactories, 3+ levels of inheritans, etc. Drupal, that has its own style, is moving to Symfony2 components in the next (8) version, and I can not say I really like it. We already have Java and C#/.NET - why do we need to make the same things in PHP? In several years PHP may bacome Java w/out strict typing and compillation.
But there are languages, that tries to be distinctive and keep things as simple as possible. As I can see it from my perspective, two most popular mombers of this family are Python and Ruby. I can’t say much about Ruby - tried only some simple tutoraials, mostly read quite a lot about it. But I can say about Python as it’s my second programming language and I really love it. I like its style, I like its synthax and I really like the way it suggests to implement things. Last time I saw this was several days ago, when I read Parallelism in one line blog post. In this post author says about implementing threading in Python in pythonic-way and decribe how to convert classical OOP solution to simple and elegant 4-lines long programming masterpiece.
When I started to write this post it supposed to be something like “The best article about implementing things in pythonic-way I’ve ever seen <link to the post about parallelism>”. Then I added some my general thoughts on programming languages and now I don’t know how to draw a bottom line.
Anyway, the original idea is that learning programming language means for me learning its “super powers”, ways of implementing things that makes it special, not only writing general-purpose statements that most of the languages support.