Warning: INSERT command denied to user 'dbo292345962'@'74.208.16.27' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:399:\"INSERT command denied to user 'dbo292345962'@'74.208.16.27' for table 'captcha_sessions'\nquery: INSERT into captcha_sessions (uid, sid, ip_address, timestamp, form_id, solution, status, attempts) VALUES (0, '10001497ae42bb6b499b805c19d3d3c9', '54.90.178.218', 1406213085, 'comment_form', 'cecf043e33996981763b8f0cf1372baa', 0, 0)\";s:5:\"%file\";s:62:\"/homepages/25/d199835659/htdocs/ID/modules/captcha/captcha.inc\";s:5:\"%line\";i:99;}� in /homepages/25/d199835659/htdocs/ID/includes/database.mysql.inc on line 135
Python is One of the Most Popular Programming Languages | Inferno Development

Python is One of the Most Popular Programming Languages

python-logo

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?

zemin's picture

I guess I should start by

I guess I should start by reading the docs. I have always been interested in it, I just never used it much.

asv's picture

Woah, it's interesting to see

Woah, it's interesting to see that site TIOBE and how programming languages are ranked. I never believed Java was so popular.

ben's picture

You really think PHP can be

You really think PHP can be overthrown from its throne??? It's used by soooo many sites now! Plus it's so easy to learn.

jake's picture

@Ben, yeah but that's really

@Ben, yeah but that's really a bad thing in a language, to be so easy to learn. It makes outsourcing easy, it encourages bad code design, it encourages just about anyone to believe that they can code in the language.

Some form of difficulty should be introduced. Python does have this difficulty, because I have struggled when I build Python projects but not with PHP.

HitThat's picture

I don't get it though, is

I don't get it though, is there anyone that knows why Google or Reddit prefers to use Python over other languages???

yunolike's picture

Sid Meier's Civilization made

Sid Meier's Civilization made extensive use of Python especially used it for modding the game as well.

Baran Ornarli's picture

@Axel, the methods are not

@Axel, the methods are not that questionable, they are not 100% accurate and we know that. Such is the problem with statistical analysis, but the trends are not baseless.

@codekoala, obviously plenty of people use PHP5 classes and OO features, but if you look at most frameworks and the way PHP has been used, the OO features always take a back seat, that is what the author is expressing. It's simply not widespread to use OO in PHP.

Anonymous's picture

Guido van Rossum works for

Guido van Rossum works for Google. Reddit used to be written in Perl but they re-wrote it in Python, probably because they wanted it to be maintained by more than the few elite Perl programmers.

James's picture

Language comparisons are

Language comparisons are always fraught with problems.

PHP is originally a hypertext pre-processor, which means essentially it was designed to be part of front-end (even though it's server side) it was meant to be used as part of the app. which generates the HTML interface, a templating language. Case in point - Facebook, the hiphop php engine - you build your app. as compiled C or C++ and roll it into the PHP.exe leaving hooks for the PHP scripting language to i/o with the web environment. This is very fast, and for massive web apps will easily outperform Java running on the JVM. Apps written with their whole app. in PHP are still pretty fast but that outgrowth in PHP app. development was not the original use that PHP was designed (I learned this from reading and listening to Rasmus Lerdorf)

Python is a polyglot language, which includes a functional paradigm which comes from Lisp (and before that the Lambda calculus) all functional languages depend on a large amount of memory reference indirection at runtime which will make them slower - fortunately, compiler optimisations and increasing hardware has made this problem pretty much go away, although for a truly massive app. (like facebook or a search-engine) you might run into trouble, this is why some core elements of Twitter were re-written from RoR to Scala which they use a custom compiler which runs on a specially optomised JVM - also Scala makes it easier for the coder to manage multiprocessing (although obviously it's nothing that can't be done in Java since Scala compiles to JVM bytecode) and nothing that can't be done in C (since the JVM is written in C) - it's all about the 'cost/time to develop' vs performance.

The strength of Python is it is faster to develop things in than Java (which in turn is faster than C++), but remember that the vast majority of work/jobs out there are maintenance jobs which use legacy code, which is why COBOL programmers still get work, so don't expect work with Java and PHP to dry up any time soon.

James

Anonymous's picture

Not only the for the internet

Not only the for the internet which is HUGE for the PC. Python makes a neat number cruncher too!

Anonymous's picture

Reddit was originally written

Reddit was originally written in Common Lisp, not Perl:

http://www.aaronsw.com/weblog/rewritingreddit

Anonymous's picture

just because someone says

just because someone says ruby can not scale everyone bashes it up for that.

Ruby i sby far the most elegant thing i have known and yes I have programed python as well.

Rails is the best MVC ever written and copied everywhere.

Also, every web application at some stage will have the same scaling issues and they are common not to the technology used but the exponential growth.

in my opinion Ruby is far superior and rules the roost of dynamic upcoming languages.

Anonymous's picture

Reddi was originally written

Reddi was originally written in lisp.
on lisp

pankajkumar911's picture

GOOGLE DOESNT PREFER

GOOGLE DOESNT PREFER PYTHON.........

Google prefers C++ the most for high performance and intensive project

and then java, javascript and now DART(designed by google)

Anonymous's picture

I wish that language

I wish that language difficulty could keep job stealing outsourcers at bay, but the only language they struggle with is English.

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.