Python is quickly taking the lead as one of the most popular programming language. You might be skeptical, but Python is growing at a faster rate than any other language. It received TIOBE Programming Language of the Year award twice, once in 2007, and again in 2010. Even now it still has the highest growth of any other language. What makes Python so great?

While statistical analysis always has its flaws, the trends are pretty clear. Java, C#, even PHP are losing popularity, Python, Ruby, Haskell, Ada are gaining popularity, and even Google Trends seems to agree.

Python is an interpreted language, like PHP, Ruby, and Perl. While PHP was very popular throughout the 2000s. Recently PHP and Python have become equally as popular. Now they are neck in neck. Both of them have enough features to be capable of anything. Some subtle differences however, make Python more amazing than PHP.

The Competition

PHP is one of the main competitors to Python's dominance, but mostly in the web development arena. PHP is very integrated with web development and can be used for it right out of the box like ASP. How does Python compete with that? Well Python has many web frameworks whose features so outperform PHP that it would be crazy to take on huge custom projects with PHP instead of Python and a framework like Django or Plone.

For example, Django's features allow for model generation using OO design philosophy and immediate database table generation based on your Python code.

I myself, am a Drupal PHP developer. Drupal is by far my favorite web framework. The modular-hook design and constant major updates (without backwards compatibility) were at first very attractive, but now I've become dissatisfied with it after being involved in a major custom-designed Drupal project. I find it superior to Wordpress in every way, but it's hard to customize it without some work.

Perhaps you didn't know this, but InfernoDevelopment is designed with Drupal. However, in our next redesign, our developers are planning on using Python and Django. We've started a huge project to release IDv3 in our secret forums, which includes volunteers who are interested in the project.

The fact that Python has a framework like Django that is dominant in web development is beneficial to Python. Standardization is needed for success. While competition is great for PHP, with the many frameworks like CodeIgniter, CakePHP, Drupal, and Zend, they also show a lack of superiority of any one API.

Some people may argue that Ruby and Perl might pose competition as well. I think they lack elegance. Ruby is a solid language but does have scaling problems. I have studied Perl and use it in Linux quite often, but I don't think it has the potential to continue its dominance.

What's great about Python?

Python is extremely well documented. The only other documentation I've seen that rivals it would be the C++ Qt framework. Such easy documentation allows more people to quickly adapt to the language.

Python's language design is incredibly well thought out. PHP's design however, seems to have been duck taped together over years of progress with little regard to design. PHP is basically a language that just seems to grow in the size of its function list. It eliminates the need to be OO. While PHP5 introduced a lot of OO features, it is still not widely used and some frameworks don't really utilize its features.

Python encourages good coding skills. It's exception and error handling is much superior to PHP or C#. Debugging is easy in Python. Difficult in C# (especially when ASP is involved), and somewhat stressful in PHP (whitescreens definitely don't help).

Python has an extensive arsenal of libraries that are extremely important for any mature language.

Python removed the brackets. At first I felt unsafe without the brackets. I felt like relying on white space or tabs would be dangerous. I've come to realize that it actually makes the code more elegant and less confusing. I already indent everything in PHP, C#, C++, so why bother including brackets?

Who's using Python and how will it be used in the future?

Python is being used extensively by Google (with some services using C++ for resource intensive tasks). Artificial Intelligence classes all over the US have adapted Python and dropped LISP.

Some popular sites that use Python:

Google, YouTube, Reddit (Pylon), Facebook (PHP & Python), FriendFeed, Tabblo (Django), SuggestionBox (Django), Bitbucket (Django), Disqus, Quora.

Corporations have begun to shed themselves of compiled languages for web development. The reason being is, compiling all the time is quite an annoyance for a lot of projects. Though you can use C# ASP.NET applications without compiling constantly if it is a website project, the amount of errors it throws on just about anything and its inconsistency is troubling.

I see the trend of Python's popularity continuing to grow especially in web development, AI, and game programming (Civilization uses Python for Civ4). C and C++ will definitely continue to be leaders because of their efficient use of resources and low level programming capability.

What do you think? Do you believe this trend will continue or am I just speculating too much?